首页 › LLM大语言模型 › Codex专栏 › Codex中文教程 › 第九章:后台任务和周期检查

第九章:后台任务和周期检查

Automations 是什么​

Automations 是让 Codex 在后台或按计划执行重复任务的能力。​

​

▫️

适合:​

•

每天检查测试是否失败。​

•

每周总结依赖更新。​

•

定期检查文档和代码是否漂移。​

•

监控 PR、部署或 issue 状态。​

•

生成团队例行摘要。​

​

App 中的创建方式​

​

代码块​

Plain Text

每天早上 9 点检查这个项目的测试是否失败。如果失败,只汇总失败测试和可能原因,不要修改文件。​

​

​

▫️

创建后不要立刻信任它。先检查:​

​

App 是否显示 automation 名称和状态。​

运行时间是否符合你的时区。​

工作目录是否是目标项目。​

是否只读或写入范围受限。​

输出会回到当前线程、通知、PR 评论还是其他地方。​

有没有暂停、删除或修改入口。​

​

​

Automations 的三类常见任务​

​

#nUcpcMKFhRQN text { white-space: pre; }#nUcpcMKFhRQN .fb0 { stroke: var(--N900-FG, 0.15); }#nUcpcMKFhRQN .fb0 {stroke: rgba(31,35,41, 0.15)}#nUcpcMKFhRQN .fx0 { stroke-miterlimit: 10; }#nUcpcMKFhRQN .fx0 {stroke-miterlimit: 10}#nUcpcMKFhRQN .fa1 { fill: rgb(187, 191, 196); }#nUcpcMKFhRQN .fa1 {fill: rgb(187, 191, 196)}#nUcpcMKFhRQN .fx1 { font: 400 12px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#nUcpcMKFhRQN .fx1 {font-style: normal}#nUcpcMKFhRQN .fx2 { text-anchor: middle; }#nUcpcMKFhRQN .fx2 {text-anchor: middle}#nUcpcMKFhRQN .fx3 { dominant-baseline: central; }#nUcpcMKFhRQN .fx3 {dominant-baseline: central}#nUcpcMKFhRQN .fx4 { stroke: none; }#nUcpcMKFhRQN .fx4 {stroke: none}#nUcpcMKFhRQN .fc0 { fill: var(--text-caption); }#nUcpcMKFhRQN .fc0 {fill: #646a73}#nUcpcMKFhRQN .fa2 { fill: var(--text-link-disabled); }#nUcpcMKFhRQN .fa2 {fill: rgb(187, 191, 196)}#nUcpcMKFhRQN .fx5 { font: 400 13px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#nUcpcMKFhRQN .fx5 {font-style: normal}#nUcpcMKFhRQN .fx6 { text-anchor: start; }#nUcpcMKFhRQN .fx6 {text-anchor: start}#nUcpcMKFhRQN .fx7 { dominant-baseline: alphabetic; }#nUcpcMKFhRQN .fx7 {dominant-baseline: alphabetic}#nUcpcMKFhRQN .fc1 { fill: rgb(0, 0, 0); }#nUcpcMKFhRQN .fc1 {fill: rgb(0, 0, 0)}#nUcpcMKFhRQN .fb1 { fill: var(--N900-FG, 0.15); }#nUcpcMKFhRQN .fb1 {fill: rgba(31,35,41, 0.15)}#nUcpcMKFhRQN .fb2 { fill: rgb(209, 217, 224); }#nUcpcMKFhRQN .fb2 {fill: rgb(209, 217, 224)}#nUcpcMKFhRQN .fa3 { fill: var(--bg-body); }#nUcpcMKFhRQN .fa3 {fill: #fff}ABC1234类型摘要检查修复示例每周总结 open issues每天运行测试或 lint自动修小问题并提交 PR权限建议只读只读或最小写入必须明确范围和 Review

​

Cron、Heartbeat 和 Thread Follow-up 怎么理解​

App 里的自动化可以理解成三类使用体验:​

​

