July 2026
模型厂商亲自下场做 Agent 编排
从 Claude Code ultracode 和 Codex Ultra 的实际体验说起
最近我开始用 Codex GPT-5.6-sol 的 Ultra 模式,最明显的感受就是:它特别喜欢起 subagent,而且非常主动。
任务稍微复杂一点,它就自己拆成好几个方向,叫一批 subagent 分头去查、去改、去验证,然后 root agent 再回来汇总。复杂一点的需求,轻轻松松跑几个小时,甚至跑一晚上。
这个体验和我之前用 Claude Code ultracode 很像。Claude 也是疯狂起 subagent,而且不是我手动要求它这么做,是它自己觉得该拆就拆。
这件事让我觉得有点意思。因为 Multi-Agent 并不是什么新东西,市面上早就有大量带 Planner、Researcher、Coder、Reviewer 的框架。但我以前看这些东西,总觉得花架子成分更多:架构图画得很漂亮,角色也分得很细,实际效果往往还不如直接换一个更聪明的模型,让它用单 Agent 从头做到尾。
这一次的体验明显不一样。Claude 和 Codex 的 subagent 不只是制造“很多 Agent 正在工作”的热闹,它们确实开始改善复杂任务的覆盖范围和最后的结果。
我之前更相信 Single-Agent
几个月前,我专门研究过 Single-Agent 和 Multi-Agent 的取舍。当时看了 Cognition 的 Don't Build Multi-Agents,也看了 Berkeley 那篇分析 Multi-Agent 失败模式的 MAST 论文。那时候我比较认同的结论是:能用一个 ReAct Agent 从头做到底,就不要拆成多个。
原因也很直接。单 Agent 看得到完整上下文,知道自己前面做了什么、为什么这么做。拆成几个 Agent 之后,中间就要传话。很多时候传过去的只是一段任务描述或者最终总结,真正重要的判断过程反而丢了。
Cognition 当时举过一个很典型的例子:两个 subagent 分别去做同一个游戏的背景和角色。两边单独看都完成了任务,但它们对整体风格的理解不一样,最后根本拼不到一起。很多实际任务也一样,Agent 的行动里包含了大量没有被明确写出来的判断。
而且模型本来就没有聪明到哪里去,再让一个不太聪明的模型去管理一群同样不太聪明的模型,效果通常不会更好。MAST 总结出来的那些问题——上下文丢失、Agent 之间理解不一致、不会验证、不知道什么时候结束——也都是真问题。
所以当时 Single-Agent 更好,并不只是因为架构简单。它少了一层模型之间的解释,也就少了一层信息损失和错误累积。
为什么现在开始有效
但现在好像过了一个坎。
首先是模型本身已经足够强了。它不只是能干活,也开始会判断什么任务适合拆、怎么拆、结果靠不靠谱。模型先成了一个不错的执行者,现在又开始能当 manager。
其次是我们给 Agent 的任务越来越大。以前可能只是改一个函数,现在会直接让它调研整个仓库、做方案、实现、补测试,再找几个角度 review。所有事情都塞给一个 Agent 串行做,上下文和时间自然会不够用。
还有一个很重要的变化,就是模型厂商开始亲自做协调层。以前的 Multi-Agent 大多是第三方框架在模型外面套一层角色和消息传递;现在 Claude 和 Codex 会把模型、工具、上下文、并发和 runtime 一起做。
我一开始想把这个变化描述成“模型能力已经快到上限了”,后来觉得不太准确。模型本身还在继续变强。真正开始碰到上限的,是单 Agent 的纵向扩展:同一个上下文不可能无限装下调研、决策、实现和验证,单线程也没法获得并行能力。
以前是协调几个 Agent 的成本,比它们并行干活的收益还大。现在模型更强了,任务也更大了,官方又把协调成本压了下来,这个平衡点可能正在变化。
Claude 和 Codex 做了什么
| 维度 | Claude Code Fable 5 ultracode | Codex GPT-5.6-sol Ultra |
|---|---|---|
| 核心机制 | Dynamic Workflow,模型生成 plan-as-code | 原生 agent loop,模型主动调用协作工具 |
| 编排形式 | 显式 JavaScript workflow | 不生成脚本,边做边决定如何委派 |
| 决策时机 | 先生成 workflow,再交给 runtime 执行 | 根据执行结果持续拆分、跟进和汇总 |
| reasoning | xhigh |
API 实际发送 max |
| Ultra 的作用 | 开启最高推理强度,并主动使用 Workflow tool | max reasoning 加一段主动委派的 developer prompt |
| subagent 调用 | agent()、parallel()、pipeline() |
spawn_agent、follow-up、message、wait、interrupt |
| 中间状态 | workflow 变量、阶段和运行记录 | root agent 上下文与协作状态 |
| 本地 runtime | 校验并执行 workflow,管理并发和恢复 | 管理 Agent 生命周期、消息、并发和上下文继承 |
| 实现透明度 | Claude Code 闭源,只能从二进制和运行产物观察 | Codex 开源,可以直接看到 Ultra 的模式分支 |
| 共同点 | 强主 Agent 动态创建临时 subagent,不是预设角色互相群聊 | 强主 Agent 动态创建临时 subagent,不是预设角色互相群聊 |
为什么可能还得是模型厂商
所以我现在有个比较主观的看法:Multi-Agent 这件事,还得是模型厂商自己下场做。
第三方框架当然也能做调度、做角色、做消息传递,但它控制不了模型到底会不会拆任务,也控制不了模型能不能看懂另一个 Agent 的结果。很多框架可以把系统图画得非常漂亮,却没办法让模型真的学会协作。
模型厂商能做的事情更多一点。它可以一起调整模型的行为、reasoning effort、工具怎么描述、上下文怎么继承、subagent 怎么通信、失败之后怎么恢复。更重要的是,它可以在自己的评测里知道这些改动到底有没有提高结果,然后同时改模型和 runtime。
至少从我目前的体验看,这种方式确实比以前市面上的 Multi-Agent 框架好很多。以前更像是框架作者提前安排好几个角色,让模型按照组织图工作;现在更像是一个很强的主 Agent,手里多了一组随时可以调用的 worker。任务怎么拆,不是框架作者提前决定,而是模型看着当前情况自己决定。
当然,这也不代表 Agent 越多越好。小任务拆开肯定是浪费;几个 Agent 同时改一块代码,也还是很容易打架。以前说的上下文丢失、重复劳动和验证困难都没有消失。
只是这些问题现在不一定会把 Multi-Agent 的收益全部吃掉了。
还有几个问题
这还只是我最近使用和看实现之后形成的一个判断,有不少地方我也不确定:
- 这次体验变好,到底主要是因为模型变强,还是因为官方 runtime 做得好?
- Multi-Agent 真正的收益主要是并行,还是把不同工作隔离到不同上下文里?
- 这件事是不是必须由模型厂商完成,第三方框架还有多少空间?
- subagent 越起越多之后,质量提升能不能覆盖 token 和时间成本?
- Claude 的 workflow-as-code 和 Codex 的边做边调度,最后哪种会更可靠?
但至少从最近的产品变化来看,Multi-Agent 正在从框架作者设计的组织图,变成顶级模型可以主动调用的一种原生能力。
不是一群小 Agent 开会,而是一个足够强的 Agent 在调度额外算力。