计划任务
计划任务让 Agent 按 cron 或一次性时间运行指定工作流,把已经验证过的稳定流程交给应用自动重复执行。它适合边界明确、可重复、不需要人工实时确认的任务。
计划任务不是用来跑实验的。先在普通聊天里把任务跑通,再把它放进 schedule。
计划任务是什么
一个计划任务由几个概念组成:
- Job:任务定义,包含要运行的 Agent、任务 prompt 和触发规则。
- Run:一次执行记录,保存这次运行产生的消息、文件和状态。
- Agent:执行任务的工作单元,决定 system prompt 和可用工具范围。
- Schedule:触发规则,决定任务在什么时间运行(cron 或一次性)。
计划任务的核心区别在于:它运行在独立的 job run 里,而不是你正在聊天的普通 session 中。
适用场景
计划任务适合已经验证过、输出格式稳定的重复性工作。
适合:
- 每日或每周的资料摘要。
- 项目依赖巡检。
- 日志或状态检查。
- 周报生成。
- 定期的 web research。
不适合:
- 未验证的复杂任务。
- 高风险的写操作。
- 高频、无界的网络调用。
- 需要人工实时确认的任务。
创建任务
推荐的创建顺序是先验证、再调度:
- 创建一个专用 Agent。
- 用普通 session 试跑任务。
- 调整 system prompt 和工具范围。
- 确认输出格式稳定。
- 创建 schedule。
- 选择 cron 或一次性时间。
- 填写任务 prompt。
- 保存并等待第一次 run。
- 查看 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