第 17 卷
独立任务:每次运行开一个新对话,结果作为一条独立记录出现在Scheduled里。自定义周期用日历标准的 RRULE写,比如 RRULE:FREQ=MONTHLY;BYMONTHDAY=1;BYHOUR=9;BYMINUTE=0(每月1号早上9点)。
对话里的定时:在一个已有对话里让它按时回来,带着这段对话的上下文继续。可以按分钟间隔跑,适合盯一个还没跑完的部署、隔一阵检查一次PR状态。
建任务最简单的方式是直接跟它说:描述要做什么、什么时候跑、每次是回到这个对话还是开新对话。在App里的任务prompt中写 $skill-name 可以明确调用某个skill,官方也建议把动作写成skill,任务本身只管什么时候
触发。
几条官方建议:
先手动跑一遍。在普通对话里把prompt跑通,确认范围清楚、输出能审,再设成定时;前几次运行的结果
要认真看。
权限给最窄的。定时任务无人值守,用你的默认沙盒设置。先用workspace-write,需要时再放开网络或更大的文件范围。
worktree会越积越多。高频任务选worktree模式的话,定期归档不需要的运行。
模型下线了要改。GPT-5.5在10月14日对ChatGPT登录的Codex退役,用了它的定时任务要换成GPT-6.1 Sol。
官方举的例子有:每天看一遍监控里的报错并提交修复、定期出一份最近代码改动的报告、让一个盯PR的skill 自己建定时任务去检查PR状态并处理新的审查意见。
/goal:干到达成为止
/goal 是0.128.0(4月30日)加的,5月21日退出实验,现在App、IDE、CLI都能用。你给它一个目标,它会一
轮轮地干,直到目标达成或者被你停下:

不带参数输入/goal,会打印用法:设置目标,或者edit、pause、resume、clear。状态栏里的YOLO mode和GPT-6-Astra是我本机的个人配置,不是默认值。
/goal 把src/legacy下的模块全部迁移到TypeScript,npm test全部通过 /goal# 查看当前目标 /goal edit# 修改 /goal pause# 暂停 /goal resume# 继续 /goal clear# 清掉
目标最长4,000字符。几个版本里加的保护:
0.132.0起,碰到用量上限或者反复卡在同一个障碍上,它会停下来,不会一直空转烧额度。
0.148.0起,可以给goal配一个token预算。
0.151.0起,子agent用的token也算进主目标的预算里。
什么时候用:
适合:有明确的完成判据(测试全绿、某个指标达标),需要很多轮才能做完,你愿意让它自己决定中间的步骤。
不适合:几分钟就能做完的小事;需要你边看边判断的调试和探索。目标一设,它会一直往前推,你反而插
不上手。
完成判据写得越具体越好。「代码质量要好」这种它没法判断有没有达到;「 npm test 全部通过,并且不改测试文件」就能。
它们怎么配合
层回答的问题
Skill做什么、怎么做
| 插件 | 从哪拿现成的skill、MCP、hooks |
|---|---|
| MCP | 连什么外部工具 |
| hooks | 在哪些时刻自动检查或拦截 |
| 定时任务 | 什么时候做、多久做一次 |
| /goal | 做到什么程度才算完 |
一个组合的例子:写一个 $sentry-triage 的skill,读Sentry MCP里最近的高优先级错误、找到对应代码、开修复PR;再建一个工作日每天早上9点的定时任务,prompt里写明调用这个skill,用worktree模式;加一个
PreToolUse 的hook,拦掉任何想推到main分支的命令。你早上打开Scheduled,看到的是它昨晚到今早开了哪些PR、哪些错误它判断需要你来决定。
和Claude Code对照
这几层Claude Code现在都有对应的东西:Skills和插件市场、MCP、hooks、 /goal(2.1.139起,用一个独立
的小模型判断目标是否达成)、 /loop(会话内按间隔重跑)、Routines(云端定时,研究预览)。两家的差别更多在细节:Codex的定时任务和事件触发挂在ChatGPT的App和网页上,跟Gmail、Slack这些已连接的应用打
通;Claude Code的定时分成会话内、桌面、云端几层。§10有完整对照。
建议:上手顺序是是先skill、再定时任务、最后/goal。先把一件你反复做的事写成skill,手动调用几次确认稳了;再让它定时跑;真有一件需要连续推进很多轮、完成标准又说得清的事,再上/goal。三样同时上,出了问题很难分清是哪一层的事。