当天目标:把 Codex 变成"不在电脑前也能干活"的后台劳动力,并吸收一套成熟的高效用法。
工作流的本质区别:人在不在场
前面五天你都在场兜底。人不在场时,唯一的兜底是你事先收紧的边界——所以无人值守的权限必须比白天更紧,这跟 Day 2 一脉相承。
定时任务:RRULE 与外部触发
Codex 的定时能力主要在**桌面端 / Web(ChatGPT 托管界面)**里配置 scheduled 任务(Web 版有局限,比如没有本地文件夹,纯云端任务才顺);CLI 没有内置定时 UI,要靠外部 cron(macOS/Linux)或 CI 触发 codex exec "<提示词>",Windows 用任务计划程序或 WSL2 跑这条。别被"在 Codex 里建个 scheduled"这种含糊说法骗了——你走哪条路线,定时就走哪条路。
RRULE 是日历重复规则标准写法,填进定时配置时用。例:每周一早 9 点扫一遍 Issue 生成周报:
FREQ=WEEKLY;BYDAY=MO;BYHOUR=9;BYMINUTE=0CLI 等价做法(外部 cron 触发):
bash
# macOS/Linux:crontab -e 里加一行,每周一 9:00 跑
0 9 * * 1 codex exec "读本周 GitHub Issues,生成按优先级排序的周报,写到 weekly-report.md" --sandbox workspace-write -a on-request
# Windows:用任务计划程序或 WSL2 触发等价命令,不要在 cmd 里直接跑 cron(没有)无人值守权限必须收紧:审批用 on-request 甚至 untrusted,沙箱 workspace-write 且默认断网,绝对不拿白天 never × danger-full-access 的配置直接丢给定时任务。CLI 0.147.0 起新增 --approve-for-me(代你批常规确认,但仍受沙箱约束)——不是放行一切。
心跳:让它定期主动向你汇报
下面这套用法,核心只有一句:别打断人和 Agent 的协作循环。我按实战拆成七条来讲,核心四条:
- 持久对话串:把相关任务挂同一条长对话,它带上下文连续干,不用每次重启交代背景。
- Steering(中途纠偏):用 Follow-up=steer(Day 1 开的)随时发消息调方向,它会在当前循环里就地改。提示词写法:"在不动当前 X 的前提下,把 Y 也加上"。
- Queuing(排队不打断):把新指令排进队列,它干完手上这段再接新方向,不中途打断正在跑的循环。适合"先跑完这批,再开始那批"。
- 结构化记忆:把项目关键约定、踩过的坑写进 AGENTS.md / Memories,或者像很多开发者那样用 Obsidian 这类本地笔记软件建个知识库、让 AGENTS.md 当索引——代码库存代码,记忆库存滚动上下文,跨会话带着长期记忆干。
其余几招是上面四招的变体,挑有用的记:
- 工具触达:用 MCP 接浏览器、电脑、邮件、日历这类外部工具——比如让 Agent 直接开浏览器查资料,或把你的邮件、日历变成它干活的起点;语音口述任务——打字会把需求压成一句干巴巴的话,口述才带得出约束、背景和"上次那个坑",而这些正是 Done when 写准的原料,配合双 Command 键截图喂上下文,适合边走边想。
- Goals + 验证器 / 侧边栏:任务里写清 Goal 和 Done when(就是前面验收闭环那套);长任务丢侧边栏,主线程干别的。
- 定期清坏规则:工作流跑久了会积过期 Skill、不再适用的约定。定期清一遍,比攒一堆更省心。
心跳 RRULE 示例:每 30 分钟扫一次 Slack/Issue,起草但不发送(防它擅自发出去):
FREQ=MINUTELY;INTERVAL=30任务提示词里明确"只起草,不发送"——这是无人值守的安全底线。
一个能直接抄的无人值守例子
把上面拼起来,这就是一个可落地的后台任务:
bash
# 每周一 9:00,让 Codex 扫 Issue 起草周报(不发送)
# crontab -e(macOS/Linux)或任务计划程序(Windows)
0 9 * * 1 codex exec \
"读本周 open 状态的 GitHub Issues,按优先级生成周报草稿,写到 weekly-report.md。只起草,绝不主动发送或改任何 Issue。" \
--sandbox workspace-write -a on-request --approve-for-me要点:提示词明文"只起草不发送"兜底——这是无人值守的安全底线(沙箱、审批、--approve-for-me 的收紧见上方,别放松)。它真出格,最坏的结局也只是写了个本地草稿,不会外发、不会删库。
变体:每天 9:00 只读巡检。把周报例子换成"只读检查磁盘 / 日志 / 证书到期,写 report.md,经飞书或企微 MCP 推送到你眼前"——结果推到你面前,定时任务才用得下去。安全约束照写:read-only 沙箱 + 提示词"只报告不修复"。
三个锦囊
- 无人值守权限比人在时更紧,绝不用白天 full 档丢给定时任务;CLI 走 cron +
codex exec。 - 心跳任务"只起草不发送",防它擅自对外发。
- 这七条里"持久串 / Steering / Queuing / 结构化记忆"是常驻核心习惯——其余几招按场景取用。
自测标尺(用动作验证)
- [ ] 你写过一个 RRULE(如
FREQ=WEEKLY;BYDAY=MO;BYHOUR=9;BYMINUTE=0),且知道无人值守权限要收紧。 - [ ] 你知道
--approve-for-me(0.147.0 新增)是干嘛的、受什么约束;CLI 定时靠系统自带的定时任务 cron 或 CI 触发,没有内置定时界面。 - [ ] 你实操过"持久对话串"或"中途纠偏"其中一种。
- [ ] 你理解"定期清坏规则"为什么必要。
效率日志
| 任务 | 手动做要几分钟 | Codex 做+你验收几分钟 | 打回几次 |
|---|---|---|---|
| 排一个定时/心跳任务 | ___ | ___ | ___ |
