North Coder

定时任务

为会话注册 cron 定时的 prompt,到点自动入队执行(会话级、内存态)。

定时任务(Scheduled Tasks)让你为某个会话注册一个按 cron 周期触发的 prompt。到点时,North Coder 会把这个 prompt 当成一条普通用户消息入队执行——就像你自己手动发了一条消息一样。

它适合让 Agent 周期性地做重复性工作,而不用你每次手动发消息。

定时任务是会话级、内存态的:任务严格绑定到所在会话,保存在后端进程内存里,后端重启后清空,不会跨重启恢复。需要跨重启、全局持久的定时能力暂不在此范围内。

什么时候使用

适合使用定时任务:

  • 周期性巡检:定时跑构建 / 测试并总结结果。
  • 定时拉取并汇报:每隔一段时间拉最新代码、汇总改动。
  • 按时提醒类工作:工作日早上汇总待办、整理当天计划。

不适合:

  • 需要重启后仍然存在、或跨设备生效的长期任务(内存态会在重启后清空)。
  • 一次性的、马上要做的事——直接发消息即可。

创建定时任务

定时任务总是绑定到当前会话。有两种创建方式。

让 Agent 创建

在会话里直接用自然语言描述周期和要做的事,Agent 会通过内建的 create_scheduled_task 能力创建任务:

每 30 分钟帮我拉一次最新代码并总结改动
工作日早上 9 点,汇总当前 TODO

如果周期或时区不明确,Agent 会先向你确认。创建后它会告诉你任务 ID、cron、时区,并提醒任务在后端重启后会清空。

用 CLI 创建

ncoder schedule create CONVERSATION_ID \
  --cron "*/30 * * * *" \
  --prompt "拉取最新代码并总结改动" \
  --timezone "Asia/Shanghai"

完整命令与参数见 CLI 资源管理 · schedule

cron 与时区

  • 使用标准 5 字段 cron(分 时 日 月 周),不接受 6 字段秒级 cron。
  • 时区是有效的 IANA 名称(如 Asia/ShanghaiUTC);下次运行时间按任务时区计算。
  • 非法 cron 或时区会被拒绝。

常见示例:

cron含义
*/5 * * * *每 5 分钟
0 * * * *每小时整点
0 9 * * *每天 9:00
0 9 * * 1-5工作日 9:00

触发行为

到点时,定时任务不会另起一个独立运行,而是复用会话的消息队列:

  • 会话空闲:prompt 立即作为用户消息开始运行。
  • 会话正忙(Agent 正在运行):prompt 进入队列,等当前运行结束后再执行。
  • 去重:如果队列里已经有同一个定时任务的待处理消息,则不会重复入队——避免一次长时间运行结束后,把期间多次到点的同一任务堆积成一串。

由定时任务触发或排队的用户消息,会在聊天里带一个 Scheduled 徽标,方便区分它来自定时任务而不是你手动发送。

管理任务

会话任务面板

会话视图底部有一个可折叠的定时任务面板,列出当前会话的任务,并显示:

  • prompt 内容、cron 的可读描述、下次运行时间;
  • 已触发 / 已入队的计数;
  • 每个任务的启用开关和删除按钮。

启用 / 删除会通过 WebSocket 实时同步到所有打开该会话的客户端。

活动任务徽标

  • 侧栏底部显示全局启用中的定时任务总数。
  • 历史会话下拉里,带活动定时任务的会话会显示一个数量徽标。

离开提示

当还有启用中的定时任务时,关闭标签页或退出桌面应用会弹出提示,让你选择:

  • 取消:留在当前界面。
  • 保持运行:离开,任务在后台继续。
  • 全部停止:禁用相关会话的全部定时任务后再离开。

限制与边界

  • 会话级:任务绑定到具体会话,不能跨会话共享。
  • 内存态:保存在后端进程内存,重启后清空,不写入数据库。
  • 5 字段 cron:不支持秒级精度。
  • 每个会话可创建的任务数量与 prompt 长度有上限(防止失控创建占用资源);正常使用不会触达。

常见问题

重启后任务还在吗?

不在。定时任务是内存态的,后端进程重启后会全部清空。需要重新创建。

到点时如果 Agent 正在运行会怎样?

prompt 会进入会话消息队列,等当前运行结束后再执行;同一任务在等待期间不会重复入队。

可以创建只跑一次的任务吗?

定时任务按 cron 周期重复触发。如果只需要跑一次,直接发消息即可;如需停止周期任务,在面板里删除或用 ncoder schedule delete 删除。

任务执行失败 / 错过了一次会补吗?

不会补跑。每次到点独立触发,错过的周期不会累积补偿;下一次按 cron 正常触发。

本页内容