设置 App 自动化任务
基于官方 Codex App Automations 教程,讲清 automations 适合什么重复任务、worktree 怎么选、权限怎么控。
Codex App Automations 用来在后台定期运行重复任务。有发现时进入 inbox;没有需要报告的内容时自动归档。复杂任务可以和 skills 结合。
Automation 是无人值守运行,不是“省一个点击”。创建前必须写清权限、范围、停止条件和结果审查方式。
它解决什么
flowchart LR
Schedule["schedule"] --> Run["background run"]
Run --> Finding["findings"]
Finding --> Inbox["inbox"]
Run --> Silent["nothing to report"]
Silent --> Archive["auto archive"]
适合 automation 的任务,通常有固定频率、固定范围、固定判断标准:
- 定期检查 PR 状态。
- 扫描最近提交风险。
- 汇总某个目录变化。
- 跟进长期命令是否完成。
- 提醒某个 review loop 继续推进。
不适合 automation 的任务:
- 目标模糊。
- 需要频繁人工判断。
- 会改大范围文件。
- 会触碰凭据或生产配置。
- 没有停止条件。
Thread 还是 standalone
Thread automation 挂在当前 thread 上,适合需要保留同一段上下文的任务。比如持续跟进一个部署、一个 PR review、一个正在排查的问题。
Standalone automation 每次按 schedule 启动 fresh run,适合彼此独立的周期任务。比如每天看某个目录最近变化、每周生成文档过期报告。
判断原则很简单:
- 每次 run 都应该从干净上下文开始:standalone。
- 必须记住这段对话里的历史:thread automation。
- 任务范围还没稳定:先别自动化。
Local project 还是 worktree
Git 仓库里,automation 可以在本地项目中运行,也可以在后台 worktree 中运行。
Local project 会直接碰当前 checkout,可能改到你正在编辑的文件。只适合只读任务,或你明确希望它处理当前工作区。
Worktree 会把 automation 的改动和你正在做的工作隔离开。涉及写文件、生成 patch、长期后台运行时,新手优先选 worktree。
未使用版本控制的项目没有这种隔离,automation 会直接在项目目录中运行。风险更高,只建议做只读任务。
权限怎么给
Automations 使用你的默认 sandbox settings。
- read-only:适合检查、总结、提醒。
- workspace-write:适合在明确范围内写入文件。
- full access:后台任务风险最高,除非在可重建环境里,不要默认启用。
需要特殊命令时,优先用 rules 选择性 allowlist,而不是把整个 automation 放到 full access。企业环境里,管理员还可以用 managed configuration 限制 approval policy 和 sandbox modes。
Prompt 怎么写
Automation prompt 要能在未来反复运行,不能依赖“刚才我们说的那个”。
必须写清:
- 任务范围。
- 检查频率。
- 什么时候报告。
- 什么时候归档。
- 什么时候停止。
- 什么时候向用户要输入。
如果它会改文件,还要写清:
- 允许目录。
- 禁止目录。
- 验证命令。
- 输出格式。
- 失败时如何处理。
如果任务复杂,先做 skill。用 skill 定义稳定流程,再在 automation 中显式调用它,比把长 prompt 直接塞进 automation 更可维护。
常见坑
- 没手动测试 prompt 就设 schedule。
- 让 automation 在本地 checkout 写文件,干扰自己正在开发的改动。
- 把一次性模糊任务做成长期自动化。
- full access 后台运行,事后才发现改了不该改的文件。
- 没有停止条件,automation 一直报告低价值结果。
- 使用 worktree 后不清理历史 runs。
- 结果进 inbox 后不审查,以为自动化等于完成。
验收清单
- 普通 thread 手动跑过一次 prompt。
- scope、工具、模型和输出符合预期。
- 前几次 run 都逐条审查 inbox。
- 写入发生在 worktree 或允许范围内。
- 验证命令真实运行。
- 没有发现内容时能安静归档。
- 任务完成后能停止 automation 并清理不再需要的 worktree。