当代码库的规模超过百万行,当一次重构涉及 96 万行代码,传统的一对一 "pair programming" 模式就崩了。不是模型不够聪明,是上下文装不下。
Anthropic 2026-05-28 发布的 Dynamic Workflows,和之前 Composio 的 Agent Orchestrator,代表了两条解决大任务的路径:一条是"内嵌到 Claude Code 的自动编排",一条是"独立 CLI 的显式管理"。两条路都在回答同一个问题:怎么让一个 Agent 能同时控制几十个 Agent 而不失控?
但答案完全不同。
一、为什么传统子 Agent 扛不住规模
Claude Code 之前就有子 Agent(subagent)功能。问题是:它是回合制的——Claude 想一步,派一个 Agent 去干,等结果回来,再想下一步,再派一个。所有中间结果都塞回 Claude 的上下文窗口。
这意味着三件事:
-
上下文爆炸。派 10 个 Agent 各改 100 行代码,结果回来 1000 行,Claude 的上下文窗口瞬间填满。后面的 Agent 还没派,前面已经没地方了。
-
串行瓶颈。一个 Agent 干完才能派下一个,10 个 Agent 串行执行,10 分钟的任务变成 100 分钟。
-
计划无法规模化。Claude 的"脑子里"只能装两三步计划。一旦任务变成"分析 100 个文件、改 50 个模块、跑 20 个测试套件",Claude 根本记不住整个计划。
Dynamic Workflows 的解决思路:让计划从 Claude 的脑子里移出来,变成一段可执行的代码。
二、Dynamic Workflows:Claude 写 JS 脚本当导演
核心机制:三步闭环
规划(Plan) → 运行(Run) → 校验(Verify)
用户输入自然语言任务("把 src/ 下所有缺少认证的 API 端点找出来"),Claude Code 不写代码,而是先写一个 JavaScript 编排脚本:
// Claude 自动生成的编排脚本
const endpoints = await findFiles('src/routes/**');
const results = await parallelMap(endpoints, async (ep) => {
const agent = spawnAgent('security-auditor', { file: ep });
return await agent.run();
}, { concurrency: 16 }); // 最多 16 个并行
const report = mergeResults(results);
await verifyWithTests(report); // 校验
return report;
这个脚本不是给用户看的,是给 Claude Code 的独立运行时执行的。脚本决定:
- 派多少 Agent
- 每个 Agent 干什么
- 哪些可以并行、哪些必须串行
- 中间结果存在脚本变量里,不塞进 Claude 的上下文
关键技术:Programmatic Tool Calling
传统方式是 Claude 用自然语言"命令"Agent,Agent 用自然语言回复。Dynamic Workflows 改为程序化调用——脚本直接调用工具,Agent 返回结构化数据,脚本处理数据后再调度下一个 Agent。
这意味着:
- 15 万 token → 2 千 token。一个工作流如果让 Claude 逐回合处理,上下文会膨胀到 15 万 token。脚本模式下,Claude 只接收最终聚合结果,可能只需要 2 千 token。
- 中间结果不进主上下文。脚本变量存在沙箱里,Claude 的上下文窗口只保留"当前进展摘要",而不是每个 Agent 的详细输出。
- 可恢复性。如果工作流中断,已完成的 Agent 结果缓存,重新运行只执行未完成的。传统模式下,中断意味着从头来。
规模:1000 个 Agent,16 个并行
| 参数 | 数值 | 限制原因 |
|---|---|---|
| 单次工作流最大 Agent 数 | 1000 | 防止失控循环 |
| 并行并发数 | 16 | 保护本地机器 CPU |
| 恢复能力 | 同会话内 | 退出后需重新启动 |
1000 个 Agent 不是噱头。Bun 的 Zig 到 Rust 重写就是实例:96 万行代码,分解成数百个模块,每个模块一个 Agent 负责翻译,11 天完成,99.8% 测试通过。
触发方式
- 显式触发:prompt 里带 "workflow" 关键词(如 "Run a workflow to audit...")
- 自动触发:
/effort ultracode模式,Claude 自己判断任务是否需要 workflow - 内置命令:
/deep-research已预装,多源搜索→交叉验证→投票→去伪→生成引用报告
内置 /deep-research:不用写 prompt
/deep-research "Node.js v20 到 v22 权限模型改了什么?"
自动执行:多角度的 web 搜索 → 抓取来源 → 交叉对比 → 投票验证每个声明 → 过滤不成立的结论 → 返回带引用的报告。
三、Agent Orchestrator:外部 CLI 的显式管理
Composio 的 Agent Orchestrator(pkarnal)走的是另一条路:它不是 Claude Code 的内置功能,而是独立 CLI 工具,通过 Agent SDK 对接多个 Agent 平台。
架构:git worktree + 8 插槽 + 自愈合 CI
| 组件 | 设计 | 目的 |
|---|---|---|
| git worktree | 每个 Agent 在独立 worktree 里工作 | 隔离,不互相覆盖代码 |
| 8 插槽 | 最多 8 个 Agent 并行(可配置) | 控制并发,保护资源 |
| 自愈合 CI | Agent 失败自动重试,回退到人工 | 健壮性 |
| 人工回路 | 人在关键节点做判断 | 质量控制 |
| 中间结果存储 | 显式文件系统存储 | 可追溯、可审计 |
工作流:状态机驱动
不是脚本驱动,而是状态机:
- 定义任务清单(YAML)
- 调度器按状态机推进
- 每个 Agent 完成 → 更新状态 → 调度下一个
- 失败 → 自动重试 / 回退人工
与 Claude Code 的关系
通过 Agent SDK 对接 Claude Code,但 Claude Code 只是"其中一个 Agent 后端"。还可以对接 OpenClaw、Codex、其他平台。
四、两条路线的对比:内置 vs 独立
| 维度 | Claude Dynamic Workflows | Agent Orchestrator |
|---|---|---|
| 架构层级 | Claude Code 内置功能 | 独立 CLI + Agent SDK |
| 编排方式 | Claude 写 JS 脚本(自动) | 人写 YAML 状态机(显式) |
| 规模 | 单次 1000 Agent,16 并发 | 默认 8 并发,可扩展 |
| 上下文管理 | 中间结果在脚本变量,不进主上下文 | 中间结果在文件系统,显式存储 |
| 校验机制 | 测试套件 + 对抗式收敛 | 自愈合 CI + 人工回路 |
| 可恢复性 | 同会话内恢复(缓存结果) | 任意时刻恢复(git + 状态文件) |
| 学习成本 | 低(说 "workflow" 就行) | 中(需要理解状态机、worktree) |
| 定制化 | 中(脚本可修改,但需理解) | 高(完全开源,可改任意部分) |
| 跨平台 | 绑定 Claude Code | 可对接 Claude/Codex/OpenClaw |
| 品牌/IP | Anthropic 官方 | 社区开源(Composio) |
| 适用场景 | "Claude 用户想做大规模任务" | "团队需要标准化多 Agent 管理" |
核心差异:谁掌握编排权
Dynamic Workflows:Claude 自己写脚本,自己当导演。用户只给一句话,剩下的自动化。好处是零门槛;风险是黑盒——你不知道脚本里写了什么,除非你看源码。
Agent Orchestrator:人写状态机定义,系统执行。用户需要提前规划任务拆分、定义依赖关系、配置回退策略。好处是可控、可审计;成本是需要预先设计。
简单说:Dynamic Workflows 是"自动驾驶",Agent Orchestrator 是"高级辅助驾驶 + 手动模式"。
五、旗舰案例:Bun 的 96 万行 Zig → Rust
这是 Dynamic Workflows 的 showcase,也是整个 AI 编程领域最大的 demo。
数字
- 96 万行 Zig → 75 万行 Rust
- 99.8% 测试通过率(Linux x64)
- 11 天完成
- 1.3 万+ unsafe 块(Rust 里用 unsafe 的比例很高)
- 二进制体积减小 3-8 MB
- 修复了若干内存泄漏
工作方式
不是"Claude 一行一行重写",而是:
- Dynamic Workflow 把 96 万行代码按模块拆分(比如 HTTP 模块、文件系统模块、加密模块...)
- 每个模块分配一个子 Agent,负责 Zig → Rust 的翻译
- 翻译完后,另一个 Agent 负责跑测试验证
- 失败的模块回退修复,成功的模块合并
- 循环直到 99.8% 测试通过
但需要注意的边界
1. 利益相关。Bun 已被 Anthropic 收购(2025 年底)。Jarred Sumner 说"AI 已经写了几个月的代码,我们很久没自己打字了"。但这也意味着:这些数字来自被收购的公司,没有第三方基准。
2. unsafe 块的问题。1.3 万+ unsafe 块意味着 Rust 的内存安全优势被大幅削弱。如果 AI 在 unsafe 块里写错了,编译器帮不了你。
3. 不是纯 AI 完成。Sumner 说"这是 essentially the same codebase ported to Rust"——架构没变,数据结构没变,只是语言翻译。这种"vibe coding"(氛围编程)能工作,是因为 Bun 的架构已经成熟,AI 做的是翻译不是设计。
4. 代码审查不可能。100 万行代码的 PR,人类无法 review。GitHub 甚至自动标记了移除 60 万行 Zig 代码的 PR 为 "AI slop" 并关闭。
5. 生产未验证。目前 Rust 版 Bun 只在实验分支,还没替代主分支。Zig 版 Bun v1.3.14 是最后一个 Zig 版本。
六、TokenMaxxing:一个争议
Dynamic Workflows 的发布引发了一个争议:token maxxing——用尽可能多的 Agent 烧尽可能多的 token,来证明"我能搞定大任务"。
批评者的观点:
- "1000 个 Agent 并行"更像是 marketing 数字,不是实际工程需要
- Bun 的 rewrite 是特定场景(语言翻译,架构不变),不能推广到一般软件开发
- 没有第三方基准,所有数据都来自 Anthropic 收购的 Bun
- 1.3 万 unsafe 块说明 AI 在写系统级代码时还不够安全
支持者的观点:
- 即使数字有水分,"AI 能处理百万行代码库"这个方向是明确的
- Dynamic Workflows 的上下文节省(15 万 → 2 千 token)是真实的技术突破
- /deep-research 的交叉验证机制是"对抗式 AI"的早期形态
- 这是从"对话式 AI"到"工程化 AI"的进化
我的判断:数字需要打折,但方向是对的。 1000 个 Agent 不是常态需求,但"让 AI 能处理大型代码库"是刚需。Dynamic Workflows 的编排机制(脚本化、中间结果隔离、可恢复)是有价值的技术创新,不应该因为 Bun 案例的利益相关而被否定。
七、怎么选:Dynamic Workflows vs Agent Orchestrator
用 Dynamic Workflows,如果你:
- 已经在用 Claude Code(Max/Team/Enterprise 用户)
- 任务是一次性的、不需要复用的(比如研究、审计、大规模重构)
- 不想学新工具,只想说 "workflow" 就让 AI 自己搞定
- 需要 /deep-research 这种内置的复杂工作流
用 Agent Orchestrator,如果你:
- 需要跨平台(Claude、Codex、OpenClaw 混用)
- 团队需要标准化、可审计的 Agent 管理流程
- 任务需要长期运行、可中断恢复(Claude 会话断了工作流就丢了)
- 需要人在关键节点做质量控制(比如代码审查、安全审计)
两者可以结合
实际上,两者不是替代关系。Dynamic Workflows 适合单次大任务的自动执行,Agent Orchestrator 适合团队级的 Agent 管理基础设施。可以:
- 用 Dynamic Workflows 做任务规划和初始执行
- 用 Agent Orchestrator 做后续的质量控制、审计、复用
八、一个更深层的问题:AI 编程的"规模拐点"
Bun 的 rewrite 案例暴露了一个深层问题:AI 编程的"规模拐点"到了。
以前 AI 辅助编程的上限是:帮你写函数、改 bug、解释代码。现在 AI 可以处理整个代码库。这意味着:
-
代码审查机制失效。100 万行代码的 PR,没有人能 review。传统的人类审查流程必须被替代——要么用 AI 审查 AI(对抗式验证),要么接受"不审查直接合并"的风险。
-
测试成为唯一信任基础。当代码审查不可能时,测试套件成为唯一的质量保证。99.8% 测试通过不是"很好",是"必须"。没有测试覆盖的代码,AI 改了也不敢合并。
-
架构设计比代码实现更重要。AI 能翻译代码,但设计架构仍然是人类的工作。Bun 的 rewrite 能成功,因为架构已经定好了;如果 AI 从零设计一个新运行时,结果可能完全不同。
-
"unsafe"的语义在变化。Rust 的 unsafe 块本来是"人类程序员知道自己在做什么,编译器别管"。现在 unsafe 块是"AI 生成的,人类也没看,编译器别管"。这个语义变化有安全后果。
九、一句话总结
Claude Code Dynamic Workflows 是 Anthropic 的"内置自动驾驶"——Claude 自己写 JS 编排脚本,调度最多 1000 个子 Agent、16 并发并行,中间结果隔离在脚本变量中,上下文从 15 万 token 压缩到 2 千。旗舰案例 Bun 用 11 天把 96 万行 Zig 重写成 75 万行 Rust,99.8% 测试通过。Agent Orchestrator 是社区开源的"高级辅助驾驶"——独立 CLI、git worktree 隔离、8 插槽并行、自愈合 CI、人在回路。前者零门槛、黑盒;后者高可控、需设计。两者不是竞争,是互补:Dynamic Workflows 做自动执行,Agent Orchestrator 做团队管理。但 Bun 案例的利益相关(Anthropic 已收购 Bun)和 1.3 万 unsafe 块提醒我们:AI 大规模编程的审查机制还没跟上,测试是唯一信任基础。
参考信息
- Anthropic 官方公告: https://www.anthropic.com/news/dynamic-workflows
- Claude Code v2.1.154+ 支持
- 使用条件: Max/Team/Enterprise 用户,Opus 4.8 + ultracode effort
- Bun Rust rewrite: https://github.com/oven-sh/bun (Rust 分支)
- Agent Orchestrator: https://github.com/Composio/agent-orchestrator (pkarnal)
- 发布时间: 2026-05-28
#DynamicWorkflows #ClaudeCode #Anthropic #AgentOrchestrator #Bun #Zig #Rust #AIProgramming #Subagent #TokenMaxxing
讨论回复
1 条回复推荐
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。