跳转到主内容
博客
同一个 /goal功能,两种Agent性格

同一个 /goal功能,两种Agent性格

Codex 上了 /goal 我用了几周。Claude Code 最近几天也跟着上,我把手头几个 Codex 没搞定的任务挪过去试,结果反差太大,值得记下来。

关嘉伟关嘉伟8 分钟阅读
分享:

Codex 的 /goal 我用了几周,把 token 消耗推上了又一个台阶。Claude Code 5 月 12 日的 2.1.139 版本里也把这个功能加进来,而且一上就是正式版,不是实验态了。我手里正好有几个 Codex 一直没搞定的任务,顺手挪过去试了一下。

结果反差挺大。同一个范式,几乎一样的循环,两个模型跑出来不像同一回事。

写下来一是给自己复盘,二是觉得值得说说。/goal 这套东西,与其说是一个功能,不如说是一种新的工作形态。形态长一样,模型的"性格"不一样,实操上就完全是两件东西。

一、Codex 这边:闷头干、不问、不放弃

先把 Codex 这边的体验记下来,作为对照基准。

Codex CLI 的 /goal 是 0.128.0 开始有的实验功能,我从那时候就在用,前面也专门写过一篇。它最大的变化其实在心态上,我真的开始相信"放手让 agent 跑"是成立的事情。

它不打扰你。Codex 跑 /goal 的时候几乎不调 subagent,基本 inline 自己干,除非我非常明确地让它 delegate。compact 做得也比我想象中好,压完回到上一轮,信息损失不大,继续往前推也不会突然变笨。最重要的是它认死理。几乎不会跟我说"这个 goal 取得不了",哪怕真撞墙了,它会换一个角度再试,再换一个再试,试到 token 预算耗光为止。这个我反复验证过,挂 3 个独立 /goal 跑一夜,早上看,基本都还在轨道上。

上下文窗口是个客观短板。Codex 在 GPT-5.5 下默认 400K,OpenAI 那边是平衡定价和吞吐做的取舍,API 是完整 1M。Claude Code 这边默认就是 1M。但即便 400K,Codex 在 /goal 里跑得很稳。

二、Claude Code 这边:起手很漂亮,然后呢

5 月 12 日 Anthropic 一口气把 /goal、Agent View、/bg/loop/batch 都上了。我第一反应是"终于"。Codex 这块跑了好几个版本,Claude Code 跟得有点慢。

我把那几个 Codex 没拱下来的任务挪过去,挂上 /goal

起手是真好看。Claude Code 一上来就调 subagent、列 plan、规划上下文,看着比 Codex 大开大合多了。我心里期望立刻就上去了,按这个起手势,应该会比 Codex 表现更强。

跑着跑着,事就来了。

最先让我皱眉的是,它会蹦出来让我做选择。这本来是 Claude Code 招人喜欢的一面:遇到判断它不闷头干,会停下来跟你对齐,问"下面 A、B、C 三个方向你倾向哪个",问题问得也挺到位。但在 /goal 里这就是个 bug 而不是 feature 了。/goal 的整个设计意图就是"你给目标,我自己跑,你别管",中间所有的判断模型自己应该 own。一蹦出来问问题,几个小时被解放出来的时间就又收回去了。你不在屏幕前,它就这么挂着等你回来。

更意外的是,它会主动跟我说"这个 goal 我达不到"。然后真的就把 goal fail 了。有时候才跑了几十分钟。理由通常是"这个任务工作量好像太大,这个 session 可能搞不定",或者"我觉得这里有一些根本性的阻碍"。我让它继续,它会再勉强往前走一段,然后再来一次。

第三件事是 compact 之后会变笨。1M 上下文听起来很大,但跑到后面会变笨这事,Anthropic 自己都承认过。更要命的是压缩这步:每次 compact 之后,Claude Code 经常显得"前面那一大段都忘了",原本的计划、原本踩过的坑、原本的 context,都要重新拼一遍。Codex 的 compact 没这么严重。

这三件凑一起,长程任务在 Claude Code 的 /goal 里就跑不稳了。

三、这不是我一个人的体感

我一开始以为是自己用法的问题。翻了一下才发现,Opus 4.7 的"懒"早就是公开认知了。

