Skip to content

Codex 定时任务与持续目标实战

自动化不是把一个模糊提示设成每天运行。正确顺序是:手动跑通、固定输入输出、加入验证和失败策略,最后才设定持续目标或计划任务。

Goal 与 Scheduled task 的区别

  • Goal:同一个任务围绕一个明确完成条件持续推进,适合需要数小时或多轮的项目。
  • Scheduled task:按时间创建独立运行,适合日报、检查、监控和周期性整理。

如果每次运行都应该从新状态开始,使用定时任务;如果要延续当前调查、上下文和决策,使用 Goal。

用 Goal 驱动长任务

先在 App 中使用 /plan 调查并确认方案,再设置:

text
/goal
完成订单导出功能:实现后端导出、前端下载、权限与上限处理、测试、文档和最终构建。保持现有列表 API 不变,不提交或推送。只有所有验收项都有验证证据才算完成。

好的完成条件包含:

  • 明确交付物;
  • 不可改变的边界;
  • 验证命令和用户路径;
  • 外部动作限制;
  • 哪些情况必须停下来询问。

运行中可以补充信息或纠偏,但不要不断改变核心目标。新需求应拆为后续任务。

适合 Goal 的任务

  • 多阶段重构;
  • 大型文档站补全;
  • 跨模块功能并带测试和审查;
  • 持续排查难复现故障;
  • 大批量但可验证的迁移。

不适合:完成标准本身未决、需要频繁业务审批、不可逆生产操作,以及没有可观察验证的探索。

创建 Scheduled task 前先手动跑三次

候选流程至少手动运行几次,确认:

  • 输入来源稳定;
  • 输出格式可审查;
  • 没有依赖临时聊天上下文;
  • 失败会明确报告;
  • 不会修改正在使用的工作树;
  • 权限和成本可接受。

将稳定方法固化成 Skill,定时任务只负责“何时、在哪个项目、用哪个输入运行”。

创建一个只读周报任务

在桌面应用 Scheduled 页面创建,选择项目、执行环境和时间。示例提示:

text
生成本周项目变化摘要。

范围:从上周一 00:00 到现在的已提交记录和当前 CI 状态。
输出:
1. 已交付功能;
2. 重要修复;
3. 仍失败的检查;
4. 下周需要人工决策的问题;
5. 引用对应提交或工作流链接。

只读,不修改仓库,不创建 issue,不发送消息。找不到证据时写“未确认”。

Git 仓库的定时任务优先使用专用 background worktree,避免与 Local 修改冲突。

一个安全的自动 Bug 扫描任务

第一阶段只报告:

text
检查最近 24 小时合入的代码,寻找一个能被测试或明确复现的真实回归。
只输出:触发条件、证据、影响、最小修复建议和验证命令。
不要修改代码、创建分支、提交或评论 PR。

报告质量稳定后,再增加“在独立 worktree 中生成候选修复,但不要推送”。最后才考虑自动创建草稿 PR。不要一步跨到自动合并。

测试定时任务

创建后先手动触发一次,检查:

  • 实际项目和分支;
  • worktree 是否正确;
  • 时区和计划时间;
  • Skills、Plugins、MCP 是否加载;
  • 网络和认证是否可用;
  • 输出发到哪里;
  • 失败是否产生可见通知;
  • 是否留下未清理 worktree。

修改提示后重新测试,不要等下一次正式运行才发现问题。

权限与外部动作

定时任务无人实时盯着,权限应比交互任务更窄:

  • 默认只读;
  • 写入仅限独立 worktree;
  • 网络按域名或工具限制;
  • 不使用个人高权限账号;
  • 不自动发送邮件、消息或生产变更;
  • 生成草稿而不是直接发布;
  • 日志和输出不包含秘密。

监控自动化是否仍然有效

定期检查:

  • 最近成功率与失败原因;
  • 产物是否仍被人使用;
  • 输入 API、插件或仓库结构是否变化;
  • Skill 和任务提示是否漂移;
  • Token、外部 API 和存储成本;
  • 不再需要的连接和计划是否已删除。

“一直成功”也可能只是任务已经没有有效输入。

常见失败

依赖上一轮聊天

把必要上下文放项目文件、Skill 或任务提示中,定时任务每次按独立运行设计。

在 Local 目录产生冲突

改用专用 worktree,或将任务改为只读报告。

自动化把警告当修复

先要求可复现证据和候选 diff,再由后续门槛决定是否修改。

输出越来越长

固定格式、数量上限、时间范围和优先级,只报告有证据的变化。

完成门槛

  • [ ] 流程已手动稳定运行。
  • [ ] Goal 或定时任务有明确完成/输出定义。
  • [ ] 执行环境和 worktree 不干扰本地工作。
  • [ ] 权限、网络和外部写操作受限。
  • [ ] 手动触发测试成功,并能看到失败通知。
  • [ ] 有停用和清理机制。

下一步

需要在脚本或 CI 中运行时,继续学习 codex exec 与 GitHub Actions

事实来源

程序员小枫同学:用好新工具,练好工程内功,做出可靠交付。