本页目录8
- 动态工作流是 Claude 为特定任务临时编排的多代理脚本,可跑 JavaScript 协调子代理、指定模型、启用工作树隔离,并支持中断后恢复
- 单一上下文窗口容易出现「代理偷懒」「自我偏好偏差」「目标漂移」等问题,拆分给多个各自聚焦的子代理可以缓解
- 六种通用设计模式:分类执行、扇出综合、对抗性验证、生成过滤、竞赛模式、循环至完成
- 典型应用包括大规模迁移重构、深度研究(`/deep-research`)、事实核查、千条目排序、规则遵守检查、根因调查、模型路由等
- 工作流会消耗更多 token,不适合日常编码任务;可用「ultracode」触发词、结合 `/goal`、`/loop`、token 预算提示词来控制使用方式,并可保存到 `~/.claude/workflows` 复用分享
本文是对 Anthropic 官方博文「A harness for every task: dynamic workflows in Claude Code」的中文要点摘要,完整内容以原文为准:https://claude.com/blog/a-harness-for-every-task-dynamic-workflows-in-claude-code
这篇文章讲了什么
Claude Code 现在可以针对具体任务,动态创建一套定制化的工具集——即让 Claude 自动编排一个多代理系统(multi-agent workflow)来完成复杂工作,而不是在单一对话上下文里一路做到底。文章作者是 Anthropic 的 Thariq Shihipar 和 Sid Bidasaria。
典型使用场景
文章给出了一组例子,展示动态工作流适合处理哪类任务:
- 复现间歇性(flaky)测试失败,并让多个代理分别提出、验证不同的根因假设
- 从历史会话记录中提炼出代码审查规则
- 挖掘一次 Slack 事故的根本原因
- 分别从投资人、客户、竞争对手的视角审视一份商业计划
- 处理 80 份简历的排序与面试筛选
- 让多个方案「竞赛」式地为一个工具命名并评审
- 逐条核实一篇博客文章中的技术性声明是否准确
这些任务的共同点是:规模较大、需要多角度判断,或者需要相互验证——单靠一次对话很难又快又稳地做完。
工作原理
动态工作流本质上是一段 JavaScript 脚本,其中包含专门用来生成(spawn)和协调子代理的函数。脚本里可以用标准 JS 能力(JSON、Math、Array 等),可以为某个阶段指定特定模型,可以用工作树(worktree)隔离并行改动,并且在被中断后能够恢复继续执行。
为什么要拆成多代理,而不是一个大上下文
单一上下文窗口跑到底,容易出现三类问题:
- 代理偷懒(agentic laziness)——多步骤任务没做完就宣称完成
- 自我偏好偏差(self-preferential bias)——倾向于认可自己刚生成的结果,缺乏真正的外部审视
- 目标漂移(goal drift)——长对话里,早先设定的约束条件逐渐被忽略或遗忘
把任务拆给多个各自独立、目标聚焦、上下文干净的子代理,可以有效缓解上述问题。
六种通用设计模式
| 模式 | 说明 |
|---|---|
| 分类执行(Classify-and-act) | 先用一个分类器代理判断任务类型,再路由到对应处理逻辑 |
| 扇出综合(Fan-out-and-synthesize) | 把任务拆成多个子任务并行处理,再综合各自结果 |
| 对抗性验证(Adversarial verification) | 用独立的验证代理去检查/挑刺主任务的输出 |
| 生成过滤(Generate-and-filter) | 先生成一批候选想法,再按标准筛选 |
| 竞赛模式(Tournament) | 多个代理各自完成同一任务,择优选择 |
| 循环至完成(Loop-until-done) | 反复循环执行,直到满足预设的停止条件 |
具体应用举例
- 迁移与重构:文章提到 Bun 项目用工作流把代码从 Zig 重写为 Rust
- 深度研究:对应内置技能
/deep-research,负责扇出搜索、抓取来源、交叉验证、最终综合成报告 - 事实核查:先识别文本中的可验证声明,再逐条核实
- 大规模排序:对上千条目通过竞赛或分桶并行处理
- 规则遵守检查:为每条规则单独配一个验证代理,减少误报
- 根因调查:并行生成多个假设,克服「自我偏好偏差」
- 大规模分类:支持去重与自动化处理
- 方案探索与评审:基于给定标准做多方案探索和评价
- 轻量级评估:在隔离的工作树里跑多个代理输出并做对比
- 模型路由:先用分类器判断任务复杂度,再决定调用 Sonnet 还是 Opus
使用限制与实践建议
工作流会比常规一次性对话消耗更多 token,并不适合日常的简单编码任务,更适合规模大、需要多角度或多次验证的工作。官方给出的实践建议包括:
- 写清楚的提示词:具体说明所用的技术方案,能显著提升工作流质量
- 和其他命令组合:可以与
/goal、/loop搭配,用于处理需要反复执行的任务 - 设置 token 预算:在提示词里写明类似「use 10k tokens」的上限,控制成本
- 保存与复用:按
s键可把工作流保存到~/.claude/workflows,也可以打包成技能分发给团队 - 触发词:在提示词中包含「
ultracode」,可以确保 Claude 选择以工作流方式来处理任务
小结
官方把动态工作流定位为探索 Claude 新能力的一个「有用起点」,同时坦言相关最佳实践仍在演进中,鼓励开发者结合自己的场景大胆尝试。