Opus 4.7 是 4 月 16 日发布的。发布 48 小时之内,Reddit 上一个标题叫"Opus 4.7 is not an upgrade but a serious regression"的帖子拿了 2300 多个 upvote。AMD 的 AI 总监公开吐槽现在 Claude Code 是 "dumber and lazier"。各种截图满天飞,有人贴出对话,Claude 自己回复说 "I was acting lazily"。

Anthropic 后来出了一份 postmortem,承认 4 月 16 日他们在系统提示词里加了一段"降低 verbosity"的指令,这条指令和其他几处变动一起,把 coding 质量拖了下来。4 月 20 日他们把这条指令撤回了。但我的体感是,撤回之后 Opus 4.7 的"懒"只是缓解了一点,没完全好。RL 那一层已经把这种倾向内化进去了,改一段系统提示是改不动的。

/goal 这种延长的连续作业里,"懒"会被进一步放大。一个"懒"的模型,在短任务里可能还糊弄得过去,放到长任务里它就会找各种看起来合理的理由把自己 fail 掉。

四、这几个月其实在做同一件事

/goal 这套范式不是凭空冒出来的,是几个月探索的收束。

春节前我自己就在折腾类似的事。当时在做 AIMA(我们的模型管理平台)的稳定性测试,核心想法是让 AI 模拟真实用户反复跑测试,以提升稳定性。最朴素的尝试就是用 terminal 自带的 task 机制,设 10 个 task,每个让它跑很久。

这条路很快就死了。每个 task 还是同一个 session 里的事,模型在长 session 里训得不好,几轮之内就开始失稳,prompt 怎么调都救不回来。

下一步我去找双层架构。当时 Kilo Code 在推一个叫 Orchestrator Mode 的功能,更早叫 Boomerang Tasks,是从 Roo Code 那继承来的。逻辑很对路:外层一个 orchestrator 管任务,每个子任务交给一个独立 subagent 在独立上下文里跑完,再回来汇报。

我拿当时性价比高的几个模型试了一轮。智谱的表现稍好,长任务能拱一会儿。Minimax 那边就比较搞笑,它在 orchestrator 层就开始自己写代码,根本不 delegate,双层架构对它直接失效。这事我后来想了挺久,不太像是 harness 适配的问题,更像是模型本身缺乏"我是 lead,我应该委派"这个 sense。

2 月,Claude Code 跟 Opus 4.6 一起出了 Agent Teams,实验功能,要在环境变量里加 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS 才能打开。一个 session 作为 team lead,安排其他 subagent 在新上下文窗口里完成任务,基本就是 Kilo 那套架构的官方版本。我当时试完真的有点震撼,长任务能跑两三个小时不崩。

但 compact 一次,team lead 那边就乱了。之前安排的 subagent 找不到了,会重新派一轮,任务列表错位,token 也烧得快。两层架构本身也会有信息衰减,上下文在两层之间反复传,每次都丢一点。

再往后是 Ralph,全名 Ralph Wiggum。澳洲一个开发者 Geoffrey Huntley 在 2025 年底搞的,逻辑简单到让人怀疑:一个 bash while-true 循环,反复喂同一个 prompt 文件给 agent,跑到目标达成为止。我当时想试它的 tmux 版本,踩了点坑没搞定,搁置了。

Ralph 传播极快。/goal 这条产品线最直接的灵感来源就是它。到今天,Anthropic 已经把 Ralph 收编为 Claude Code 的官方 plugin,放在仓库的 plugins/ralph-wiggum/ 下;Kilo Code 的 Orchestrator Mode 反过来被官方标记 deprecated,理由是"主 agent 现在可以直接 delegate subagent,不再需要专门的 orchestrator"。

terminal 手搓 task,到 Kilo Orchestrator,到 Claude Code Agent Teams,到 Ralph 走红,到 Codex 上 /goal,到 Claude Code 上 /goal、Ralph 被收编、Kilo Orchestrator 被废弃。几个月的演化线很清楚。

五、Codex 一头扎,Claude Code 总在抬头

回到模型本身。

跑过这两个之后我有个比较确定的判断:Codex 是"局部派",Claude Code 是"全局派"。

