Claude Code 学习站

Claude Code 动态 Workflow 实战指南:大规模多代理编排

Claude Code 动态 Workflow 将编排逻辑固化为可复用的 JavaScript 脚本,支持数十至数百个子代理并行,适合全仓库扫描、批量迁移和多源研究等大规模任务。

本页目录10
要点速览
  • Workflow 把编排计划写进脚本,不再占用 Claude 上下文窗口,支持暂停、恢复和重复运行。
  • 内置 `/deep-research` 命令可一键体验多源交叉验证研究,无需手写脚本。
  • 在 prompt 中加入 `ultracode` 关键词,或用 `/effort ultracode` 开启会话级全局编排。
  • 保存的 Workflow 自动成为 `/<name>` 命令,可放项目或个人目录,同名时项目级优先。
  • 单次运行上限 16 个并发代理、1000 个总代理;运行前先用小范围测试评估 Token 消耗。
  • 子代理始终以 `acceptEdits` 模式运行,建议提前将常用 Shell 命令加入许可列表以避免中途打断。

本文是对官方文档「Orchestrate subagents at scale with dynamic workflows」的中文要点摘要,完整内容以原文为准。原文链接:https://code.claude.com/docs/en/workflows

什么是动态 Workflow

动态 Workflow 是一段由 Claude 编写、运行时在后台执行的 JavaScript 脚本,用于大规模调度子代理(subagent)协同完成任务。用户的对话窗口在运行期间保持响应,脚本的中间结果存在变量里而非 Claude 的上下文窗口,最终把汇总结果返回给用户。

适用场景:全仓库 Bug 扫描、数百个文件的批量迁移、需要多源交叉验证的研究问题、需要从多个角度起草再择优的复杂方案。

版本与计划要求:Claude Code v2.1.154 及以上,付费计划(Pro / Max / Team / Enterprise)、Anthropic API 及 Amazon Bedrock / Google Cloud Vertex AI / Microsoft Foundry 均支持。Pro 用户需在 /config 中手动启用 Dynamic workflows。


四种协作模式对比

模式谁决定下一步中间结果存在哪可重复性规模上限
子代理 SubagentsClaude 逐轮决定上下文窗口仅 worker 定义每轮少量任务
技能 SkillsClaude 按指令决定上下文窗口指令本身同子代理
代理团队 Agent teams主代理逐轮分配共享任务列表团队定义少量长期任务
Workflow脚本本身脚本变量整个编排流程数十至数百个代理

核心优势:编排逻辑固化在脚本里,不再依赖 Claude 的上下文窗口,支持大规模并行、可复用、可恢复,也可以用「独立代理相互验证」等质量模式提升可信度。


快速体验:内置 /deep-research

Claude Code 内置了一个开箱即用的 Workflow 命令:

/deep-research What changed in the Node.js permission model between v20 and v22?

执行后它会从多个角度并行展开网络搜索,抓取来源并交叉验证每条声明,最终返回带引用的研究报告——未通过验证的内容已自动过滤。

运行后可用 /workflows 命令查看进度,支持按阶段、代理逐层下钻,查看各代理的 prompt、工具调用记录和结果。

/workflows 进度视图快捷键

按键操作
/ 选择阶段或代理
Enter展开查看详情(阶段→代理,可读其 prompt、近期工具调用与结果)
Esc返回上一层
j / k代理详情溢出时在其中滚动
f按状态过滤所选阶段的代理列表,再按一次循环切换(v2.1.186+)
p暂停 / 恢复运行
x停止选中代理;焦点在整个运行上时停止整个 Workflow
r重启选中的运行中代理
s将脚本保存为可复用命令

触发 Workflow 的两种方式

方式一:在 prompt 中加入 ultracode 关键词

ultracode: audit every API endpoint under src/routes/ for missing auth checks

Claude Code 会高亮该关键词,Claude 随即编写 Workflow 脚本而非逐轮处理。用自然语言「use a workflow」或「run a workflow」也同样有效。若不想触发,可按 Option+W(macOS)或 Alt+W(Windows/Linux)取消本次高亮,或在 /config 中彻底关闭 Ultracode keyword trigger。

方式二:会话级 /effort ultracode

/effort ultracode

开启后,本次会话内 Claude 会主动为每个实质性任务规划 Workflow,一个请求可能拆成多个串行 Workflow(理解代码 → 执行修改 → 验证结果)。Token 消耗会显著增加。会话结束后自动重置,日常工作结束后建议用 /effort high 切回。


审批与权限模式

权限模式触发审批提示的时机
默认 / accept edits每次运行(已选「不再询问」除外)
Auto 模式仅首次;任意 Yes 即记录授权,后续直接启动
Bypass / claude -p / Agent SDK从不提示,直接启动

子代理始终以 acceptEdits 模式运行,继承用户的工具许可列表。长时间运行前建议将所需 Shell 命令预先加入许可列表,避免中途频繁弹出确认。


保存与复用 Workflow

对满意的运行结果,在 /workflows 视图选中后按 s 保存:

  • 项目级.claude/workflows/(随仓库共享,对所有克隆者生效)
  • 个人级~/.claude/workflows/(跨项目可用,仅自己可见)

保存后可在任意会话以 /<name> 调用,出现在 / 自动补全列表中。同名时项目级优先于个人级。Monorepo 场景(v2.1.178+)中,沿工作目录向上查找最近的 .claude/workflows/,最近路径的同名 Workflow 优先。

Workflow 还支持通过 args 参数接受结构化输入(研究问题、目标路径列表、配置对象等),脚本内以全局变量 args 读取,无需每次手动改脚本。


运行机制与限制

Workflow 脚本在独立隔离环境中执行,不直接操作文件系统或 Shell——这些操作由它调度的子代理完成,脚本本身只负责协调。每次运行的脚本会写入 ~/.claude/projects/ 下的会话目录,可自行查看、对比或修改后重跑。

约束说明
无法中途接收用户输入只有工具权限提示可暂停运行;需要阶段间审批时,请将各阶段拆成独立 Workflow
最多 16 个并发代理CPU 核数较少的机器会更低,以限制本地资源消耗
单次运行最多 1000 个代理防止脚本失控循环
仅在同一会话内可恢复退出 Claude Code 后重新运行将从头开始

成本控制建议

  • 先用小范围(单目录、一个窄问题)跑一次评估 Token 消耗,再扩展到全量
  • /workflows 中随时查看每个代理的 Token 用量,可中途停止且不丢失已完成结果
  • 运行前检查 /model,并在描述任务时要求 Claude 对低复杂度阶段使用轻量模型
  • 如需关闭 Workflow:在 /config 中关闭 Dynamic workflows,或在 ~/.claude/settings.json 中设置 disableWorkflowstrue,或设置环境变量 CLAUDE_CODE_DISABLE_WORKFLOWS=1
  • 企业管理员可在 managed settings 或 Claude Code 管理页面全局关闭