@knoYee_: https://x.com/knoYee_/status/2062144250532561370

X AI KOLs Timeline 工具

摘要

Detailed hands-on tutorial on using Claude Code's Dynamic Workflows feature for parallel task execution with adversarial verification, including practical examples and common pitfalls.

https://t.co/3Kks98M196
查看原文
查看缓存全文

缓存时间: 2026/06/04 01:57

Dynamic Workflows 实战教学(小白友好版)

Claude Code 最近更新的功能:Dynamic Workflows。听起来很炫酷,但在具体是实操中,该怎么用,什么时候用,相信大家会有疑惑

我们今天讲:你改怎么用、从哪开始、会遇到什么坑。

工作原理

  • 普通模式下,Claude Code 接收你的指令,串行执行。

  • 一个任务完成,进入下一个。

  • 所有中间结果留在上下文窗口里,

  • 结果就是上下文窗口被撑爆,模型开始降智。

Dynamic Workflows 在指令和执行之间加了一层编排引擎。

  • 你描述目标后,Claude 先不干活,而是写一段 JS 编排脚本。

  • 这段脚本声明了:任务列表、每块任务的边界、并行数量、验证规则。

  • 编排脚本在一个隔离的 JS 运行时里执行。

  • 脚本启动后,同时唤醒多个 Agent,每个 Agent 独立领一块任务,跑完之后结果汇总到编排脚本,验证 Agent 交叉检查。

  • 中间结果存储在 JS 运行时里,不进模型上下文窗口。

  • 所以上下文不会被撑满,Agent 数量不受上下文容量限制。

  • 当前单次上限 1000 个 Agent,并行上限 16 个。

验证走对抗模式。

  • 两个验证 Agent 同时审同一段产出,互相挑战结论。

  • 两个都通过,这块任务才算完成。

  • 一个通过一个不通过,进入第二轮修正。

前置条件

Claude Code 版本 ≥ v2.1.154。

终端里跑一下确认:

claude –version

不够新就先升级:

npm update -g @anthropic-ai/claude-code

怎么触发

在 Claude Code 对话里输入:

/effort ultracode

然后描述你要做什么。

实战一:先跑一个最小任务

  • 假设你的项目里有一个 src/utils 目录,里面有 5 个 JavaScript 文件。你想把它们全部改成 TypeScript。

在 Claude Code 里输入:

  • /effort ultracode 把 src/utils 目录下的 5 个 .js 文件改成 .ts,加上类型定义。每个文件一个 Agent 并行处理。改完之后互相检查类型定义有没有冲突。

Claude 会先写一段编排脚本,然后执行。你会看到 5 个 Agent 各自开工,跑完之后自动互相 Review。

这一步的目的不是改代码,是感受一下编排脚本怎么写、Agent 之间怎么协作。跑通一次心里就有数了。

实战二:全项目级别的批量改动

跑通小任务之后,试一个真正能省时间的。

  • 比如你的项目里有 20 个 API 路由文件,每个文件的错误处理方式不统一。有的用 try-catch,有的用 .catch(),有的根本没处理。

  • **/effort ultracode 把 src/routes 目录下所有文件的错误处理统一改成 asyncHandler 包装。每个文件一个 Agent 并行处理。改完之后:

  1. 验证每个路由的错误处理逻辑是否正确
  2. 检查不同文件的 asyncHandler 用法是否一致
  3. 如果有冲突,自动修**

这种任务手动改要半天。Dynamic Workflows 下 20 个 Agent 并行,几分钟完事。

实战三:带对抗性验证的重构

这是 Dynamic Workflows 最独特的能力。

  • 普通 Agent 改代码,改完就交差了。Dynamic Workflows 可以加“对抗性验证”——两个 Agent 互相挑刺。

比如你要把一个支付模块从回调风格改成 async/await:

  • **/effort ultracode 把 src/payment 目录下所有文件从回调风格改成 async/await。每改完一个文件,两个验证 Agent 分别检查:
  • 验证 Agent A:检查代码逻辑是否正确、错误处理是否完整
  • 验证 Agent B:专门找 A 遗漏的问题 两个都确认没问题,才算通过。 改完之后跑一遍现有测试,测试不通过的自动修。**

这就是为什么 Bun 的 75 万行迁移能做到 99.8% 测试通过率——不是一个人改的,是一群 Agent 互相审。

编排脚本长什么样

不用你写,Claude 写。

但看一下结构有助于理解它在干什么:

// Claude 自动生成的编排脚本(简化版) const workflow = { tasks: [ { file: “src/utils/format.js”, action: “convert-to-ts” }, { file: “src/utils/request.js”, action: “convert-to-ts” }, { file: “src/utils/storage.js”, action: “convert-to-ts” }, { file: “src/utils/validate.js”, action: “convert-to-ts” }, { file: “src/utils/date.js”, action: “convert-to-ts” }, ], parallel: 5, // 同时跑 5 个 verify: { mode: “adversarial”, // 对抗性验证 rounds: 2, // 两轮验证 }, };

你不用理解这段代码,你只需要知道:Claude 在生成一套可复用的执行计划。

这份脚本可以存到 .claude/workflows/,下次类似任务直接用。

跑完之后干什么

编排脚本存起来:

cp .claude/workflows/last-workflow.js .claude/workflows/js-to-ts-migration.js

下次类似迁移,告诉 Claude:

用 js-to-ts-migration 这个编排脚本,把 src/components 目录也改一下。

不用重新解释需求。

常见坑

坑一:任务太大了拆不动

如果你说“把所有代码重构成 clean architecture”,Claude 拆不开。

  • 目标太模糊,依赖关系太复杂。

  • 一次只搞一类改动。

坑二:同时改的东西互相依赖

  • 比如改 A 文件和 B 文件,B 文件 import 了 A 文件。

  • Agent A 改了 A 的导出,Agent B 不知道。

  • 对抗性验证能兜一部分底,但不是 100%。

  • 先跑完,再手动检查 import 路径。

坑三:开了 Dynamic Workflows 干小活

  • 改一个文件的三行代码,普通 session 30 秒。

  • 开 Dynamic Workflows,Claude 先花 10 秒写编排脚本,再调度 Agent,再汇总——得不偿失。

判断标准:手动改超过半小时的任务,才值得开。

坑四:版本不对

/effort ultracode 只在 v2.1.154+ 版本有效。

很多人的 Claude Code 开了自动更新所以没问题,如果你手动锁了版本,记得先升。

什么时候用它,什么时候用普通模式

  • 改一个文件几行代码 普通对话

  • 不确定怎么做,想讨论方向 普通对话

  • 批量改名、批量改格式 Dynamic Workflows

  • 跨多个文件的同类重构 Dynamic Workflows

  • 框架迁移、语言迁移 Dynamic Workflows

  • 带验证的复杂改动 Dynamic Workflows + 对抗性验证

最后

大家可以上手实操一下,感受一下Dynamic Workflows的工作流程和工作原理,以方便后续使用

相似文章