#KJdlPmXpcKcx text { white-space: pre; }#KJdlPmXpcKcx .fb0 { stroke: var(--N900-FG, 0.15); }#KJdlPmXpcKcx .fb0 {stroke: rgba(31,35,41, 0.15)}#KJdlPmXpcKcx .fx0 { stroke-miterlimit: 10; }#KJdlPmXpcKcx .fx0 {stroke-miterlimit: 10}#KJdlPmXpcKcx .fa1 { fill: rgb(187, 191, 196); }#KJdlPmXpcKcx .fa1 {fill: rgb(187, 191, 196)}#KJdlPmXpcKcx .fx1 { font: 400 12px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#KJdlPmXpcKcx .fx1 {font-style: normal}#KJdlPmXpcKcx .fx2 { text-anchor: middle; }#KJdlPmXpcKcx .fx2 {text-anchor: middle}#KJdlPmXpcKcx .fx3 { dominant-baseline: central; }#KJdlPmXpcKcx .fx3 {dominant-baseline: central}#KJdlPmXpcKcx .fx4 { stroke: none; }#KJdlPmXpcKcx .fx4 {stroke: none}#KJdlPmXpcKcx .fc0 { fill: var(--text-caption); }#KJdlPmXpcKcx .fc0 {fill: #646a73}#KJdlPmXpcKcx .fa2 { fill: var(--text-link-disabled); }#KJdlPmXpcKcx .fa2 {fill: rgb(187, 191, 196)}#KJdlPmXpcKcx .fx5 { font: 400 13px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#KJdlPmXpcKcx .fx5 {font-style: normal}#KJdlPmXpcKcx .fx6 { text-anchor: start; }#KJdlPmXpcKcx .fx6 {text-anchor: start}#KJdlPmXpcKcx .fx7 { dominant-baseline: alphabetic; }#KJdlPmXpcKcx .fx7 {dominant-baseline: alphabetic}#KJdlPmXpcKcx .fc1 { fill: rgb(0, 0, 0); }#KJdlPmXpcKcx .fc1 {fill: rgb(0, 0, 0)}#KJdlPmXpcKcx .fb1 { fill: var(--N900-FG, 0.15); }#KJdlPmXpcKcx .fb1 {fill: rgba(31,35,41, 0.15)}#KJdlPmXpcKcx .fb2 { fill: rgb(209, 217, 224); }#KJdlPmXpcKcx .fb2 {fill: rgb(209, 217, 224)}#KJdlPmXpcKcx .fa3 { fill: var(--bg-body); }#KJdlPmXpcKcx .fa3 {fill: #fff}ABC1234类型定时 / 周期任务当前线程稍后继续监控任务适合每天、每周、每小时检查30 分钟后提醒、稍后复查盯 PR、部署、issue 状态注意写清时区、目录、输出适合短期 follow-up要写清停止条件

​

不要手写复杂调度语法给普通读者。App 用户优先用自然语言创建,再在 App 里 Review 生成的计划。​

与 Skills 组合​

Automation 管“什么时候运行”,Skill 管“怎么做”。​

​

代码块​

Plain Text

每周一上午运行 ​

$dependency-review​

总结 package.json 的依赖​

不要自动升级依赖​

​

好处:​

•

Automation 保持短。​

•

Skill 里沉淀详细流程。​

•

团队可以复用同一个 Skill。​

与 Commands 的区别​

安全基线​

​

