乐于分享
好东西不私藏

AI 编程最大的效率黑洞:你一直在当监工——Codex /goal 模式让不达目的不罢休

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. 1. 分析目标,拆出当前应该做的一步
  2. 2. 执行这一步(改代码、跑测试、读文件……)
  3. 3. 检查结果,判断目标是否完成
  4. 4. 如果没完成,回到第 1 步继续
  5. 5. 如果完成了,停下来报告

你可以把它理解成:普通模式是”你说一句它做一步”,/goal 模式是”你告诉它终点在哪,它自己走过去”。就像导航——你不用每一百米喊一声”继续直走”,设好目的地,它自己规划路线。

和普通提示最大的区别在于:目标是持久化的。你关掉终端、重启电脑、甚至过了三天再回来,目标还在——/goal resume 就能接着干。

02 为什么”手动继续”是 AI 编程最大的效率黑洞

AI 编程代理已经很强了——单轮任务的完成率很高,代码质量也在持续提升。但真实项目的任务几乎从来不是单轮的:

  • • 迁移类任务——”把旧 API 迁移到新 API”,可能涉及几十个文件、上百个调用点,每改一处都可能触发新的编译错误
  • • 测试类任务——”把测试覆盖率提到 80%”,写测试、跑测试、修失败、再跑,循环十几次
  • • 重构类任务——”重构这个模块但不改变行为”,改了代码要确保所有测试通过、类型检查通过、lint 通过
  • • 调试类任务——”找到并修复这个 flaky test”,需要复现、定位、修复、验证

这些任务的共同特征是需要多轮迭代,而每一轮之间,你需要:

  1. 1. 看上一轮的结果(测试通过了吗?报错了吗?)
  2. 2. 决定下一步做什么(修这个报错?跑全部测试?)
  3. 3. 把决策告诉 AI(”继续修” / “跑一下全部测试” / “看一下这个报错”)

这三步几乎不需要任何创造力——它们是机械的判断-决策-传达循环。但你必须做,因为 AI 不知道”目标是什么”,它只知道”你刚才说了什么”。

这就是 /goal 解决的核心问题:**把机械的迭代循环交给机器,把创造性判断留给人。**你定义”什么算完成”,AI 负责循环到完成;你随时可以暂停、检查、调整方向。

03 五层架构:一个目标从创建到完成的全过程

/goal 不是简单的”循环执行”——它是一个五层架构,每一层负责目标生命周期的不同方面。

TUI 界面创建/暂停/恢复/清除

应用服务器 API状态同步

模型工具get_goal / create_goal / update_goal

运行时续行管理 / 预算控制 / 中断处理

持久化层目标状态 / token 用量 / 完成标记

图注:/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

两种哲学

维度
Codex /goal
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. 1. 扫描 src/api/ 目录找到所有 fetch 调用
  2. 2. 逐个替换为新客户端写法
  3. 3. 每改几个文件后自动运行测试
  4. 4. 如果测试失败,自动分析失败原因并修复
  5. 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 对比
本站作品均采用知识共享署名-非商业性使用-相同方式共享 4.0进行许可,资源收集于网络仅供用于学习和交流,本站一切资源不代表本站立场,我们尊重软件和教程作者的版权,如有不妥请联系本站处理!

 沪ICP备2023009708号

© 2017-2026 夜雨聆风   | sitemap | 网站地图