自动化

定时任务

定时任务让你按时钟(cron)触发一个伙伴去做某件事:每天的提醒、每周的健康巡检、整点的资讯汇总都可以交给它。每次触发都会驱动你选定的 agent,按你写好的提示词执行,并把每一次运行记录进历史。

从侧边栏打开定时任务(路由 /scheduled)。还没有任务时是空态,页面顶部会有一条保持系统唤醒的提示——只有宿主进程在运行时任务才会触发。

定时任务(空态 + keep-awake 提示)

操作步骤

  1. 新建任务。/scheduledNew task,对话框包含四块设置:频率、agent、执行模式、提示词与名称。

    新增定时任务

  2. 设置频率(cron)。 从预设里选——Manual(不自动调度,仅靠”立即运行”触发)、HourlyDailyWeekdays(周一至周五)、Weekly,或选 Custom 直接写 cron 表达式。预设会渲染成可编辑的表达式,builder 在你键入时即时校验。5 字段(分 时 日 月 周)和 6 字段(带秒前缀)都接受。任务时区在创建时设定(默认取你浏览器的时区),所以 0 9 * * MON 指的是那个时区的 09:00,而非 UTC。

  3. 选 agent。 选每次触发要运行的后端:内置 Nomi(无需额外安装,最适合首跑),或检测到的 CLI agent(claude / codex / gemini),或预设助手。Advanced 里可覆盖 workspace、model 等。注意 workspace 路径不能含空白片段,服务端会强制校验。

  4. 选执行模式。 new_conversation——每次触发开一个新会话,适合各次互不相干的产出;existing(指定会话)——把提示词作为新消息发到同一线程,适合”提醒我""总结今天”这类需要延续上下文的任务。

  5. 写提示词并命名。 提示词请写成自包含的指令:agent 看不到你的原始想法,只看到这段文字,所以要明确告诉它产出什么。例如”搜索本周最新的 AI 资讯,整理成简洁的要点摘要”。Name 只是列表里的标签。

  6. 查看与管理任务。 列表页 /scheduled 显示每个任务、它的下一次触发与启用开关。

    定时任务列表

  7. 进入详情页操作。 打开 /scheduled/:job_id,可以立即运行(无视调度即时触发)、暂停 / 恢复编辑删除。详情页同时展示排程、运行历史,以及本任务创建的会话列表。

    任务详情:排程 / 立即运行 / 历史

要点与边界

  • 任务只在宿主运行时触发。 列表页有保持系统唤醒开关,开启后会请求操作系统抑制睡眠(macOS caffeinate、Windows SetThreadExecutionState、Linux 可用时为 systemd-inhibit),避免合上笔记本就漏触发。
  • 漏触发会被记录而不是静默丢失。 若系统休眠或应用未运行导致漏掉一次,下次启动 / 唤醒时会记一条 missed 运行、向受影响会话投一条系统消息,并为下一次正常触发重新装定定时器。
  • 运行历史带状态。 每次触发记为 ok / error / skipped / missed,并在适用时附带指向所生成会话的链接。
  • 忙碌守卫防止并发。existing 模式下,若上一次运行还没结束就到了下一次触发,新运行会被跳过(记为 skipped)。预期会长跑时改用 new_conversation,让每次触发各得一个线程。
  • 可附加按任务的技能。 在详情页为任务编写一个 SKILL.md,每次触发都会注入到 agent 会话中,用来锁定人格、工具偏好或工作区约定;技能按伙伴隔离(每个伙伴一套专属技能库),而记忆走的是全体伙伴共享的记忆中枢——两者相互独立。(按伙伴细分的私有记忆敬请期待。)删除任务会一并移除其技能目录。

常见问题

  • “立即运行”和正常调度冲突吗? 不冲突。立即运行无视调度即时触发一次,忙碌守卫仍然生效。
  • cron 表达式被拒绝了怎么办? 5 字段与 6 字段都合法;可用对话框里的 builder 或 crontab.guru 在本地校验。
  • 任务跑了但 agent 做错了事? 当作 agent 没有任何额外上下文来重读提示词——它必须明确写出要产出什么,必要时再附加一个技能来固定行为。

相关

完整文档 → GitHub