开发工程 / 工作流案例

如何真正使用 Claude Code 动态工作流

初级到中级 首次搭建后持续迭代 @nateherk
结果

一次 workflow 审核 41 个 Claude Code skills,30 分钟吃掉半月费 | scope 限制 + Haiku worker + /workflows 监控实战

适合谁

重度 Claude Code 用户 / 需要并行审库、批量分析、控制 agent 成本的人

一个提示词烧掉我一半的 Claude 套餐

Claude Opus 4.8 发布了一个新功能:动态工作流(dynamic workflows)。

我跑了一个提示词,30 分钟内就烧掉了我每月 200 美元套餐的一半。

所以我花了一周时间搞清楚这到底是什么,它和 Claude Code 已有的功能相比如何,以及什么时候值得花这个钱。

太长不看版

  • 动态工作流是 Claude Code 写一个脚本,并行启动大量 Agent,然后把所有结果合并成一个答案
  • 一个提示词在 30 分钟内花掉我一半的月费,所以范围控制就是一切
  • 阶梯:问 Claude → Skill → Subagent → Agent Team → /goal → workflow
  • /goal 是深度(循环直到 done = true),workflow 是广度(50 个 Agent 并行工作)
  • ultracode 模式和 /deep-research 是值得了解的隐藏功能
  • 大多数知识工作不需要工作流,这完全没问题

动态工作流到底是什么

我跑了一个工作流,审计了我所有的 41 个 Claude Code Skills。

它同时启动了 41 个 Haiku Agent,每个 Skill 一个,并行打分,然后把所有结果喂给一个 Opus 合成 Agent。

Image
Image

因为 Agent 并行运行,速度很快。只是消耗了大量输入 token,大约 500 万。

输出不多,所以不算特别贵。最后我拿到一个 HTML 文件,把所有 Skill 从差到好排序,给出每个的修复建议,并标记了构建更多 Skill 时需要注意的模式。

这就是它和 Claude Code 其他功能最大的不同。

通常,计划是和 Claude 一起在主会话中完成的。而工作流中,Claude 会写一个 JavaScript 文件,然后执行这个文件。

Image
Image

你描述最终目标。Claude 把它变成一个脚本,自行启动并委派所有 Agent。

Image
Image

这些脚本可以保存下来,随时重新运行。

阶梯:从问 Claude 到工作流

Skills、Subagents、Agent Teams 和工作流看起来很像,但它们是为完全不同的任务设计的。

Image
Image
  • Skill 是一个可复用的配方。你可以自己运行,作为自动化触发,或者让 Subagent 或工作流来运行它。
  • Subagent 是一个拥有独立上下文窗口的并行工作者,能保持主会话干净。Subagent 之间不能互相通信,只能向你汇报。
  • Agent Team 是一个可以互相交流的小团队。共享任务列表、独立角色、独立工具。想象一下作战室和委员会,Agent 们为一个目标辩论。更强的能力,更高的成本。
  • Workflow 是 Claude 写一个脚本,运行多个 Agent,有时是上百个。它们像 Subagent 一样独立工作,然后所有结果合并回到主会话。

这四个功能真正的变量是:有多少 Agent 在循环中,以及它们能否互相通信。

想象一个阶梯。爬得越高,复杂度和功能越多,风险和成本也越高。

Image
Image

1️⃣ 最底层:直接和 Claude Code 对话。提问、推理,可能加个网页抓取或 API 调用。

2️⃣ 重复执行的过程:做成一个 Skill。

3️⃣ 需要和主会话并行的工作:交给 Subagent。

4️⃣ 需要互相通信的 Subagent:用 Agent Team。

5️⃣ 大型并行任务:用动态工作流。

好消息是,你不会不小心触发一个工作流。Claude 在运行前会确认,需要你真正有意才能启动。

深度 vs 广度:/goal vs 工作流

这是我之前一直搞混的地方,因为我经常用 /goal。

最清晰的区分方式就是深度 vs 广度。

Image
Image

/goal 是深度。它是一个循环。一个 Agent(它也可以启动 Subagent)会多次迭代,检查 done = true,直到条件满足。如果你愿意,可以让它跑 24 小时。

工作流是广度。一堆 Subagent 同时做不同的事情,最后合成结果。你可以有 50 多个 Agent 横向运行。它们不是循环奔向终点,而是执行一开始设定的计划,然后返回结果。

