AI 编程最大的效率黑洞:你一直在当监工——Codex /goal 模式让不达目的不罢休
你有没有数过,用 AI 编程代理完成一个稍微复杂的任务,你要输入多少次”继续”?
迁移一个 API 客户端,你说”把 v1 迁移到 v2″,AI 跑一轮改了三个文件,测试挂了,你说”继续修”;它又改了两个,测试过了但 lint 报了,你说”继续”;lint 修完发现有个 edge case,你说”继续”……一个本来 30 分钟能搞完的迁移,你坐在那里当了 40 分钟的人肉”继续”按钮。
2026 年 4 月 30 日,OpenAI 在 Codex CLI 0.128.0 里加了一个新命令:/goal。它做的事情很简单——设一个目标,然后 AI 自己循环,直到目标完成或你叫停。
01 它不是一个新命令,而是一个新的运行方式
/goal 看起来就是一个斜杠命令,但它改变了 Codex 的运行模式。
普通模式下,你给 Codex 一条指令,它执行一次,然后停下来等你。每次对话都是独立的——上一轮改了什么、测试结果如何、还剩什么没做,都得你手动告诉它,或者它自己从上下文里猜。
/goal 模式下,你定义一个目标——比如”把所有 API v1 客户端迁移到 v2 并保持测试通过”——然后 Codex 进入一个循环:
-
1. 分析目标,拆出当前应该做的一步 -
2. 执行这一步(改代码、跑测试、读文件……) -
3. 检查结果,判断目标是否完成 -
4. 如果没完成,回到第 1 步继续 -
5. 如果完成了,停下来报告
你可以把它理解成:普通模式是”你说一句它做一步”,/goal 模式是”你告诉它终点在哪,它自己走过去”。就像导航——你不用每一百米喊一声”继续直走”,设好目的地,它自己规划路线。
和普通提示最大的区别在于:目标是持久化的。你关掉终端、重启电脑、甚至过了三天再回来,目标还在——/goal resume 就能接着干。
02 为什么”手动继续”是 AI 编程最大的效率黑洞
AI 编程代理已经很强了——单轮任务的完成率很高,代码质量也在持续提升。但真实项目的任务几乎从来不是单轮的:
-
• 迁移类任务——”把旧 API 迁移到新 API”,可能涉及几十个文件、上百个调用点,每改一处都可能触发新的编译错误 -
• 测试类任务——”把测试覆盖率提到 80%”,写测试、跑测试、修失败、再跑,循环十几次 -
• 重构类任务——”重构这个模块但不改变行为”,改了代码要确保所有测试通过、类型检查通过、lint 通过 -
• 调试类任务——”找到并修复这个 flaky test”,需要复现、定位、修复、验证
这些任务的共同特征是需要多轮迭代,而每一轮之间,你需要:
-
1. 看上一轮的结果(测试通过了吗?报错了吗?) -
2. 决定下一步做什么(修这个报错?跑全部测试?) -
3. 把决策告诉 AI(”继续修” / “跑一下全部测试” / “看一下这个报错”)
这三步几乎不需要任何创造力——它们是机械的判断-决策-传达循环。但你必须做,因为 AI 不知道”目标是什么”,它只知道”你刚才说了什么”。
这就是 /goal 解决的核心问题:**把机械的迭代循环交给机器,把创造性判断留给人。**你定义”什么算完成”,AI 负责循环到完成;你随时可以暂停、检查、调整方向。
03 五层架构:一个目标从创建到完成的全过程
/goal 不是简单的”循环执行”——它是一个五层架构,每一层负责目标生命周期的不同方面。
图注:/goal 的五层架构——TUI 给用户控制权,API 同步状态,模型工具受限访问目标,运行时管理循环,持久化层保证重启不丢。
持久化层:目标不会丢
每个目标在创建时写入一个线程级状态机,记录:
-
• 目标内容(你定义的”什么算完成”) -
• 当前状态(活跃 / 暂停 / 已完成 / 预算耗尽) -
• token 使用量(消耗了多少,还剩多少) -
• 完成标记(模型认为完成了吗?)
这意味着你可以在任何时刻中断——断电、关终端、换电脑——目标状态都在。下次 /goal resume 就能从上次断点继续,不需要重新解释上下文。
模型工具:AI 只能看和更新,不能随意创建
这是设计中最精妙的部分。模型有三个目标相关的工具:
-
• get_goal——读取当前目标(任何时刻都能用) -
• create_goal——创建目标(只在特定条件下允许) -
• update_goal——更新目标状态(比如标记为已完成)
注意权力的不对等:**用户可以创建、暂停、恢复、替换、清除目标;模型只能在受限条件下创建和更新。**这防止了 AI 自己给自己设目标、绕过你的意图。
运行时:智能的续行管理
运行时负责”什么时候继续执行”这个关键问题。它的设计很有讲究:
-
• 只在会话空闲时安排续行回合——不会在你正在输入时抢着执行 -
• 用户输入优先级更高——你说了一句话,续行暂停等你 -
• 预算感知——token 预算耗尽时,不直接中止,而是标记 budget_limited并注入总结性指导,让模型”优雅地收尾”而不是”突然死亡”
TUI:你始终拥有方向盘
终端界面提供了四个控制命令:
|
|
|
|---|---|
/goal create |
|
/goal pause |
|
/goal resume |
|
/goal clear |
|
这四个命令保证了一个关键原则:**AI 可以自己跑,但你随时可以踩刹车。**你不需要等它完成一轮迭代才能干预——随时暂停、检查进度、调整方向、然后恢复。
04 /goal 不是唯一的选择
/goal 解决的是”AI 编程代理的持续执行”问题,但它不是唯一的解法。Anthropic 的 Claude 有一套不同的思路:Managed Outcomes。
两种哲学
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/goal 优化的是前进动力——让 AI 不要因为缺少人工干预就停下。代价是可能”完成了”但质量不达标,因为没有显式的验收标准。
Managed Outcomes 优化的是质量保证——你定义”完成”的评分标准,AI 在单独的上下文窗口中工作,直到满足标准或达到最大迭代次数。代价是评分标准设计不好,AI 可能永远达不到”完成”状态。
什么时候用哪个
用 /goal 的场景:
-
• 大规模迁移和重构——”把 v1 迁移到 v2″,需要多轮修改-测试循环 -
• 测试覆盖率提升——”写到 80% 为止”,目标是数值化的,不需要复杂评分 -
• 快速修复连锁错误——”修到所有测试通过”,迭代路径清晰
用 Managed Outcomes 的场景:
-
• 需要审计跟踪的关键工作——”从 SEC 文件生成财务模型”,每一步都要可追溯 -
• 质量标准明确的交付——”生成支持手册,必须包含 X、Y、Z”,有显式评分标准 -
• 团队协作——”完成的标准”需要多人达成共识,评分标准就是共识的文档化
最佳实践:两者结合。第一阶段用 /goal 快速推进(”把迁移做完”),第二阶段用 Outcomes 做质量门控(”验证迁移结果满足评分标准”)。/goal 负责干活,Outcomes 负责验收。
不适合用 /goal 的场景
-
• 单轮任务——”加个按钮””修个拼写错误”,普通模式就够了,/goal 反而多此一举 -
• 需要频繁人工判断的任务——”设计这个页面的交互”,每一步都需要你的创意决策,AI 自己循环会跑偏 -
• 不确定”完成”是什么的任务——”优化一下这个模块”,如果你自己都说不清什么算优化完了,/goal 也会迷失方向
05 5 分钟跑通你的第一个 /goal
安装和更新
确保你的 Codex CLI 版本 ≥ 0.128.0:
# 查看当前版本
codex --version
# 更新到最新版
npm install -g @openai/codex@latest
成功标志:codex --version 输出 ≥ 0.128.0
创建第一个目标
启动 Codex,输入:
/goal create 将 src/api/ 目录下所有 fetch 调用迁移到新客户端,确保所有测试通过
Codex 会确认目标,然后进入自动循环模式。你会看到它在终端中自动执行:
-
1. 扫描 src/api/目录找到所有 fetch 调用 -
2. 逐个替换为新客户端写法 -
3. 每改几个文件后自动运行测试 -
4. 如果测试失败,自动分析失败原因并修复 -
5. 重复直到所有测试通过
中途干预
如果发现方向不对,随时可以:
/goal pause # 暂停,AI 停止执行
# 检查当前进度...
/goal resume # 恢复,从断点继续
/goal clear # 清除目标,重新开始
预算管理
/goal 会追踪 token 使用量。当预算接近上限时,状态变为 budget_limited,AI 会尝试优雅收尾——总结当前进度、标记未完成的部分,而不是直接中断。
如果你不想让它花太多 token,可以在创建目标时限定范围:
/goal create 修复 src/auth/ 下的 3 个失败测试(仅限 auth 模块)
范围越精确,token 消耗越可控。
避坑指南
坑 1:目标太模糊,AI 跑偏了
表现:你设了”优化代码”,AI 开始重写整个项目。
原因:/goal 模式下 AI 会主动推进,目标模糊 = 方向随意。
解决:目标必须包含可验证的完成条件。不是”优化代码”,而是”将 auth 模块的圈复杂度降到 10 以下,所有测试通过”。
坑 2:预算耗尽,任务没完成
表现:AI 跑着跑着停了,显示 budget_limited,但你还有一半文件没改。
原因:大规模迁移类任务天然消耗大量 token,默认预算可能不够。
解决:把大目标拆成小目标。不是”迁移整个项目”,而是”迁移 auth 模块”→”迁移 payment 模块”→”迁移 user 模块”。每个小目标独立完成,互不干扰。
坑 3:和普通模式混淆,忘了 /goal 还在跑
表现:你手动输入了一个新指令,但 AI 还在执行 /goal 的循环。
原因:/goal 的续行回合会在空闲时自动安排,和你的手动输入可能交织。
解决:先 /goal pause,处理完手动任务,再 /goal resume。养成”切换任务前先暂停”的习惯。
/goal 的意义不在于让 AI 更聪明,而在于让 AI 更持续。
以前的 AI 编程代理像一个需要你不断拍手鼓励的实习生——你不拍手,它就停下。/goal 让它变成了一个能独立推进任务的同事——你设好目标,它自己跑;你随时可以查看进度、调整方向;你叫停,它就停。
但请记住:/goal 优化的是”不停止”,不是”不出错”。如果你需要的是”确保质量”,搭配 Managed Outcomes 做验收;如果你需要的是”快速推进”,/goal 就是那个”不达目的不罢休”的引擎。
延伸阅读:
-
• Codex CLI Changelog -
• Codex /goal 详细解读 -
• Codex /goal vs Claude Managed Outcomes 对比
夜雨聆风