Claude Code Dynamic Workflows 实战指南:把编排逻辑交给脚本

Claude Code v2.1.154 正式引入 Dynamic Workflows:Claude 为你动态写一个 JavaScript 编排脚本,后台运行数十到上千个子代理,把"上下文溢出"的上限直接从对话里搬走。本文从核心概念、触发方式、运行机制到成本控制,逐一拆解这个新功能。

阅读时长: 4 分钟
共 1858字
作者: longlikun

2026 年 5 月 28 日,Anthropic 随 Claude Opus 4.8 一起上线了 Dynamic Workflows(动态工作流)。这项功能解决的是 Claude Code 一个根本性约束:当任务大到任何单次对话都装不下时,该怎么办。

子代理、技能、工作流:三者的差异

在理解 Dynamic Workflows 之前,先把概念区分清楚——因为三者之间的差异,决定了你什么时候该用哪个。

子代理(Subagent) 技能(Skill) 工作流(Workflow)
是什么 Claude 临时派出去的工人 Claude 遵循的指令集 运行时执行的脚本
谁决定下一步 Claude,逐轮决策 Claude,按 prompt 走 脚本自己决定
中间结果存在哪 Claude 的上下文窗口 Claude 的上下文窗口 脚本变量
能不能重跑 不行 不行 能,脚本可以复用
可以跑多少代理 每轮几个 同子代理 几十到上百,上限 1000
被打断后 整轮重来 整轮重来 可在同一会话内恢复

关键差异:编排逻辑在哪里。

用子代理和技能时,Claude 是编排者——它在对话里逐轮决定接下来派谁、做什么,所有中间结果都往上下文里塞。当代理数量多、任务时间长,上下文很快就撑满了。

Workflow 把这件事翻了个面:Claude 先写一个 JavaScript 脚本,把循环、分支、中间结果都放进脚本变量,然后由运行时在后台执行这个脚本。Claude 的上下文只负责接收最终答案,不再被成百上千的中间步骤淹没。

什么时候该用工作流

官方给出了几类典型场景:

  • 全代码库扫描:比如"扫所有 API 路由,找缺少鉴权检查的端点"
  • 大规模迁移:上百个文件的格式、框架或 API 替换
  • 多角度交叉验证的研究:让多个子代理分别找证据,再互相 review
  • 需要对抗性检验的方案:先草拟几个方向,再用独立代理来"打"每个方向,择优

Anthropic 官方案例是把 Bun 代码库的 750,000 行代码迁移,用 Dynamic Workflows 完成用了 11 天。

三种触发方式

1. 在 prompt 里加"workflow"关键词

最简单的方式:在任意 prompt 里写进"workflow"这个词,Claude Code 会高亮这个词,然后为当前任务自动写一个编排脚本。

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

不想触发时,光标移到这个词后面按 Backspace,或者 alt+w 忽略一次。如果嫌每次都提示烦,去 /config 关掉"Workflow keyword trigger"。

2. ultracode 模式(自动判断)

/effort ultracode

开了 ultracode 之后,Claude 会自己判断每个任务是否值得启动 Workflow。一个请求可能触发三条 Workflow 串联:一条理解代码、一条执行修改、一条验证结果。

这个模式下每个任务的 token 消耗和耗时都比普通模式高很多。做完重活后记得用 /effort high 切回来。

3. 运行预存的 Workflow 命令

Claude Code 内置了 /deep-research 命令:把问题拆成多角度的 web 搜索,抓取并交叉验证来源,最后输出一份带引用的研究报告。

你自己写过或跑过的 Workflow 也可以存下来,成为以 / 开头的命令:

  • 存到 .claude/workflows/ → 随代码仓库分发,团队共用
  • 存到 ~/.claude/workflows/ → 只对自己可见,但在所有项目里都能用

/workflows 视图里选中一次跑完的 run,按 s 就能保存。

Workflow 是怎么跑的

运行时把脚本放在独立的隔离环境里执行,和你的对话完全分开。几个约束要记住:

约束 原因
不接受运行中途的用户输入 只有代理权限弹窗可以暂停。需要分阶段审核的,把各阶段拆成独立的 Workflow
脚本本身不能直接操作文件系统或运行 shell 这些事由子代理做,脚本只负责协调
同时最多 16 个代理并发(资源受限机器更少) 防止本地资源耗尽
单次 run 最多 1,000 个代理 防止无限循环

被打断后(比如暂停或网络问题),可以在同一会话内/workflows 里恢复:已完成的代理缓存结果直接复用,其余重新跑。退出 Claude Code 再重进则从头开始。

成本要想清楚

官方措辞是"可能比普通会话多消耗相当多的 token",实际上可能差一个数量级。500 个代理跑 Opus 4.8 的审计,账单可以很触目。

几条控制成本的建议:

  • 在跑大任务前用 /model 确认当前模型,平时可以切到更小的模型做日常工作
  • 描述任务时告诉 Claude,哪几个阶段可以用更轻量的模型来跑
  • 先在一个小范围的任务上试跑,体感一下 token 用量,再扩规模

关掉 Workflow

如果不想用,有三种方式关闭:

# 方式 1:在 /config 里关掉"Dynamic workflows"
# 方式 2:写入配置
echo '{"disableWorkflows": true}' >> ~/.claude/settings.json
# 方式 3:环境变量(在 CI/启动脚本里用)
export CLAUDE_CODE_DISABLE_WORKFLOWS=1

关掉后,内置的 /deep-research 命令不可用,workflow 关键词不再触发,/effort 菜单里也不会出现 ultracode 选项。


Dynamic Workflows 不是"更大的 subagent",它的本质是把编排逻辑从 Claude 的上下文里彻底迁移出去,交给一个可以重复执行的脚本。对于那些"以前只能拆成几周的人工任务",这是目前 Claude Code 生态里最直接的规模化手段。

关于

原文:Orchestrate subagents at scale with dynamic workflows — Claude Code Docs
原文:Introducing dynamic workflows in Claude Code — Anthropic

关注我获取更多资讯

月球基地博客公众号二维码,扫码关注获取更多 AI 与编程资讯
📢 公众号
月球基地博客作者个人微信二维码,扫码交流 AI 与编程话题
💬 个人号
使用 Hugo 构建
主题 StackJimmy 设计