Dynamic Workflows 实战教程:一条指令让 Claude 并行调度百个后台 Agent
一条指令,Claude 自己写好调度脚本,在后台并行跑几十到几百个 Agent,你的会话全程不被占用——这就是 Claude Code v2.1.154(2026 年 5 月 28 日)推出的 Dynamic Workflows(动态工作流)。它不是把任务拆给你看,而是把整个编排计划写成一段可复用的 JavaScript 脚本交给运行时执行,中间结果存在脚本变量里而不是你的上下文窗口里,跑完再把最终报告交还给你。适合整个代码库的 Bug 扫描、500 个文件的批量迁移、需要多来源交叉核验的深度研究——也就是任何"一个 Agent 装不下、逐轮对话太慢"的任务。本文基于官方文档全文给出从触发到监控、从保存到复用的完整实操,以及五个最实用的提示词模板。

先搞清楚:Workflow vs 子 Agent vs Agent 团队
很多人分不清这三个概念。官方给了一张对比表,核心差异是谁拿着计划:
一句话:当任务大到一个 Agent 上下文装不下,或者你希望这套编排下次还能用,选 Workflow。
最快上手:30 秒跑起来第一个 Workflow
方式一:ultracode 关键词触发
在提示词里写 ultracode,Claude Code 识别到后会高亮这个词(紫色),然后自己写脚本来跑:
ultracode: audit every API endpoint under src/routes/ for missing auth checks
Claude 写好脚本后会弹出确认框,选 Yes, run it 即可。如果误触,按 Option+W(macOS)或 Alt+W(Windows/Linux)取消本次高亮,不影响后续使用。不想要这个触发机制,在 /config 里关掉 “Workflow keyword trigger”。
注意:v2.1.160 之前触发词是 workflow,v2.1.160 起改名为 ultracode,自然语言表达(如"use a workflow")两个版本都有效。
方式二:直接用内置 /deep-research
这是官方内置的 Workflow,不需要写任何提示词,适合先感受一下效果:
/deep-research What changed in the Node.js permission model between v20 and v22?
它会并行扇出多角度网络搜索、交叉核验来源、投票筛掉未能核实的论断,最终给你一份带引用的报告。
方式三:全局开启 ultracode 模式
/effort ultracode
开启后,本会话里每一个实质性任务 Claude 都会自动规划 Workflow,不用每次写关键词。代价是 token 消耗显著增加、单任务耗时更长。做完复杂任务记得用 /effort high 降回来,这个设置只在当前会话生效,重开会话自动重置。
实时监控:/workflows 的全部操作
Workflow 在后台跑,你的会话保持可用。随时输入:
/workflows
进入进度视图,每个 Phase 显示 Agent 数量、token 消耗、已用时长。
全部按键操作:
续跑机制:暂停或中止后,已完成的 Agent 结果会被缓存,继续运行时只有未完成部分重跑。注意:续跑只在同一个 Claude Code 会话内有效,退出再开是重新跑全程。
五个高价值提示词模板
官方文档给了六个场景,这里取最实用的五个,直接复制改路径就能用:
1. 扫描整个代码库的同一类问题
use a workflow to audit every route handler under src/routes/ for missing
authentication checks, and adversarially verify each finding before reporting it
关键词解析:adversarially verify(对抗性核验)——每个 Agent 的发现,会由独立的 Agent 来尝试反驳,通不过反驳才算真实 Bug,大幅降低误报率。
2. 循环修复直到检查通过
use a workflow to run npx tsc --noEmit and keep fixing the reported errors
until the type check passes or two rounds in a row make no progress
适用场景:TypeScript 类型错误、ESLint 报错、测试失败——让 Workflow 自己循环直到绿灯,加上"连续两轮无进展则停止"的兜底防止死循环。
3. 批量文件并行迁移
use a workflow to migrate every component under src/components/ from
styled-components to Tailwind, working on each file in its own isolated copy
关键词解析:isolated copy(隔离副本)——每个文件在独立的 git worktree 里操作,Agent 之间不会互相踩踏文件冲突。
4. 每个改动文件独立审查,汇总为一份报告
use a workflow to review every file changed in this PR for correctness issues,
then merge the per-file findings into one ranked summary
适用场景:代码评审、安全审计——并行审查速度快,最后一个汇总 Agent 负责去重和排序。
5. 持续搜索直到不再有新发现
use a workflow to find flaky tests in this repo: run the suite repeatedly,
record which tests fail intermittently, and stop once two rounds in a row
find nothing new
适用场景:挖 Flaky Test、找内存泄漏、发现边缘 case——Loop-until-dry 模式,自动收敛。
保存为可复用命令
跑完一次效果满意,在 /workflows 里按 s 保存:
● 保存到 .claude/workflows/(项目目录):整个团队 clone 仓库后都能用,用 /<name> 调用
● 保存到 ~/.claude/workflows/(主目录):只有你自己能用,在所有项目里都能调用
同名冲突时,项目目录优先级高于主目录。Monorepo 里,v2.1.178 起保存位置会自动找距离当前工作目录最近的 .claude/workflows/。
给保存的 Workflow 传参:
> Run /triage-issues on issues 1024, 1025, and 1030
Claude 自动把参数打包成结构化数据传给脚本,脚本里用全局变量 args 读取,直接调用 .filter()、.map() 等数组方法无需手动解析。
Workflow 脚本长什么样
通常不需要手写,但看懂结构有助于调试。官方给的最小示例:
export const meta = {
name: 'audit-routes',
description: 'Audit every route handler for missing auth checks',
}
// 第一步:发现所有目标文件
const found = await agent('List every .ts file under src/routes/.', {
schema: {
type: 'object',
required: ['files'],
properties: { files: { type: 'array', items: { type: 'string' } } }
},
})
// 第二步:对每个文件并行审查
const audits = await pipeline(found.files, file =>
agent(`Audit ${file} for missing authentication checks.`, { label: file }),
)
return audits.filter(Boolean)
● agent(prompt, opts):派一个子 Agent,schema 参数让它返回结构化 JSON
● pipeline(items, fn):对列表里每个 item 并行跑 fn,是默认首选模式(无屏障,A 在第 2 阶段时 B 可以还在第 1 阶段)
● parallel(thunks):全部跑完才返回,有屏障——只在真正需要"全部结果才能下一步"时用
● 脚本是纯 JavaScript,顶层 await 可直接用,不能用 Date.now()(会破坏续跑缓存)
子 Agent 最多 5 层嵌套(v2.1.172),并发上限 16 个(受本机 CPU 核数限制),单次运行 Agent 总量上限 1000 个。
权限与安全:几个需要提前知道的点
文件编辑自动批准:Workflow 内的子 Agent 总是运行在 acceptEdits 模式,文件改动不弹框确认。
Shell 命令和 MCP 工具会弹框:如果某个工具不在你的 allowlist 里,可能在长时间运行的 Workflow 中途弹出确认框打断流程。建议在启动 Workflow 前把需要的命令加进 allowlist。
子 Agent 继承 Session 的工具 allowlist:你在主会话里限制了哪些工具,子 Agent 也会受同样限制。
背景 Agent 自动 commit/push/开 PR(v2.1.198 起):在 worktree 里完成代码工作的后台 Agent 会自动提交、推送并开 draft PR。如果不需要这个行为,在 Workflow 描述里明确说"不要自动提交"。
关闭 Workflow 的三种方式:
# 1. 临时关(当前用户,持久跨会话)
# → /config 里关掉 "Dynamic workflows"
# 2. 配置文件关
echo '"disableWorkflows": true' >> ~/.claude/settings.json
# 3. 环境变量关(适合 CI)
export CLAUDE_CODE_DISABLE_WORKFLOWS=1
企业管理员可在 claude.ai/admin-settings/claude-code 为整个组织关闭。
成本控制:跑之前要想清楚的三件事
1. 先在小切片上试:整仓库的任务先在一个子目录跑,确认效果再扩范围——/workflows 可随时按 x 停止,已完成部分不浪费
2. 按需指定小模型:Workflow 默认用你 Session 当前的模型。跑前先 /model 确认;对不需要最强模型的 Phase,在提示词里说"用轻量模型处理这部分"
3. token 是真实计费:所有 Agent 的消耗都计入你的 Plan 用量和 Rate Limit,Pro/Max/Team/Enterprise 均如此。通过七牛云 AI 大模型广场路由的团队可以对不同 Phase 分配不同价位的模型,主编排用旗舰、文件级操作用轻量模型,是降本最直接的方式
常见问题
Q:Workflow 跑到一半我关掉 Claude Code 怎么办?
当前会话的续跑缓存丢失,再开是从头跑。需要跨会话持久的任务,用 GitHub Actions 或 Codex Automations 替代。Q:ultracode 关键词误触了怎么取消?
输入框里按 Option+W(macOS)或 Alt+W(Windows/Linux),或在关键词后面直接按退格键。
Q:Workflow 内的子 Agent 能用 MCP 工具吗?
能。所有 Session 连接的 MCP 工具对 Workflow 子 Agent 可见,按需加载。但交互式鉴权的 MCP Server(如 claude.ai 自身)在无头/定时运行时可能不可用。Q:在哪里看单个 Agent 消耗了多少 token?
/workflows 进入进度视图,钻进任意 Phase 再钻进 Agent,详情页面里有提示词、工具调用记录和 token 用量。
Q:需要 Claude Code 哪个版本?
v2.1.154+,所有付费 Plan(Pro/Max/Team/Enterprise)均可用,支持 Amazon Bedrock、Google Cloud’s Agent Platform、Microsoft Foundry。Pro 用户需先在 /config 的 Dynamic workflows 行手动开启。
总结
Dynamic Workflows 的核心价值是把"编排计划"从 Claude 的上下文里搬到可执行脚本里,带来三个实质收益:规模(单次最多 1000 个 Agent)、可复用(保存为 /命令)、可续跑(中断后缓存已完成部分)。触发只需要在提示词里加 ultracode 或直接说"use a workflow";监控用 /workflows 配合键盘快捷键;控制成本的关键是先在小切片测试再扩范围,并对轻量任务显式指定小模型。从本周起,整库 Bug 扫描、批量迁移、交叉核验研究这类任务,不必再逐轮盯着 Claude 跑了。
据 Claude Code 官方文档 workflows.md 及 changelog(v2.1.154–v2.1.198,2026-07-02 实时抓取)。Dynamic Workflows 自 5 月底至今持续迭代,建议跟踪官方 changelog 获取最新能力边界。
延伸资源
● Claude Code Dynamic Workflows 官方文档:code.claude.com/docs/en/workflows
● Claude Code changelog(v2.1.154+):code.claude.com/docs/en/changelog
● 子 Agent 创建指南:code.claude.com/docs/en/sub-agents