14 小时烧光 200 美金:Codex 和 Claude 的 /goal 命令打开了"放手跑"模式

5 月初有个开发者发了个截图,看完我倒抽一口气:他用 Claude Code 的新命令 /goal 让 AI 自己跑一个看似简单的任务,回来一看,14 小时,账单 200 美金

任务最后没做完。

这件事的背景,是过去两周 AI 编程工具圈的一个安静拐点:

  • 4 月底 ,OpenAI 给 Codex CLI 加了 /goal 命令(v0.128.0)。
  • 5 月 11 日,Anthropic 在 Claude Code v2.1.139 上线了同名同形态的命令。
  • 5 月中 ,第三方甚至已经做出了 claude-goal 这种带持久化的开源加强版。

我把两边的官方文档、开发者测评、踩坑案例全部撸了一遍。看完一句话总结:

/goal 不是一个 slash 命令,是 AI 编程的操作范式从"对话式"切换到"代理式"的标志性事件。

但它打开的是潘多拉盒子。这篇我把"它到底是什么、怎么用、什么时候用、怎么不翻车"讲清楚,并给你一个可复用的3-Check 终点线框架

一、/goal 解决了什么------一个被忽视的瓶颈

过去你用 Claude Code 或 Codex CLI 是这样的:

erlang 复制代码
你:把 auth 模块迁移到新 API
AI:好,我看一下...(动了 5 个文件)✅完成第一轮
你:继续,跑一下测试
AI:测试失败 3 个 ✅完成第二轮
你:修一下
AI:✅完成第三轮
你:lint 也跑一下
...

每一轮你都得回来按一下"继续"。哪怕你把 auto-approve 打开了,AI 跑完一回合还是会主动停下来等你

为什么会停?因为模型自己不知道"我是不是干完了"。任务完成的判断权一直在你手里。

/goal 直接干掉这个瓶颈。它让你一次性把"终点线"写下来,然后 AI 自己跑,自己判断到没到终点。

写法长这样(两边语法几乎一样):

bash 复制代码
/goal all tests in test/auth pass and the lint step is clean

设完之后:

  • AI 立刻开干,不需要你再发一句"开始"
  • 每跑完一轮,一个独立的小模型 会读完整个对话记录,回答一个问题:"条件满足了吗?"
  • 没满足,AI 自己接着跑下一轮;满足了,循环关掉,告诉你"done"

这是从"对话式协作"到"代理式自治"的真正切换。操控权从"每一步"上交到"终点线定义"这一步上。

二、Codex 和 Claude 的 /goal 长啥样------对比与差异

这两个工具的 /goal 命令形态高度一致------其实是行业共识在落地。但内部设计有差异,影响你选哪个:

维度 Codex /goal Claude Code /goal
上线时间 v0.128.0(4 月底) v2.1.139(2026-05-11)
评估者模型 内置小型 validator Haiku(可配置 small fast model)
状态管理 持久化、可跨会话 pause/resume 单会话生效,可 --resume 续跑
控制命令 /goal pause/goal resume/goal clear /goal clear(别名:stop/off/reset/cancel)
评估者反馈 yes/no yes/no + 一句话理由,作为下一轮提示
与官方文档 文档不全,部分版本看不到 官方文档完整,含写法指南
多目标 单线程一个 goal 单会话一个 goal

两个关键区别值得记住:

  1. Claude 的 evaluator 会"递理由"。它不只告诉 AI "没完成",还会附一句"还有 3 个测试失败",下一轮 AI 就拿这句话当指引。这让循环收敛更快。

  2. Codex 的 goal 是持久的状态 。它把目标存进 thread-level state,崩了、重启了、跨天了,依然存在。Claude 的 goal 在会话内有效,要靠 --resume 才能续。

实战上:

  • 想搞多天迁移、跨环境部署这种长周期工程 → Codex
  • 想搞几小时内能完成的代码任务,并且看重代码质量 → Claude Code

三、工作原理------为什么是"两个模型互相检查"

这是 /goal 设计上最巧妙的地方。

