Claude Code 动态工作流(Dynamic Workflows)机制研究
调研日期 2026-06-04 · 方法:deep-research(5 路并行检索 → 抓官方源 → 对抗式交叉核验 → 带引用综述)
一手来源以 code.claude.com/docs 与 anthropics/claude-code CHANGELOG 为准;置信度逐条标注。
status: spike
research preview · v2.1.154+
约 2026-05-28
0 结论速览
「动态工作流」是 Claude Code 的官方正式特性 (英文 Dynamic workflows ),不是社区俗称,也不是 Skills / 子代理的泛指。它建立在子代理原语之上 ,把「编排」从「Claude 逐轮决定」升格为「Claude 现写一段脚本、运行时确定性执行」。高
一句话机制 :Claude 为你的任务现写一段 JS 编排脚本,运行时在后台执行子代理,会话保持响应。高
发布 :Claude Code v2.1.154(约 2026-05-28,与 Opus 4.8 同批),research preview,付费档可用。版本=高 / 日期=中
「动态」动在哪 :计划被搬进脚本——循环 / 分支 / 中间结果都在脚本变量里,Claude 上下文只留最终答案;脚本一旦生成,执行是确定性的 。高
规模 :最多 16 并发 agent、单次 1000 总量 ,按 phase 组织。高
代价 :多 agent 扇出 token 成本是单轮对话的量级倍数(Anthropic 自评约 15×),且官方承认多 agent 不适合紧耦合的编码任务 。中—高
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 它到底是什么:正名与定位
「动态工作流」一词有歧义。核对官方文档后可以钉死:
官方特性名 :Dynamic workflows(动态工作流)。
关联用户可见词 :ultracode(触发关键词 / effort 档)、/workflows(管理命令)、/deep-research(内置工作流——本报告即由它产出)。
规范文档 :code.claude.com/docs/en/workflows ,标题 “Orchestrate subagents at scale with dynamic workflows” 。高
官方原文:“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 的上下文 单层并行 / 隔离探索
技能 Skill SKILL.md,按 description 匹配后注入正文Claude,逐轮 Claude 的上下文 可复用「做法」打包
Agent teams lead 监督若干 peer 会话,共享任务清单 Claude,逐轮 各自上下文 + 共享清单 长时协作
Hooks 生命周期事件上的确定性钩子 你写的规则(确定性) — 注入上下文 / 拦截工具 / 卡住循环
Plugins 把上述打包分发的单元(git 市场) — — 团队共享
一句话辨析 :动态工作流 = 把编排逻辑从 Claude 的即兴判断外化成一段可确定执行的脚本 ;其余原语的「下一步」仍由 Claude 每轮临场决定。
4 触发方式(四条路径,均官方确认)
内置工作流 :/deep-research <问题>(需 WebSearch 工具)。
prompt 加关键词 :包含 ultracode,如 ultracode: audit every API endpoint…。v2.1.160 前 触发词是 workflow。
会话级自动编排 :/effort ultracode = xhigh 推理 + 自动工作流编排,为每个实质任务主动规划工作流。
保存复用 :/workflows 按 s 存到 .claude/workflows/,之后 /<name> 运行,经全局变量 args 传参。
关闭:"disableWorkflows": true 或 CLAUDE_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 扇出与汇聚(子代理原语)
经 Agent 工具派生(v2.1.63 前叫 Task,旧名仍作别名)。
每个非 fork 子代理拿到全新隔离上下文 ,看不到父历史/系统提示/已读文件;唯一父→子通道是 prompt 串。
只有最终消息 回父级;子代理不能再派生子代理 (单层编排)。高
5.4 质量机制:对抗式交叉验证
官方:可让独立 agent 互相对抗式复核 后再上报;/deep-research 扇出检索 → 交叉核验来源 → 对每条主张投票 → 过滤未通过的主张,返回带引用报告。高 社区所称「跑到收敛为止」官方未写成运行时保证。中—低
6 谱系:它从哪来
动态工作流是 Anthropic「orchestrator-worker(编排者—工人)」研究系统的产品化:lead agent 分析查询 → 并行派生子代理 → 子代理作过滤器回传发现 → lead 汇编。该系统自评比单 agent Opus 4 高 90.2% ,代价约 15× token 。中—高(一手页 403,经多处互证)
7 成本与代价
token 倍增 :N 路并行 ≈ N× token;递归派生或超大工具结果可再乘 10×+。中—高
不是越并行越快 :单 agent 一分钟内能完成的任务,拆子代理反而更慢。中
合并冲突 :并行子代理改相关代码时主 agent 需处理冲突,偶需人工介入。中
⚠️ 未证实轶事 :有营销博客称「49 子代理一次 $8k–15k」「23 子代理 3 天 $47k」——无一手来源,置信度低 ,仅作方向性警示,不应作硬数据引用。
8 局限与争议(对抗视角)
技能「该触发却没触发」 :靠 description 文本匹配,描述含糊 / 重叠时漏触发或触发错的。与官方「自动按需调用」的顺滑语气相冲突。中—高
子代理间不通信,上下文交接有损 :官方视隔离为「上下文卫生」特性,实践者视同一机制为「失忆 / 结果不完整」缺陷——同一事实,正反两种价值判断。高
只回传摘要 → 细节可能丢 。高
编码 vs 研究的张力 (最关键):Anthropic 自己的研究结论是多 agent「对紧耦合任务如编码不太有效」,更适合可并行研究;而 Claude Code 是编码工具却大推子代理 / 技能 。中—高
压缩静默丢早期指令 :自动压缩「会话早期的具体指令可能不被保留」。高(官方承认)
9 对本仓的启示
/deep-research 与 ultracode 适合调研型 任务(本报告即一例);仓内编码改动 按 Anthropic 结论单 agent 往往更划算,不必为并行而并行。
重复研究流程可 /workflows 保存为命名工作流,经 args 复用。
「每次会话自动准备环境」应用 Hooks(SessionStart) 而非工作流——选对原语。
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 显式并列双方。
本页由 deep-research(/deep-research)产出并转为 HTML,接入 playgrounds 预览索引。
对应 markdown 原件:aidocs/dev-docs/research/2026-06-04-claude-code-dynamic-workflows.md。
恰好用「动态工作流」这套机制本身,去调研「动态工作流」——本页即是它的一次自指演示。