动态工作流目前处于研究预览阶段。需要 Claude Code v2.1.154 或更高版本,在所有付费计划中可用,支持 Anthropic API 访问,以及 Amazon Bedrock、Google Cloud Vertex AI 和 Microsoft Foundry。在 Pro 计划中,通过 /config 的 Dynamic workflows 行开启。
动态工作流是一个 JavaScript 脚本,用于大规模编排子 Agent。Claude 为你描述的任务编写脚本,运行时在后台执行该脚本,同时你的会话保持响应。
当任务需要比单个对话能协调的更多 Agent 时,或者当你想将编排固化为可读取和重复运行的脚本时,就该使用工作流。示例包括代码库范围的 bug 搜索、500 个文件的迁移、需要多个来源交叉验证的研究问题,以及在承诺采用之前值得从多个独立角度起草的复杂方案。
本页涵盖:
- 决定何时使用工作流而非子 Agent 或 Skills
- 使用
/deep-research运行内置工作流 - 让 Claude 编写工作流并保存
- 理解工作流运行方式和管理运行
何时使用工作流
子 Agent、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 工具可用 |
你自己保存的工作流也会以同样方式成为命令,出现在 / 自动补全中。
查看运行状态
工作流在后台运行,会话保持响应。随时运行 /workflows 列出正在运行和已完成的工作流,然后选择一个打开其进度视图。
/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"一词即可。
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 推理力度与自动工作流编排结合。开启后,Claude 会为每个实质性任务规划工作流,无需你主动要求。
/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。
是否看到此提示取决于你的权限模式:
| 权限模式 | 何时提示 |
|---|---|
| Default、accept edits | 每次运行,除非你已为该项目中该工作流选择了 Yes, and don't ask again |
| Auto | 仅首次启动。任何 Yes 都会在用户设置中记录同意,后续启动无需提示。开启 ultracode 时完全跳过 |
Bypass permissions、claude -p、Agent SDK | 从不。运行立即开始 |
在桌面应用中,一张审批卡片显示工作流名称、阶段列表和 Token 使用提醒,提供 Once、Always 和 Deny 操作。进度视图出现在后台任务侧边栏中。
你的权限模式仅控制上述启动提示。工作流生成的子 Agent 始终在 acceptEdits 模式下运行,并继承你的工具白名单,无论你会话的模式如何。文件编辑自动批准。
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 扩展、非交互模式(claude -p)和 Agent SDK 中可用。相同的禁用设置在所有平台上适用。
为自己关闭工作流:
- 在
/config中关闭 Dynamic workflows 开关。跨会话持久。 - 在
~/.claude/settings.json中设置"disableWorkflows": true。跨会话持久。 - 设置
CLAUDE_CODE_DISABLE_WORKFLOWS=1。启动时读取,因此在你设置的任何地方生效。
为整个组织关闭工作流,在托管设置中设置 "disableWorkflows": true,或使用 Claude Code 管理设置页面上的开关。
工作流禁用后,内置工作流命令不可用,workflow 关键词不再触发运行,ultracode 从 /effort 菜单中移除。
相关资源
- 并行运行 Agent:比较子 Agent、Agent 视图、Agent 团队和工作流
- 创建自定义子 Agent:工作流编排的工作者基本单元
- 管理成本:多 Agent 运行如何计入使用限额