很多人第一反应是:"AI 自己判断有没有完成?那它肯定会觉得自己完成了啊。"

确实。大模型的"自我评估"是出名的不靠谱------它会觉得测试通过了(其实没跑)、觉得代码改完了(其实漏了几个文件)、觉得目标达成了(其实只做完一半)。

所以 /goal 用了一个关键的分权设计

复制代码
干活的模型(Opus/GPT-5 级别) ←独立→ 判终点的模型(Haiku/小模型)

干活的负责执行。判终点的只读对话记录,不能调用工具,只回答一个问题:条件满足了吗?

这种主审分离避免了一个模型既当裁判又当运动员。

但这设计也带来了一个关键限制

评估者只能看到对话里出现的东西 。如果 Claude 说"我觉得测试都过了",但实际没跑 npm test,评估者无法判断。

所以你的条件必须可以被 AI 的输出"证明"。"测试通过"行,因为 AI 会跑测试、把结果打印出来;"代码写得优雅"不行,因为这事 AI 嘴里说一句"优雅",评估者只能信。

四、3-Check 终点线框架------核心可复用工具

写好 /goal 条件这件事,决定了你是 20 分钟干完一件事,还是 14 小时烧 200 美金。

下面这个框架是我把 Anthropic 官方文档 + 多个开发者实战总结归一化出来的。每条 /goal 命令在执行前,过一遍这 3 关 + 1 个保险

Check 1:可观测的终点(Measurable End State)

终点线必须是外部可观测的,不能是"感觉良好"。

  • ❌ 「代码变好了」「应用准备上线了」
  • ✅ 「test/auth 目录下所有测试通过」
  • ✅ 「CHANGELOG.md 里每条本周合并的 PR 都有一行记录」
  • ✅ 「src/ 下每个文件少于 300 行」

判断标准:如果一个陌生人接手你的电脑,他能用一个命令检查"完成了没"吗? 能就过关。

Check 2:明示的验证方式(Stated Check)

不能假定 AI 知道怎么验证,要把用什么命令、看什么输出写出来。

  • ✅ 「npm test 退出码为 0」
  • ✅ 「tsc --noEmit 无报错」
  • ✅ 「git status 干净」

这一关的本质:让评估者只需要"读",不需要"猜" 。AI 跑了 npm test 把结果贴进对话,评估者一眼就能判。

Check 3:约束护栏(Constraints)

明确写出不许改什么、不许动什么/goal 跑起来后没有人盯着,你必须提前画好雷池。

  • ✅ 「除了 payment/ 下的文件,不许改其它任何文件」
  • ✅ 「不许新增 npm 依赖」
  • ✅ 「不许修改测试用例本身」

不写这条的代价:AI 可能会通过"删掉失败的测试"来让"测试通过"成立。是的,真的有人遇到过。

+ 1 保险:硬性截止条款(Hard Cap)

这一条不写,等于给信用卡画了张空白支票。

在条件最后加一句兜底,让评估者看到时间/次数到了直接收工:

arduino 复制代码
... or stop after 30 turns
... or stop after 60 minutes  
... or stop after 100K tokens consumed

这个简单的兜底,能把 14 小时 200 美金的事故压到 30 分钟 5 美金。

一个完整的好条件长什么样

错误示范(已知踩坑):

bash 复制代码
/goal make the auth tests pass

正确示范:

bash 复制代码
/goal all tests in test/auth pass (npm test exits 0), 
no other test files are modified, 
git diff contains only files under src/auth/, 
or stop after 25 turns

照着这个套路写,你的 /goal 跑起来基本不会失控。

五、适合场景 vs 不适合场景

整理两边官方文档和上百个实战案例,结论清晰:

✅ 高成功率场景(建议放心用)

  1. 测试驱动的修复/迁移 :终点是 pytest/npm test 通过
  2. 代码尺寸约束的拆分:终点是每文件 < N 行
  3. 批量处理 Issue 队列:终点是 backlog 清空
  4. 文档/配置生成:终点是文件存在且 lint 通过
  5. API 迁移:终点是 build 通过且 grep 不到旧调用

