关于 dynamic-workflows
Dynamic Workflows 是用于 Claude Code 的技能,可用 JavaScript 脚本确定性地编排子 Agent。它适用于超出单个 Agent 上下文、需要超过四个工作者或需要循环与流水线的任务,并可通过 `/workflows` 查看进度。
主要功能
- 01用 JavaScript 编排子 Agent
- 02组合循环、条件和扇出
- 03运行流水线与并行阶段
- 04用 schema 验证结构化输出
- 05监控阶段、Agent 和 token 用量
- 06将成熟流程保存为可复用命令
适用场景
- 01分配多个 Agent 审查大型代码库
- 02让对抗式审查者验证发现
- 03生成候选项并通过评判筛选
- 04持续研究直到不再发现新内容
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ thebeardedbearsas/ claude-craft --skill dynamic-workflows安装后在 Claude Code 中输入/dynamic-workflows确认已加载。
详细介绍
Dynamic Workflows — 多 Agent 脚本化编排
Dynamic Workflows(Claude Code 2.1.154+,触发关键词 ultracode)可让 Claude
编写 JavaScript 脚本,以确定性方式编排子 Agent(循环、条件、扇出)。脚本在后台运行;可通过 /workflows 跟踪执行情况。
⚠️ 需主动选择且成本较高:一个工作流可能会启动数十到数百个子 Agent。仅在明确要求时(关键词「ultracode」「use a workflow」「fan out agents」),或达到下文的复杂度门槛时使用。
何时使用 — 编排的 3 个层级
| 层级 | 工具 | 并发 | 适用场景 |
|---|---|---|---|
| 1 | 简单子 Agent(Task/Agent) | 1 | 单项独立调查,保持主上下文简洁 |
| 2 | Agent Teams(/team:audit、/team:sprint、/team:security) | 1 个 leader + 约 3 个 worker | 范围有限、同步进行且一轮即可完成的并行工作 |
| 3 | Dynamic Workflows(ultracode) | 最多约 1000 个子 Agent(并发上限约 16 个) | 任务超出单个 Agent 的上下文容量,或需要超过 4 个 worker,或需要确定性循环/流水线 |
**盈亏平衡经验法则:**只要你会写出「启动 N 个 Agent,然后对每个 Agent 执行 X,最后汇总」,这就是一个工作流。如果 N ≤ 4 且一轮就够,用 Agent Teams。
可组合模式(最简提示词)
- 扇出并综合 — 多个阅读者并行处理互不重叠的子系统 → 一个 Agent 综合结果。(审计、代码映射)
- 对抗式验证 — 将每项发现交给至少 1 个怀疑者负责反驳;只保留
CONFIRMED。这是自主生成中最重要的质量模式。 - 生成并筛选 — 大量生成(想法、候选项),然后由评判者筛选。
- 分类并处理 — 分类器将每个项目路由到相应的处理流程。
- 流水线 — 每个项目依次经过所有阶段,中间不设屏障(延迟 = 最慢的链路,而非各阶段之和)。这是多阶段任务的默认模式。
- 循环直到完成/无新结果 — 重新启动研究者,直到连续 K 轮没有新发现(适用于规模未知的探索:漏洞、边缘情况)。
典型骨架(审查 → 验证)
const results = await pipeline(
DIMENSIONS,
d => agent(d.prompt, { phase: 'Review', schema: FINDINGS }),
review => parallel(review.findings.map(f => () =>
agent(`Adversarially verify: ${f.title}. Default refuted=true if unsure.`,
{ phase: 'Verify', schema: VERDICT }).then(v => ({ ...f, verdict: v }))))
)
const confirmed = results.flat().filter(Boolean).filter(f => f.verdict?.isReal)
默认使用 pipeline()(不设屏障);只有当第 N 阶段需要第 N-1 阶段的全部结果时才使用 parallel()(去重、提前退出、交叉比较)。schema 会强制输出经过验证的结构化结果。并发编辑文件时,使用 isolation: 'worktree'。
监控
/workflows:实时进度(阶段、Agent、token)。- 脚本会返回汇总结果;阅读该结果并决定后续步骤(通常会按顺序运行多个工作流:理解 → 设计 → 实现 → 审查)。
不要混淆
- ralph-run(
/common:ralph-run):在单一上下文中持续顺序循环,直到达到 DoD——不支持并行。任务超出此模式时,切换到 Dynamic Workflow。 /effort ultracode:CLI 的工作强度层级(在 Opus 5.5 上最大化代码吞吐量)——与工作流的ultracode触发词无关,不过常会一起使用。
复用与安全措施(v2.1.166+)
- 先尝试内置工作流
/deep-research(经过验证的多源研究),再编写自己的工作流:它已经涵盖了许多“多路并发搜索网页 + 综合整理”的需求。 - 保存经过验证的运行方案:在
/workflows中,按s可将脚本保存为可复用命令,存放在项目目录(.claude/workflows/)或个人目录(~/.claude/workflows/)中。args参数可让你使用不同的输入(研究问题、目标路径等)重新运行。 - ⚠️ 安全 — 隐式启用 acceptEdits:工作流启动的子 Agent 始终以
acceptEdits模式运行,并继承你的允许列表,不受会话模式影响(包括plan或default)。文件编辑会自动获批。 仅在可控区域(隔离的 worktree,参见权限卫生规则 11)中启动会写入内容的 Agent。 - 熔断开关与成本:
disableWorkflows(settings.json)或CLAUDE_CODE_DISABLE_WORKFLOWS=1可禁用此功能;/workflows会实时显示令牌消耗(工作流的成本远高于单一上下文——请设置明确的预算并据此管理)。
参考:Claude Code Workflows · 另请参阅
@.claude/commands/common/sub-agents-patterns.md(编排方式对比表)。