数学里有个概念叫局部最优。优化空间像个山谷,你从一个点出发,每一步往低处走,可能最终落在一个局部最低点,但翻过这个山头,另一边其实有个更深的谷。Codex 跑 /goal 的时候,我多次见它陷进这种局部最优里:一个方向反复打磨,做完这个那个再回来,转圈,它觉得自己在前进,实际原地踏步。它的"闷头干"在大部分时候是优点,在这种时候就反过来。

Claude Code 不一样。它会做大跨度的反思和验证,会主动问"我现在的方向对吗"。我多次看到它从一个看起来已经收敛的方向里跳出来,说"等等,这个问题的根源可能不在这,我得重新看一下",然后真的换路找到了一条更对的路径。

这个全局观是 Claude Code 的强项。1 到 2 小时的复杂任务,需要判断、反思、跨模块协同,我现在仍然觉得 Claude Code 比 Codex 强。

可是这种全局观换不来持久力。它在 /goal 里跑不长,给不出 24 小时无人值守的稳定产出。说个不太严谨的比方:Codex 是个能闷头干 12 小时的实习生,方向偶尔会偏;Claude Code 是个有判断力的高级工程师,但他每跑 40 分钟就要找你确认一次,或者半小时就觉得"这事不好搞我先撤"。哪个更适合 /goal,答案太明确了。

六、形态在统一,训练在分化

跑下来我对 coding agent 接下来几个月的走向多了一个判断:harness 在快速趋同,但模型的"性格"差异会越来越显眼。

Boris Cherny(Claude Code 创始人)早就在说未来 harness 可能只剩 100 行代码。这件事我现在更信了。/goal 这个范式一旦收敛,coding agent 的外层结构会越来越薄。一个循环、一组工具、一个目标,够了。

接下来真正决定差距的是模型在这个循环里的"性格"。它愿不愿意闷头干。它会不会动不动跑出来跟人对齐。它的 compact 之后状态保不保得住。它陷在错的方向里,有没有自己跳出来的能力。它撞到墙了,是再敲一遍,还是直接说"这个 goal 我搞不定"然后撤。

这些都不是 prompt 能调出来的,是训练阶段就定下来的。

OpenAI 和 Anthropic 在长程任务里训练出的"模型性格"已经显著不一样。Codex 像是被反复训练成"不许半途而废,撞墙就再来"。Claude Code 像是被训练成"勤于汇报、勤于对齐、勤于反思",这套在交互式场景里招人喜欢,放到 /goal 里就成了致命伤。

短期内这种分化还很难互补。Anthropic 把 verbosity 那段系统提示撤回之后,Opus 4.7 的"懒"也只是缓解,没完全恢复。RL 把它内化进去了,改外层提示是改不掉的。

七、选 agent 越来越像选合作伙伴

到这一步,我用 /goal 的方式也变了。

我现在不太会先想"哪个工具更强",而是先想:这任务的性格适配哪个模型。

要持续 6 小时以上的迭代,目标明确,试错成本低,我直接挂 Codex 的 /goal。要做架构判断、跨模块决策、可能要中途换方向,我用 Claude Code 的 /goal,但每三十分钟到一小时会回来看一眼,而且基本上得做好它中间会蹦出来问问题的心理准备。真要无人值守跑 24 小时,只能是 Codex,任务方向还得预先收敛得清楚。要是只是个单点突破的难题、需要全局视野去看的事,我反而不开 /goal,直接用 Claude Code 普通模式,半小时能搞定。

几个月前选 agent 是选界面、选社区、选定价。现在选的更多是一个"模型性格"。

下一代模型不管是 Anthropic 还是 OpenAI,一定会朝着"修补对方的短板"去训。Codex 会想办法补全局观,Claude Code 会想办法补持久力。短期内这种性格分化还是真实存在的,而且会显著影响你能从 /goal 里榨出多少价值。

/goal 这套东西最大的作用,是把模型的真实"性格"放大成了 24 小时连续产出。性格更稳的那个,在这一仗里就领先。

现在是 Codex 领先半步。但只领先半步。


参考资料

推荐阅读

订阅博客更新

新文章发布时第一时间通知你,不会发送垃圾邮件。

仅用于博客更新通知,随时可以取消订阅。

评论

或匿名评论
0/2000