定时任务
定时任务让你按时钟(cron)触发一个伙伴去做某件事:每天的提醒、每周的健康巡检、整点的资讯汇总都可以交给它。每次触发都会驱动你选定的 agent,按你写好的提示词执行,并把每一次运行记录进历史。
从侧边栏打开定时任务(路由 /scheduled)。还没有任务时是空态,页面顶部会有一条保持系统唤醒的提示——只有宿主进程在运行时任务才会触发。

操作步骤
-
新建任务。 在
/scheduled点 New task,对话框包含四块设置:频率、agent、执行模式、提示词与名称。
-
设置频率(cron)。 从预设里选——
Manual(不自动调度,仅靠”立即运行”触发)、Hourly、Daily、Weekdays(周一至周五)、Weekly,或选Custom直接写 cron 表达式。预设会渲染成可编辑的表达式,builder 在你键入时即时校验。5 字段(分 时 日 月 周)和 6 字段(带秒前缀)都接受。任务时区在创建时设定(默认取你浏览器的时区),所以0 9 * * MON指的是那个时区的 09:00,而非 UTC。 -
选 agent。 选每次触发要运行的后端:内置 Nomi(无需额外安装,最适合首跑),或检测到的 CLI agent(
claude/codex/gemini),或预设助手。Advanced 里可覆盖 workspace、model 等。注意 workspace 路径不能含空白片段,服务端会强制校验。 -
选执行模式。
new_conversation——每次触发开一个新会话,适合各次互不相干的产出;existing(指定会话)——把提示词作为新消息发到同一线程,适合”提醒我""总结今天”这类需要延续上下文的任务。 -
写提示词并命名。 提示词请写成自包含的指令:agent 看不到你的原始想法,只看到这段文字,所以要明确告诉它产出什么。例如”搜索本周最新的 AI 资讯,整理成简洁的要点摘要”。Name 只是列表里的标签。
-
查看与管理任务。 列表页
/scheduled显示每个任务、它的下一次触发与启用开关。
-
进入详情页操作。 打开
/scheduled/:job_id,可以立即运行(无视调度即时触发)、暂停 / 恢复、编辑、删除。详情页同时展示排程、运行历史,以及本任务创建的会话列表。
要点与边界
- 任务只在宿主运行时触发。 列表页有保持系统唤醒开关,开启后会请求操作系统抑制睡眠(macOS
caffeinate、WindowsSetThreadExecutionState、Linux 可用时为systemd-inhibit),避免合上笔记本就漏触发。 - 漏触发会被记录而不是静默丢失。 若系统休眠或应用未运行导致漏掉一次,下次启动 / 唤醒时会记一条
missed运行、向受影响会话投一条系统消息,并为下一次正常触发重新装定定时器。 - 运行历史带状态。 每次触发记为
ok/error/skipped/missed,并在适用时附带指向所生成会话的链接。 - 忙碌守卫防止并发。 在
existing模式下,若上一次运行还没结束就到了下一次触发,新运行会被跳过(记为skipped)。预期会长跑时改用new_conversation,让每次触发各得一个线程。 - 可附加按任务的技能。 在详情页为任务编写一个
SKILL.md,每次触发都会注入到 agent 会话中,用来锁定人格、工具偏好或工作区约定;技能按伙伴隔离(每个伙伴一套专属技能库),而记忆走的是全体伙伴共享的记忆中枢——两者相互独立。(按伙伴细分的私有记忆敬请期待。)删除任务会一并移除其技能目录。
常见问题
- “立即运行”和正常调度冲突吗? 不冲突。立即运行无视调度即时触发一次,忙碌守卫仍然生效。
- cron 表达式被拒绝了怎么办? 5 字段与 6 字段都合法;可用对话框里的 builder 或 crontab.guru 在本地校验。
- 任务跑了但 agent 做错了事? 当作 agent 没有任何额外上下文来重读提示词——它必须明确写出要产出什么,必要时再附加一个技能来固定行为。
相关
- 智能值守 · AutoWork——需要”尽快异步处理”而非”按时钟”时用它。
- 会话工作区——定时任务生成的会话就在这里继续。
- 应用内终端——需要实时 shell 时的去处。
完整文档 → GitHub