跳到主要内容
文档导航

计划任务

计划任务让 Agent 按 cron 或一次性时间运行指定工作流,把已经验证过的稳定流程交给应用自动重复执行。它适合边界明确、可重复、不需要人工实时确认的任务。

计划任务不是用来跑实验的。先在普通聊天里把任务跑通,再把它放进 schedule。

计划任务是什么

一个计划任务由几个概念组成:

  • Job:任务定义,包含要运行的 Agent、任务 prompt 和触发规则。
  • Run:一次执行记录,保存这次运行产生的消息、文件和状态。
  • Agent:执行任务的工作单元,决定 system prompt 和可用工具范围。
  • Schedule:触发规则,决定任务在什么时间运行(cron 或一次性)。

计划任务的核心区别在于:它运行在独立的 job run 里,而不是你正在聊天的普通 session 中。

适用场景

计划任务适合已经验证过、输出格式稳定的重复性工作。

适合:

  • 每日或每周的资料摘要。
  • 项目依赖巡检。
  • 日志或状态检查。
  • 周报生成。
  • 定期的 web research。

不适合:

  • 未验证的复杂任务。
  • 高风险的写操作。
  • 高频、无界的网络调用。
  • 需要人工实时确认的任务。

创建任务

推荐的创建顺序是先验证、再调度:

  1. 创建一个专用 Agent。
  2. 用普通 session 试跑任务。
  3. 调整 system prompt 和工具范围。
  4. 确认输出格式稳定。
  5. 创建 schedule。
  6. 选择 cron 或一次性时间。
  7. 填写任务 prompt。
  8. 保存并等待第一次 run。
  9. 查看 run 结果。

不要直接把未经验证的 prompt 放进 schedule。先在普通聊天里跑通,确认 Agent 的行为和输出可预测,再交给计划任务重复执行。

Cron vs 一次性任务

计划任务有两种触发方式:cron 用于周期重复,一次性用于在指定时间执行一次。

类型 适合 示例
Cron 周期重复 每周一上午生成项目风险摘要
一次性 指定时间执行一次 明天 9 点整理会议资料

Cron 示例:

每周一 09:00:检查项目依赖更新和潜在 breaking changes。

一次性示例:

明天 10:00:搜索并整理某技术主题最近一周的重要更新。

Job run 数据

Schedule run 与普通 session 分开保存,便于追踪自动化执行历史,也避免污染普通聊天上下文。

具体来说:

  • 每次 run 都有独立记录。
  • Run 可以包含 messages、files 和状态。
  • 失败的 run 应保留错误信息,便于排查。

把自动化历史与日常聊天隔离,意味着你可以回看某个计划任务过去几周的执行轨迹,而不必在普通对话里翻找。

Cold-start catch-up

如果应用在某个计划触发时间未运行,重新启动时可能需要处理错过的任务。具体 catch-up 策略以当前应用实现为准。

由于 Deskmate 是桌面应用,计划任务依赖本机的运行状态,因此关于补跑需要保持克制的预期:

  • 不承诺所有错过的任务都一定补跑。
  • 不承诺精确定时执行。
  • 任务的触发依赖应用在目标时间处于运行状态。

如果你的任务对时效性要求很高,应把它当作“尽力而为”,并在 run 记录里确认实际执行时间。

安全和成本

计划任务会自动、重复地调用模型和工具,因此需要提前评估副作用和开销。

需要注意:

  • 定时任务可能产生模型费用。
  • Web search 或 MCP 调用可能访问外部服务。
  • Shell 命令可能产生本地副作用。
  • 高频 cron 可能造成限流或资源占用。

建议:

  • 使用低频计划,避免不必要的高频触发。
  • 给任务设清晰边界,限制工具范围。
  • 避免让计划任务默认写入重要系统。
  • 先人工审查前几次 run,确认行为符合预期后再放手。

示例任务模板

下面是几个可以直接改写使用的任务模板。

每周项目巡检

检查当前项目过去一周的风险:依赖更新、构建失败、错误日志和未完成 TODO。输出:结论、证据、风险等级、建议动作。

每日资料摘要

搜索并整理指定主题过去 24 小时的重要更新。必须列出来源链接,区分事实和推断。

日志巡检

读取最近 24 小时应用日志,列出 warn+ 事件、top errors 和需要人工关注的问题。

故障排除

任务没有执行

检查应用是否处于运行状态、schedule 是否已启用、cron 表达式是否正确。桌面应用未运行时,计划任务不会触发。

Run 失败

查看 run 的错误信息、provider 认证状态、MCP 连接状态以及应用日志,定位失败原因。

输出质量不稳定

先回到普通 session 调整 Agent 的 system prompt 和工具范围,确认输出稳定后,再更新 schedule。

调用成本过高

降低触发频率,换用更便宜的模型,并缩小任务上下文,减少每次 run 的开销。

下一步

  • Agent 文档:/docs/agents
  • 本地工具:/docs/local-tools
  • 故障排除:/docs/troubleshooting