# 用动态工作流大规模编排子 Agent

> 动态工作流通过 Claude 编写的脚本编排大量子 Agent,可重复运行。适用于代码库审计、大规模迁移和交叉验证的研究。

- 原文链接: https://laojin.blog/repost/20260529_orchestrate_subagents_workflows
- 作者: 老金
- 原始出处: https://code.claude.com/docs/en/workflows
- 发布日期: 2026-05-29
- 标签: Claude Code, 动态工作流, Subagent, Anthropic, 转载

---

> 原文:[Orchestrate subagents at scale with dynamic workflows](https://code.claude.com/docs/en/workflows)

动态工作流目前处于研究预览阶段。需要 Claude Code v2.1.154 或更高版本，在所有付费计划中可用，支持 Anthropic API 访问，以及 Amazon Bedrock、Google Cloud Vertex AI 和 Microsoft Foundry。在 Pro 计划中，通过 `/config` 的 Dynamic workflows 行开启。

动态工作流是一个 JavaScript 脚本，用于大规模编排[子 Agent](https://code.claude.com/docs/en/sub-agents)。Claude 为你描述的任务编写脚本，运行时在后台执行该脚本，同时你的会话保持响应。

当任务需要比单个对话能协调的更多 Agent 时，或者当你想将编排固化为可读取和重复运行的脚本时，就该使用工作流。示例包括代码库范围的 bug 搜索、500 个文件的迁移、需要多个来源交叉验证的研究问题，以及在承诺采用之前值得从多个独立角度起草的复杂方案。

本页涵盖：

- 决定何时使用工作流而非子 Agent 或 Skills
- 使用 `/deep-research` 运行内置工作流
- 让 Claude 编写工作流并保存
- 理解工作流运行方式和管理运行

## 何时使用工作流

[子 Agent](https://code.claude.com/docs/en/sub-agents)、[Skills](https://code.claude.com/docs/en/skills) 和工作流都可以运行多步骤任务。区别在于谁掌控计划：

|  | 子 Agent | Skills | 工作流 |
| --- | --- | --- | --- |
| 是什么 | Claude 生成的工作者 | Claude 遵循的指令 | 运行时执行的脚本 |
| 谁决定下一步运行什么 | Claude，逐轮决定 | Claude，遵循 prompt | 脚本 |
| 中间结果存在哪里 | Claude 的上下文窗口 | Claude 的上下文窗口 | 脚本变量 |
| 什么是可重复的 | 工作者定义 | 指令 | 编排本身 |
| 规模 | 每轮几个委派任务 | 同子 Agent | 每次运行数十到数百个 Agent |
| 中断 | 重启该轮 | 重启该轮 | 可在同一会话中恢复 |

工作流将计划移入代码。使用子 Agent 和 Skills 时，Claude 是编排者：它逐轮决定接下来生成什么，每个结果都落入 Claude 的上下文。工作流脚本自身持有循环、分支和中间结果，因此 Claude 的上下文只保存最终答案。

将计划移入代码还让工作流能应用可重复的质量模式，而不仅仅是运行更多 Agent：它可以让独立的 Agent 对彼此的发现进行对抗性审查后再报告，或从多个角度起草方案并相互对比，这样你得到的结果比单次处理更可信。

## 运行内置工作流

查看工作流实际运行的最快方式是运行 `/deep-research`，这是 Claude Code 内置的工作流，用于跨多个来源调查问题。你会看到 Agent 在后台逐阶段工作，同时你的会话保持空闲，最终得到一份报告而非逐轮的对话记录。

要为自己的任务运行工作流，让 Claude 编写一个，一旦运行达到预期，你可以在之后将其保存为命令。

### 内置工作流

Claude Code 内置了 `/deep-research` 工作流：

| 命令 | 功能 |
| --- | --- |
| `/deep-research <问题>` | 围绕一个问题从多个角度展开网络搜索，获取并交叉验证找到的来源，对每个论断投票，返回一份引用报告，未通过交叉验证的论断会被过滤。需要 [WebSearch 工具](https://code.claude.com/docs/en/tools-reference#websearch-tool-behavior)可用 |

你自己保存的工作流也会以同样方式成为命令，出现在 `/` 自动补全中。

### 查看运行状态

工作流在后台运行，会话保持响应。随时运行 `/workflows` 列出正在运行和已完成的工作流，然后选择一个打开其进度视图。

```text
/workflows
```

进度视图显示每个阶段的 Agent 数量、Token 总量和经过时间。底部列出每个操作的快捷键：

| 快捷键 | 操作 |
| --- | --- |
| `↑` / `↓` | 选择阶段或 Agent |
| `Enter` 或 `→` | 深入选中的阶段，再深入 Agent 查看其 prompt、最近的工具调用和结果 |
| `Esc` | 返回上一级 |
| `j` / `k` | 在 Agent 详情溢出时滚动 |
| `p` | 暂停或恢复运行 |
| `x` | 停止选中的 Agent，或当焦点在运行上时停止整个工作流 |
| `r` | 重启选中的运行中 Agent |
| `s` | 保存运行的脚本为命令 |

## 让 Claude 编写工作流

你可以通过两种方式让 Claude 为你的任务编写工作流：

- 在 prompt 中要求工作流——使用"workflow"关键词，Claude 会为任务编写工作流。
- 让 Claude 自动决定（ultracode）：设置 `/effort ultracode`，Claude 会为会话中每个实质性任务规划工作流。

你也可以运行已有的工作流命令：内置工作流如 `/deep-research`，或你已保存的工作流。

### 在 prompt 中要求工作流

要将单个任务作为工作流运行而不改变会话的 effort 级别，在 prompt 中任意位置包含"workflow"一词即可。

```text
Run a workflow to audit every API endpoint under src/routes/ for missing auth checks
```

Claude Code 会高亮你输入中的该词，Claude 将为任务编写工作流脚本而非逐轮处理。

如果运行达到预期，你可以在之后保存为命令。

如果 Claude Code 在你不想触发时高亮了该词，按 `alt+w` 可忽略本次 prompt 中的触发。

### 让 Claude 自动决定（ultracode）

Ultracode 是一个 Claude Code 设置，将 `xhigh` [推理力度](https://code.claude.com/docs/en/model-config#adjust-effort-level)与自动工作流编排结合。开启后，Claude 会为每个实质性任务规划工作流，无需你主动要求。

```text
/effort ultracode
```

开启 ultracode 后，Claude 自行判断任务是否需要工作流。一个请求可能转化为连续多个工作流：一个用于理解代码，一个用于做出更改，一个用于验证。这适用于会话中的每个任务，因此每个请求使用更多 Token 且耗时更长。

Ultracode 在当前会话持续有效，启动新会话时重置。回到常规工作时用 `/effort high` 降回。它在支持 `xhigh` effort 的模型上可用；其他模型的 `/effort` 菜单不提供此选项。

### 运行前批准计划

在 CLI 中，每次运行的确认提示会显示计划的阶段和以下选项：

- **Yes, run it**：开始运行
- **Yes, and don't ask again for `<name>` in `<path>`**：开始，并在本项目中不再为此工作流询问
- **View raw script**：在决定前查看脚本
- **No**：取消

`Ctrl+G` 在编辑器中打开脚本。`Tab` 允许你在运行开始前调整 prompt。

是否看到此提示取决于你的[权限模式](https://code.claude.com/docs/en/permission-modes)：

| 权限模式 | 何时提示 |
| --- | --- |
| Default、accept edits | 每次运行，除非你已为该项目中该工作流选择了 **Yes, and don't ask again** |
| Auto | 仅首次启动。任何 **Yes** 都会在用户设置中记录同意，后续启动无需提示。开启 ultracode 时完全跳过 |
| Bypass permissions、`claude -p`、Agent SDK | 从不。运行立即开始 |

在桌面应用中，一张审批卡片显示工作流名称、阶段列表和 Token 使用提醒，提供 **Once**、**Always** 和 **Deny** 操作。进度视图出现在后台任务侧边栏中。

你的权限模式仅控制上述启动提示。工作流生成的子 Agent 始终在 `acceptEdits` 模式下运行，并继承你的[工具白名单](https://code.claude.com/docs/en/settings#permission-settings)，无论你会话的模式如何。文件编辑自动批准。

Shell 命令、网页获取和不在白名单中的 MCP 工具仍可能在运行中提示你。要避免长时间运行中的中断，在开始前将 Agent 需要的命令添加到白名单。

在 `claude -p` 和 Agent SDK 中没有人可以提示，因此工具调用遵循你配置的权限规则，无需交互确认。

### 保存工作流以供重用

当 Claude 为你将要重复的任务编写了工作流时，你可以将该运行的脚本保存为命令。像每次分支都要运行的审查流程，就能每次执行相同的编排。

运行 `/workflows`，选择要保留的运行，按 `s`。在保存对话框中，Tab 在两个保存位置间切换：

- 项目中的 `.claude/workflows/`：与克隆仓库的所有人共享
- 主目录中的 `~/.claude/workflows/`：在每个项目中可用，仅对你可见

按 Enter 保存。工作流在之后的会话中以 `/<名称>` 运行。

如果项目工作流和个人工作流同名，项目的优先运行。

## 工作流运行方式

工作流运行时在一个隔离环境中执行脚本，与你的对话分离。中间结果保存在脚本变量中，而非落入 Claude 的上下文。

运行时跟踪每个 Agent 的结果，这使得运行可以在同一会话中恢复。

### 行为和限制

运行时施加以下约束：

| 约束 | 原因 |
| --- | --- |
| 运行中无用户输入 | 只有 Agent 权限提示可以暂停运行。如需在阶段间签核，将每个阶段作为独立工作流运行 |
| 工作流本身无直接文件系统或 shell 访问 | Agent 负责读写文件和运行命令。脚本协调 Agent |
| 最多 16 个并发 Agent，CPU 核心有限的机器上更少 | 限制本地资源使用 |
| 每次运行最多 1,000 个 Agent | 防止失控循环 |

## 管理运行

运行开始后，从 `/workflows` 视图管理，或展开输入框下方任务面板中的进度行。

### 暂停后恢复

如果你停止了一次运行，可以恢复它：已完成的 Agent 返回缓存结果，其余的实时运行。从 `/workflows` 选择暂停的运行按 `p` 恢复，或要求 Claude 用相同脚本重新启动工作流。

恢复在同一 Claude Code 会话中有效。如果你在工作流运行时退出 Claude Code，下次会话将从头开始运行工作流。

### 成本

工作流生成大量 Agent，因此单次运行可能比在对话中处理相同任务使用显著更多的 Token。运行像任何其他会话一样计入你的计划使用量和速率限制。你可以随时从 `/workflows` 停止运行中的工作流，不会丢失已完成的工作。

工作流中的每个 Agent 使用你会话的模型，除非脚本将某个阶段路由到不同模型。要控制模型成本：

- 在大型运行前检查 `/model`，如果你通常切换到较小模型做常规工作
- 在描述任务时，要求 Claude 对不需要最强模型的阶段使用较小模型

### 关闭工作流

工作流在 CLI、桌面应用、IDE 扩展、[非交互模式](https://code.claude.com/docs/en/headless)（`claude -p`）和 [Agent SDK](https://code.claude.com/docs/en/agent-sdk/overview) 中可用。相同的禁用设置在所有平台上适用。

为自己关闭工作流：

- 在 `/config` 中关闭 Dynamic workflows 开关。跨会话持久。
- 在 `~/.claude/settings.json` 中设置 `"disableWorkflows": true`。跨会话持久。
- 设置 `CLAUDE_CODE_DISABLE_WORKFLOWS=1`。启动时读取，因此在你设置的任何地方生效。

为整个组织关闭工作流，在[托管设置](https://code.claude.com/docs/en/server-managed-settings)中设置 `"disableWorkflows": true`，或使用 [Claude Code 管理设置](https://claude.ai/admin-settings/claude-code)页面上的开关。

工作流禁用后，内置工作流命令不可用，`workflow` 关键词不再触发运行，`ultracode` 从 `/effort` 菜单中移除。

## 相关资源

- [并行运行 Agent](https://code.claude.com/docs/en/agents)：比较子 Agent、Agent 视图、Agent 团队和工作流
- [创建自定义子 Agent](https://code.claude.com/docs/en/sub-agents)：工作流编排的工作者基本单元
- [管理成本](https://code.claude.com/docs/en/costs)：多 Agent 运行如何计入使用限额
