来源
Thariq Shihipar (@trq212) 和 Sid Bidasaria (@sidbid) — Anthropic Claude Code 团队。文章发表于 X Article 和 Claude Blog,标题为 A Harness for Every Task: Dynamic Workflows in Claude Code。同时参考了 Anthropic 官方文档 Orchestrate Subagents at Scale with Dynamic Workflows。
原文翻译
每个任务都需要一个 Harness:Claude Code 中的动态工作流
虽然 Claude Code 的默认执行框架是为编程设计的,但它同样适用于许多其他类型的任务。许多任务被发现与编程任务在结构上是相似的。然而,要在某些特定任务类型上达到最佳性能,我们仍然需要在 Claude Code 之上构建定制化的执行框架,比如用于研究、安全分析、Agent 团队协作或代码审查。
Workflows 允许你动态创建执行框架,使 Claude 能够在 Claude Code 内原生地解决上述问题以及许多其他类型的问题。你还可以分享和复用这些工作流。
在这篇文章中,我将分享我使用 workflows 的初步经验和洞察,帮助你释放其全部潜力。
但需要注意的是,相关的最佳实践仍在不断演进。动态工作流通常消耗更多 token,因此你应该仔细考虑何时以及如何使用它们。
示例 Prompts
在深入技术细节之前,这里有一些示例 prompt 来说明 workflows 的可能性:
“这个测试大约每 50 次运行失败一次。设置一个 workflow 来复现它,提出假设,并在不同的 worktree 中进行对抗性测试。/goal 在一个假设被验证之前不要停。”
“使用 workflow 审查我最近 50 个 session,识别我反复做的纠正,并把这些重复问题转化为 CLAUDE.md 规则。”
“使用 workflow 审查过去六个月 Slack #incidents 频道的消息,识别尚未提交工单的反复出现的根因。”
“让我的商业计划通过一个 workflow,不同的 agent 分别从投资者、客户和竞争对手的视角进行分析。”
“有一个文件夹包含 80 份简历。使用 workflow 按后端岗位要求排序,审查前十份。使用 AskUserQuestion 工具向我提问,帮助建立评估标准。”
“我需要给这个 CLI 工具命名。使用 workflow 头脑风暴一系列选项,然后用锦标赛机制选出前三名。”
“使用 workflow 将我们的 User model 在所有地方重命名为 Account。”
“阅读我的博客草稿,使用 workflow 对代码库验证每一个技术声明。我不想发布任何不正确的内容。”
动态工作流的工作原理
动态工作流执行一个 JavaScript 文件,该文件包含若干特殊函数用于生成和协调 sub-agent。动态工作流还包含标准 JavaScript 函数(如 JSON 处理、数组操作等)用于处理中间结果。
核心转换:计划(plan)从 Claude 的上下文窗口搬到了代码里。在 sub-agent 模式下,Claude 每个 turn 都要决定"接下来做什么",所有中间结果都塞进 context window。在 workflow 模式下,脚本持有循环、分支和中间结果,Claude 的上下文只装最终答案。
A workflow moves the plan into code. The script holds the loop, the branching, and the intermediate results itself, so Claude’s context holds only the final answer.
深度解读
运行时模型:从 “Claude 是调度器” 到 “代码是调度器”
这不是 “多 Agent”。这是 Agent 的操作系统。
在 sub-agent 模式下,Claude 本身既是执行者也是调度器——每个 turn 都要决定"接下来做什么",所有结果回流到它的 context window。Workflow 把 “调度器” 的角色从 Claude 的思考过程中搬到了一个 JavaScript 脚本里。Runtime 在隔离进程中执行脚本,中间结果存在脚本变量中,不进入主会话 context。
链路是:你的自然语言 prompt → Claude 写 JS 脚本 → runtime 执行 → 结果回传。你全程不碰代码。
阶段屏障语义
Workflow 的并发模型是 阶段间顺序屏障 + 阶段内并发:
- Phase 之间:必须等当前 phase 的所有 agent 完成后才进入下一个(barrier 语义)
- Phase 内部:同一 phase 的 agent 并发执行,最多 16 个同时运行
- 总上限:每次 run 最多 1,000 个 agent
与其他编排模式的本质区别
| 维度 | Sub-agents | Skills | Agent Teams | Workflows |
|---|---|---|---|---|
| 谁决定下一步 | Claude,逐 turn | Claude,遵循 prompt | Lead agent,逐 turn | 脚本(代码) |
| 中间结果在哪 | context window | context window | 共享 task list | 脚本变量 |
| 可复现性 | Worker 定义 | 指令 | Team 定义 | 整个编排 |
| 规模 | 每turn几个 | 同sub-agent | 几个peer | 几十到上百 |
| 中断恢复 | 重启turn | 重启turn | 继续运行 | 可恢复 |
选型决策
- 改 bug / 小功能 → 直接对话或 sub-agent
- 10+ 文件重构 → Workflow(ultracode 关键词)
- 全仓库 bug 扫描 → Workflow
- 深度研究 → Workflow(/deep-research)
- 团队协作多天项目 → Agent Team
诚实限制
Token 消耗是单次对话的 10-50 倍。不支持中间用户输入。Session 内恢复,退出 Claude Code 后丢失。Shell 命令不在 allowlist 会中断长任务。
三个核心洞察
编排确定性:代码化的阶段屏障比 turn-by-turn 判断可靠——这是从 prompt engineering 到 code engineering 的升级。
Context 隔离:中间结果不挤占主会话 context window,意味着 Claude 可以在执行完一个大规模编排后仍然 “清醒”。
编排可审计:你可以打开脚本文件,看到 Claude 到底规划了什么;你可以 diff 两次 run 的脚本;你可以编辑后重跑。这在 sub-agent 模式下做不到。
金句
Workflows allow you to dynamically create execution frameworks that enable Claude to natively solve problems within Claude Code.
工作流允许你动态创建执行框架,让 Claude 在 Claude Code 内原生地解决问题。
A workflow moves the plan into code. The script holds the loop, the branching, and the intermediate results itself, so Claude’s context holds only the final answer.
工作流把计划搬进了代码。脚本持有循环、分支和中间结果,所以 Claude 的上下文只装最终答案。
翻译解读 by Cloudcold | 2026-06-06