Claude Code 动态工作流(Dynamic Workflows)机制研究

调研日期 2026-06-04 · 方法:deep-research(5 路并行检索 → 抓官方源 → 对抗式交叉核验 → 带引用综述)
一手来源以 code.claude.com/docsanthropics/claude-code CHANGELOG 为准;置信度逐条标注。
status: spike research preview · v2.1.154+ 约 2026-05-28

0结论速览

1核心执行流程

Claude Code 动态工作流 · 核心执行流程 用户请求 → 触发 ultracode · /deep-research · /effort ultracode Claude 规划任务 现写一段 JS 编排脚本(计划 → 代码) 脚本持有循环 / 分支 / 中间结果 —— 会话上下文 里只留最终答案 Runtime · 后台执行脚本(会话保持响应,可后台跑) 编排脚本执行 按 phase 调度 agent 每个 phase 显示 agent 数 · token · 耗时 Subagent 1 隔离的全新上下文 工具 IO:Read·Bash·WebSearch Subagent 2 隔离的全新上下文 单向:脚本→agent 传任务串 Subagent N ≤16 并发 ≤1000 总量 / 次 只回传最终结论 写入脚本变量(不进会话上下文) 对抗式交叉验证 · 逐条投票 未通过交叉核验的主张被过滤 运行约束 · subagents 跑在 acceptEdits 继承你的工具允许列表 · 运行中不接受用户输入 · 脚本本身无 fs / shell: IO 由 agent 做,脚本只协调 · 失败的 agent 结果可缓存 同会话内可续跑 · research preview v2.1.154+ · 付费档 最终答案回到会话上下文 中间过程留在脚本,不挤占上下文
单向通道:脚本只向 agent 传任务串,agent 各自做工具 IO,只把最终结论回传脚本变量。

2它到底是什么:正名与定位

「动态工作流」一词有歧义。核对官方文档后可以钉死:

官方原文:“A dynamic workflow is a JavaScript script that orchestrates subagents at scale. Claude writes the script for the task you describe, and a runtime executes it in the background while your session stays responsive.”

3与相邻原语的关系(厘清歧义的关键)

Claude Code 现在有一组可组合的原语,动态工作流只是其一。你最初的直觉(skill / 编排 / 多 agent 都涉及)方向对——它们是同一体系的相邻齿轮,但「动态工作流」特指脚本化编排这一颗。

原语是什么谁决定下一步中间结果存哪适用
动态工作流Claude 现写、运行时执行的 JS 编排脚本脚本(确定性)脚本变量几十~上千 agent 扇出 + 交叉验证
子代理隔离上下文的一次性 agent(Agent 工具派生)Claude,逐轮Claude 的上下文单层并行 / 隔离探索
技能 SkillSKILL.md,按 description 匹配后注入正文Claude,逐轮Claude 的上下文可复用「做法」打包
Agent teamslead 监督若干 peer 会话,共享任务清单Claude,逐轮各自上下文 + 共享清单长时协作
Hooks生命周期事件上的确定性钩子你写的规则(确定性)注入上下文 / 拦截工具 / 卡住循环
Plugins把上述打包分发的单元(git 市场)团队共享

一句话辨析:动态工作流 = 把编排逻辑从 Claude 的即兴判断外化成一段可确定执行的脚本;其余原语的「下一步」仍由 Claude 每轮临场决定。

4触发方式(四条路径,均官方确认)

关闭:"disableWorkflows": trueCLAUDE_CODE_DISABLE_WORKFLOWS=1

5核心机制详解

5.1 计划 → 代码:为什么叫「动态」

官方原文:“A workflow moves the plan into code… A workflow script holds the loop, the branching, and the intermediate results itself, so Claude's context holds only the final answer.” 子代理 / 技能由 Claude 逐轮决定、中间结果堆在上下文里;动态工作流把这些移进脚本变量,上下文卫生更好。

常见误解:「动态」≠ 运行期 LLM 即兴改流程。脚本一旦生成,执行是确定性的;「动态」体现在「每个任务现写一份专属脚本」。

5.2 后台执行 + phase 结构

运行时在后台跑脚本,会话保持响应;进度按 phase 展示(agent 数 / token / 耗时);脚本写到 ~/.claude/projects/<session>/同会话内可续跑(缓存 agent 结果)。

5.3 扇出与汇聚(子代理原语)

5.4 质量机制:对抗式交叉验证

官方:可让独立 agent 互相对抗式复核后再上报;/deep-research 扇出检索 → 交叉核验来源 → 对每条主张投票 → 过滤未通过的主张,返回带引用报告。 社区所称「跑到收敛为止」官方未写成运行时保证。中—低

6谱系:它从哪来

动态工作流是 Anthropic「orchestrator-worker(编排者—工人)」研究系统的产品化:lead agent 分析查询 → 并行派生子代理 → 子代理作过滤器回传发现 → lead 汇编。该系统自评比单 agent Opus 4 高 90.2%,代价约 15× token中—高(一手页 403,经多处互证)

7成本与代价

⚠️ 未证实轶事:有营销博客称「49 子代理一次 $8k–15k」「23 子代理 3 天 $47k」——无一手来源,置信度低,仅作方向性警示,不应作硬数据引用。

8局限与争议(对抗视角)

9对本仓的启示

10来源与置信度

官方(完整抓取,高置信)workflows · sub-agents · skills · how-claude-code-works · agent-loop · plugins · hooks-guide · CHANGELOG

官方(403 未直接抓取,降级):动态工作流公告博客、multi-agent-research-system(90.2% / 15× 经二手互证)。 二手/press(中):InfoQ、TestingCatalog、TechTimes(称 2026-05-29)。 社区/低:技能不触发报告(blog.fsck / scottspence / issue #25072)、成本轶事(未证实)、HN 怀疑声音(主观)。

置信度判定:同一官方机制被两个独立检索 agent 各自完整抓取 + 逐字引用同一段文字与同一组限额(16 并发 / 1000 总量)→ 多方互证记「高」;仅二手 / 单一社区源记「中 / 低」;与官方抵触者在 §8 显式并列双方。