#OwTRlStvXVnA text { white-space: pre; }#OwTRlStvXVnA .fb0 { stroke: var(--N900-FG, 0.15); }#OwTRlStvXVnA .fb0 {stroke: rgba(31,35,41, 0.15)}#OwTRlStvXVnA .fx0 { stroke-miterlimit: 10; }#OwTRlStvXVnA .fx0 {stroke-miterlimit: 10}#OwTRlStvXVnA .fa1 { fill: rgb(187, 191, 196); }#OwTRlStvXVnA .fa1 {fill: rgb(187, 191, 196)}#OwTRlStvXVnA .fx1 { font: 400 12px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#OwTRlStvXVnA .fx1 {font-style: normal}#OwTRlStvXVnA .fx2 { text-anchor: middle; }#OwTRlStvXVnA .fx2 {text-anchor: middle}#OwTRlStvXVnA .fx3 { dominant-baseline: central; }#OwTRlStvXVnA .fx3 {dominant-baseline: central}#OwTRlStvXVnA .fx4 { stroke: none; }#OwTRlStvXVnA .fx4 {stroke: none}#OwTRlStvXVnA .fc0 { fill: var(--text-caption); }#OwTRlStvXVnA .fc0 {fill: #646a73}#OwTRlStvXVnA .fa2 { fill: var(--text-link-disabled); }#OwTRlStvXVnA .fa2 {fill: rgb(187, 191, 196)}#OwTRlStvXVnA .fx5 { font: 400 13px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#OwTRlStvXVnA .fx5 {font-style: normal}#OwTRlStvXVnA .fx6 { text-anchor: start; }#OwTRlStvXVnA .fx6 {text-anchor: start}#OwTRlStvXVnA .fx7 { dominant-baseline: alphabetic; }#OwTRlStvXVnA .fx7 {dominant-baseline: alphabetic}#OwTRlStvXVnA .fc1 { fill: rgb(0, 0, 0); }#OwTRlStvXVnA .fc1 {fill: rgb(0, 0, 0)}#OwTRlStvXVnA .fb1 { fill: var(--N900-FG, 0.15); }#OwTRlStvXVnA .fb1 {fill: rgba(31,35,41, 0.15)}#OwTRlStvXVnA .fb2 { fill: rgb(209, 217, 224); }#OwTRlStvXVnA .fb2 {fill: rgb(209, 217, 224)}#OwTRlStvXVnA .fa3 { fill: var(--bg-body); }#OwTRlStvXVnA .fa3 {fill: #fff}AB123456任务文档漂移检查测试守护PR 修复依赖升级外部服务通知建议只读,输出报告先只读,失败后提醒用 worktree 或分支,必须 Review不自动合并限定目标 channel / repo

​

所有自动化都要避免:​

•

读取 .env*。​

•

自动推送主分支。​

•

自动删除文件。​

•

自动扩大外部服务权限。​

运行后验收​

第一次运行后必须检查:​

​

​

与 GitHub Action / CI 的区别​

​

​

不要把 App Automation 当成 webhook server。接飞书、钉钉、企业微信或内部系统时,通常应由外部系统触发 CI / SDK / Cloud,而不是让桌面 App 暴露公网。​

设计模板​

8.1 只读摘要任务​

​

代码块​

Plain Text

每周五 17:00 总结本仓库本周 open PR 的状态,列出阻塞原因和需要人工决策的项。只读,不评论 PR。​

​

8.2 测试守护任务​

​

代码块​

Plain Text

每天 9:00 在当前项目运行 npm test。如果失败,汇总失败测试名、错误摘要和相关文件。不要修改文件。​

​

8.3 文档漂移任务​

​

代码块​

Plain Text

每周一检查 README、AGENTS.md 和 docs/ 是否与 package.json 的脚本一致。只输出 drift report,不修改文件。​

​

8.4 小范围自动修复任务​

​

代码块​

Plain Text

每周三检查 docs 中失效的内部相对链接。只允许修改 docs/ 下的 markdown 链接,改完展示 diff,不自动提交。​

​

常见问题​

Q1:电脑关机时 App Automations 还会运行吗?​

取决于当前 App 和环境能力。需要可靠持续运行时,优先考虑云端 runner、GitHub Action 或 Codex Cloud。​

Q2:Automation 能自动修 bug 吗?​

能,但不建议一开始就自动修。先做只读报告,再逐步放开小范围写入。​

Q3:可以用配置文件批量管理 Automations 吗?​

以当前 App 支持能力为准。教程不要臆造不存在的 .codex/automations.toml 主路径。​