⚠️ 高风险场景(别用 /goal,用普通对话)

  1. UI 打磨、视觉设计:评估者读不出"好不好看"
  2. 业务判断:要不要砍这个功能,AI 自己定不了
  3. 数据迁移、删除操作:跑岔了不可逆
  4. 跨多个不相关系统:评估者撑不住复杂度
  5. 没有清晰"完成"定义的探索性工作:会陷入死循环

六、为什么这件事是 AI 编程的真正分水岭

回到那个 200 美金的故事。

如果这只是一个 slash 命令、一个工具更新,开发者社区不会这么炸。它真正撬动的,是AI 编程的操作单位变了

  • 2022-2024:操作单位是「一个 prompt」------你问一句,它答一句
  • 2024-2026 早期:操作单位是「一个 turn」------你给任务,它做一回合
  • 2026 年 5 月起:操作单位是「一个 goal」------你画条线,它自己跑到达成

每一次升级,你需要管的颗粒度变粗了,但每个颗粒度内 AI 的自治权变大了

这就是为什么 OpenAI 和 Anthropic 在 14 天内做出几乎一样的命令------他们不是在抄对方,他们是在响应同一个产业拐点 :当模型能力强到一定程度,人在循环里的位置必须往上提

人的角色从"每一步审查者"变成"终点线定义者"。这不只是效率问题------是写软件这件事本身的范式变化

老经验里有句话叫"问得好比答得好重要"。在 /goal 时代,写终点线比写需求重要

七、上手行动清单(今天就能做)

不论你用 Codex 还是 Claude Code:

  1. 先升级到 Codex 0.128.0+ 或 Claude Code 2.1.139+
  2. 挑一个低风险任务试水:比如"补全测试覆盖率"或"把 console.log 全部改成 logger.info"
  3. 用 3-Check 框架写条件:可观测 + 验证方式 + 约束护栏
  4. 必加兜底or stop after 20 turns ------记住,第一次跑用 20 turn 帽,不要直接给 200
  5. 盯一下前 10 分钟 :看 evaluator 给的理由是不是合理,方向跑偏了立刻 /goal clear
  6. 跑成功了再放心走开:连续 3 次 30 分钟内成功完成后,再尝试通宵跑
  7. 不要用免费/低额度账号跑长任务:账号没硬上限,你也没法睡安稳

最后

我在文章开头说 200 美金的故事,不是为了吓你不要用 /goal

恰恰相反:它是 2026 年最值得你立刻投入学习的一个工具。但有一个判断框架的人和没有的人,在使用同一个工具时,结果是 5 美金和 200 美金的差别。

/goal 不会取代你写代码,但它会取代你"盯着 AI 写代码"这件事。剩下的时间你拿去做什么,决定了你能不能在这一轮 AI 工具升级里真的拉开差距。

终点线,是你今天最应该练的一项写作技能。


参考资料:

相关推荐
TingTing1 小时前
Webpack5 前端工程化建设
前端
A不落雨滴AI1 小时前
DKERP客户端重构纪实:4天自研控件库的“短命”教训,以及为什么我坚定选择原生Qt
前端
我叫黑大帅1 小时前
通过白名单解决 pnpm i 报错 Ignored build scripts
前端·javascript·面试
风止何安啊1 小时前
用 APP 背单词太无聊?我用 Trae Solo 移动端写个小游戏来准备 6级
前端·人工智能·trae
Summer不秃1 小时前
深入理解 Token 无感刷新:从并发雪崩到单例锁 + 请求队列的完整实现
前端·http
yingyima1 小时前
Git 实战:你必须掌握的 7 个常用命令
前端
次次皮2 小时前
代理启动前端dist包
java·前端·vue
星恒随风3 小时前
四天学完前端基础三件套(JavaScript篇)
开发语言·前端·javascript·笔记
guslegend3 小时前
第9节:前端工程与一键启动
前端·大模型·状态模式·ai编程