最狂野的组合是在 /goal 里嵌套一个工作流。非常强大,也非常烧钱,所以在这种自主级别上要小心。

钱的问题

这是最值得注意的部分。

有人说这个功能就是为了让你多烧 token。我不这么认为。它确实有价值。真正的问题是,你是否真的需要它,很多时候它都是过度设计。

费用取决于你交给它的任务有多大。每个 Agent 都是一次完整的 Claude 调用,有自己的上下文窗口,需要读取自己的上下文。启动很多 Agent,费用会迅速累积。

大部分成本落在输入 token 上,比如我的 500 万。输入比输出便宜,但量大了还是疼。

我的反面例子:我让它搜索整个桌面。它爬取了所有本地文件和仓库来找一个分析。就是那次运行烧掉了我一半的套餐。

所以在启动之前:

  • 限定范围。
  • 明确交付物。
  • 把所有工作 Agent 设为 Haiku。

同样的纪律也适用于 /goal。给它一个模糊的请求,它会永远循环下去,因为它永远不知道 done = true 是什么时候。

我的判断标准很简单。如果任务可以拆成多个独立并行运行的部分,那就适合工作流。比如审查代码库中的每个文件、400 个文件的迁移、高风险工作(希望每个部分都获得最大算力)。对于单次编辑、快速提问或一般知识工作,跳过它。

Image
Image

自己动手运行一个

这是我使用的提示词:

"运行一个工作流,审计我所有 Claude Code 技能在两个位置——我的用户级全局技能和这个项目的技能。按清晰度、frontmatter 通过/失败以及触发质量评分,并给我一个最高价值的修复。最后让一个 Agent 把所有技能从最差到最好排序。"

我还告诉它把所有 worker 都放在 Haiku 上。

发送后,Claude 请求运行一个动态工作流。我必须明确说“是”。也可以先查看原始脚本,因为底层只是编写并执行一个脚本。

运行时,/workflows 实时显示所有信息:全部 41 个 Agent、每个正在检查的技能、都在 Haiku 上、使用的 token、工具和各自运行时长。也可以从那里停止它们。

有个坑:它生成的 JavaScript 文件不一定落在你的项目里。默认存到了我 Claude Code 工作目录的一个更全局的位置。我得告诉它把文件放进这个项目的 .claude/workflows 文件夹,这样它就保存在我自己操作系统里,而不是全局目录。

一旦保存好,复用就很简单:指定那个工作流,然后说再跑一次。我已经保存了第二个,用来给 Claude Code 功能排序。

ultracode 和 /deep-research

有两个值得了解的东西。

运行 /effort 设置你的 Opus 推理等级。选项有 low、medium、high、xhigh、max,以及 ultracode。

Image
Image

ultracode 是最聪明也最贵的。它使用 xhigh 推理,几乎把每个提示词都变成一个工作流。它会绕过很多权限直接开始编排,所以花费涨得很快。

快速调用工作流的小技巧:在一个回合里输入 "workflow" 会亮起彩虹色,因为这个词在正常对话中也会自然出现。但仅仅高亮并不会运行任何东西。最可靠的触发方式是明确说:"给我设置一个动态工作流来做这个。"

Image
Image

然后还有 /deep-research。它会自动启动一个工作流,并行启动 Agent 做研究,让它们对每个主张投票,最后返回一份带引用的研究报告。如果你做很多研究,或者你在构建自己的研究技能,这个值得试试。

一张幻灯片总结一切

  • 快速的一次性任务 → 直接问 Claude Code。
  • 反复做的事 → 做成 Skill。
  • 混乱的边角任务 → Subagent。
  • 需要沟通的小团队 → Agent Team。
  • 持续直到目标达成 → /goal。
  • 大型并行任务 → 动态工作流。但要小心。

而且 MCP、CLI 和 API 端点可以接入其中任何一个,这样你就可以把自己的数据和系统整合到整个堆栈里。

最后一点。我大部分 Claude Code 工作都是自动化和知识工作,而不是写软件。所以说实话,我可能不太会经常用到工作流,这也没关系。

知道某个功能做什么以及什么时候用,这才是胜利。这和每天必须用它才能感觉自己跟得上节奏是两码事。

完整的构建过程、实时运行还有昂贵的 token 账单,我都录在了视频里。链接在第一条回复中。

相关案例