Lost Temple

来源:Anthropic Blog — Introducing dynamic workflows in Claude Code 分析完成时间:2026-05-29 09:00 CST

这篇文章回答的问题: Claude Code 的 Dynamic Workflows 是什么,运行时模型是怎样的,代码长什么样,手搓版怎么做,什么时候该用什么不该用?

这篇文章应该回答但没回答的问题: 编排脚本的安全性如何保证?对抗性审查用同一个 LLM 是否存在系统性盲点?脚本被注入恶意逻辑的防御机制在哪?


第一层:它到底是什么,在哪跑

2026 年 5 月 28 日,Anthropic 为 Claude Code 引入 Dynamic Workflows。核心变化:Claude 改为动态编写一段 JavaScript 编排脚本,交给内置运行时执行。

这段脚本是普通的 JS 代码,有变量、循环、条件分支。编排逻辑从此脱离 LLM 的上下文窗口,存储在脚本变量中。LLM 只在脚本调用 agent() 时被唤起。

有些问题对单个 agent 的一次执行来说太大了——跨越整个服务的 bug 搜索、涉及数百个文件的迁移、一个你想从每个角度压力测试的计划。

Some problems are too big for one pass by a single agent, especially in complex, legacy codebases. Dynamic workflows can handle all of these end-to-end.

Subagent vs Skills vs Dynamic Workflow

维度Subagent(旧)SkillsDynamic Workflow(新)
谁在协调Claude 逐轮对话决定Claude 遵循指令JS 编排脚本,运行时执行
中间状态存在 Claude 上下文窗口同 subagent存在脚本变量/文件
规模每轮几个同 subagent每次运行数十到数百个 agent
上限受上下文窗口限制同 subagent16 并发,1,000 agent/工作流
中断恢复重置当前轮次重新开始同一会话内可恢复
可复用保存为 skill 文件保存为 .claude/workflows/ 命令
权限继承会话模式同会话子 agent 始终 acceptEdits

第二层:运行时模型

JS 运行时是指挥官,LLM 是士兵。脚本定义"谁做什么、什么时候做"。

指挥层(JS 运行时):脚本拥有完整的 JS 执行环境。编排逻辑是确定性的代码。关键约束:脚本自身没有文件系统或 shell 访问权限,所有 I/O 由 agent 执行。

执行层(LLM Agent):每个 agent() 调用创建一个独立的 Claude 实例,继承 acceptEdits 模式,拥有自己的上下文窗口。Agent 之间互不感知。

阶段屏障语义——最容易被误解的区分

第三层:核心架构拆解

六个阶段

  1. Plan(动态规划):Claude 分析任务结构,生成 JS 脚本
  2. Fan-out(并行展开):脚本执行,任务分发给并行 agent(最多 16 并发)
  3. Check(独立验证):结果被独立检查,对抗性 agent 试图推翻
  4. Fold-in(合并收敛):验证后结果合并为单一回答
  5. Checkpoint(断点续跑):进度实时保存,同一会话内可恢复
  6. Save(可复用):保存到 .claude/workflows/ 变为 /command

TUI 进度面板

Ultracode 模式

设置开关,非模型/effort level。发送 xhigh 推理强度 + 自动判断是否启动 workflow。仅限 Opus 4.7/4.8,仅当次会话有效。

第四层:代码级细节

关键事实:官方文档未公开脚本级 APIagent()pipeline()parallel()phase()log()workflow()args()内部运行时原语——Claude 在生成 workflow 脚本时使用它们,但它们不是开发者可调用的公共 API。文档原话:“A dynamic workflow is a JavaScript script that orchestrates subagents at scale.” Claude 写脚本,用户不手写。

市面上有些文章将这些内部函数当作公共 API 详细解读参数和返回值——这是不准确的。以下基于官方文档描述的行为推断:

与 Anthropic “Building Effective Agents” 框架的五种模式(Prompt Chaining、Routing、Parallelization、Orchestrator-Worker、Evaluator-Optimizer)全部在 workflow 中实现。内置的 /deep-research 就是完整示例:“在多个角度上对问题进行 Web 搜索,获取并交叉检查找到的来源,对每个主张进行投票,并返回一份经过筛选的报告”。

第五层:DIY 对比

手动用 shell + claude -p --output-format json --allowedTools "Read,Glob,Grep" 可以实现简单并行。但缺少:对抗性验证、断点续跑、TUI 进度面板、可复用命令、自动任务分解。

第六层:选型决策框架

适合:全代码库扫描、大规模迁移、高置信度任务、可复用团队流程

不适合:单文件编辑、需频繁人工确认、token 成本敏感、需跨会话持久化

旗舰案例:Bun Zig→Rust 移植

竞品格局

与 OpenAI Codex Goals(持久自主循环)、GitHub Copilot Agent Mode、Cursor、Google Jules、Windsurf Cascade、n8n/Dify/Coze 对比。Codex Goals 是"一个很能干的人不间断地做一个大项目",Dynamic Workflows 是"一个项目经理指挥 100 个专家并行工作"。

Anthropic 内部实战数据

Claude Code 团队成员 Boris 在 HN 分享:用 workflow 自主实施 20+ 项优化,token 使用量减少约 15%。tree-sitter 移植使 CPU/内存提升 2-10 倍,bash 静态分析迁移使误报减少 45%,Agent SDK 启动时间减少 61%,69 个代码简化 PR 删除 10,000+ 行代码。

诚实限制


苏格拉底对话

老师:Dynamic Workflows 的核心创新是什么?

学生:并行 agent 数量从几个变成几百个。

老师:数量只是表象。真正的创新是编排逻辑从 Claude 的上下文窗口移到了脚本里。AI 的协调能力不再受限于它自己的"思考空间”。

学生:那对抗性审查呢?

老师:最被低估的部分。对抗性审查是"让一个 agent 专门找另一个 agent 的茬"。但对抗的有效性取决于对抗者的能力——如果对抗者自己也是 Claude,可能存在系统性盲点。

学生:Codex Goals 和 Workflow 哪个更好?

老师:锤子和螺丝刀。Codex Goals 是深度——一个 agent 不间断迭代。Workflow 是广度——100 个 agent 并行扫描。

学生:Bun 案例的"很可能被丢掉"说明什么?

老师能力 ≠ 判断力。Dynamic Workflows 给了你 750K 行 Rust,但它没有告诉你"该不该做这个移植"。


个性化洞察

  1. Claude Code 重度用户:从 dead code 扫描开始体验,感受 token 消耗后再扩大规模
  2. QA 背景:对抗性审查 = 自动化测试新维度,但不能替代安全专家
  3. AI 产品开发:确定性编排 + 模糊执行的混合模式是 Anthropic 的 multi-agent 答案
  4. 内容选题:写"Codex Goals vs Dynamic Workflows 实战对比"——市面无深度对比
  5. 美股关注:$1B ARR + 收购 Bun,Anthropic 从"编码助手"升级为"工程编排平台"
  6. 全栈开发:积累 3-5 个可复用 workflow 形成"AI 工程工具箱"