A Harness for Every Task: Dynamic Workflows in Claude Code(一任务一 Harness:Claude Code 的动态工作流)
- 原文标题
- A Harness for Every Task: Dynamic Workflows in Claude Code(一任务一 Harness:Claude Code 的动态工作流)
- 原文链接
- https://claude.com/blog/a-harness-for-every-task-dynamic-workflows-in-claude-code
- 作者
- Thariq Shihipar、Sid Bidasaria(Anthropic)
- 发布日期
- 2026-06-02
🎯 一句话
动态工作流的想法是:骨架是固定的,但每一步具体做什么由模型决定。⭐ 它拿到了工作流的可控性,又保留了 Agent 的适应性。
📑 本页目录
Claude Code 现在支持动态工作流(dynamic workflows):Claude 可以自主编写和编排为当前任务量身定制的多 Agent 系统。换句话说,Claude 能为手头的任务现场写出专属的 harness,突破单一上下文窗口处理的局限。
要解决的问题
默认的 Claude Code harness 擅长单上下文的编码任务,但在超长、超复杂任务上有三种典型失败模式:
- Agent 惰性(Agentic laziness): 工作只完成了一部分就提前收工,宣称任务完成
- 自我偏好偏差(Self-preferential bias): 验证或评判产出时偏袒自己的结果
- 目标漂移(Goal drift): 多轮之后原始目标逐渐失真,细节在摘要过程中丢失
动态工作流通过把关注点拆分到多个各有明确目标的独立上下文窗口中来对抗这些问题。
工作流如何运作
- 工作流是执行 JavaScript 文件,其中包含用于生成和协调子 Agent 的特殊函数
- 系统内置标准 JavaScript 工具(JSON、Math、Array 等)用于数据处理
- Claude 可以指定子 Agent 使用哪个模型、是否在隔离的 worktree 中运行,实现智能的资源分配
- 工作流被中断后可以从断点继续
常见架构模式
| 模式 | 说明 |
|---|---|
| 分类后执行(Classify-and-act) | 先对任务分类,再按类型路由处理 |
| 扇出后综合(Fan-out-and-synthesize) | 把工作分发给并行 Agent,再合并结构化结果 |
| 对抗式验证(Adversarial verification) | 用专门的 Agent 按评分标准(rubric)验证产出 |
| 生成后过滤(Generate-and-filter) | 生成多个候选方案,再按质量标准筛选 |
| 锦标赛(Tournament) | Agent 之间两两比较竞争,直到决出胜者 |
| 循环到完成(Loop until done) | 持续派生 Agent,直到满足停止条件 |
实用场景(10 个)
- 代码迁移/重构: 把工作拆成可并行的任务(Bun 的 Zig 转 Rust 迁移是典型例子)
- 深度研究: 扇出网络搜索、抓取来源、对抗式核查论断、综合成带引用的报告
- 深度验证: 识别事实性论断,然后为每条论断派子 Agent 单独核查
- 排序/排名: 用锦标赛或流水线式两两比较,对定性内容做规模化评估
- 规则遵从检查: 每条规则一个验证 Agent;还可挖掘历史会话中的高频错误并固化为规则
- 根因调查: 从相互独立的证据源生成独立假设,再交给验证小组测试
- 分诊工作流: 分类、去重、执行处理,并用「隔离区(quarantine)」模式限制不受信任的 Agent
- 设计/探索: 用基于 rubric 的评审 Agent 评估「品味型」方案
- 轻量评测(evals): 在 worktree 中运行 Agent,按标准比较输出
- 模型路由: 用分类器 Agent 根据任务复杂度决定用哪个模型
何时该用 / 不该用
适合用工作流: - 复杂高价值任务,token 投入物有所值 - 需要结构化并行或专业分工的任务 - 单上下文偏差会成为问题的场景
不适合用: - 没有真正并行需求的常规编码任务 - 不值得多 Agent 协调开销的任务 - 一个上下文窗口就能解决的直白问题
最佳实践
- 用详细提示词描述你想要的具体模式
- 与
/goal和/loop组合处理重复性任务 - 设置明确的 token 预算控制成本
- 把工作流保存到本地或通过 skills 分享
- 把保存下来的工作流当作模板而不是死板的脚本
结论
动态工作流代表了编排 Claude 能力的一次范式转变——编排逻辑从 harness 移入模型本身。由于代码是 Claude 编排动作的通用方式,强大的编码模型同时也是强大的通用 Agent。作者鼓励在传统编码之外创造性地探索工作流的适用场景(深度调查、系统性验证、大规模分诊等),并指出「最佳实践仍在发展中」。
✅ 检查点
- 动态工作流和纯 Agent、纯工作流的区别是什么?
- 「骨架固定」具体固定的是什么?
- 这种设计的主要好处是什么?
👀 答案
- 纯工作流:路径和每步内容都固定;纯 Agent:路径和内容都由模型决定;⭐ 动态工作流:路径(阶段划分)固定,每个阶段内部做什么由模型决定。
- 固定的是阶段划分、每个阶段的输入输出契约、以及阶段之间的推进条件。比如「调研 → 规划 → 执行 → 验证」这四段是写死的,但调研阶段查什么、规划阶段拆成几步,都由模型现场决定。
- ⭐ 三个:①可观测——你永远知道它现在在哪个阶段;②可干预——可以在阶段边界上插入检查或人工确认;③失败可定位——出问题时能说清是哪个阶段出的。⚠️ 而纯 Agent 的失败往往只能得到「它就是没做对」这样的结论。
🛑 可以停在这里
⚡ 走神救援
⭐动态工作流 = 骨架固定,但每一步具体做什么由模型决定——拿到工作流的可控性,又保留 Agent 的适应性。三者对比:纯工作流(路径和内容都固定)、纯 Agent(都由模型决定)、动态工作流(路径固定、阶段内部由模型决定)。固定的是阶段划分、每阶段的输入输出契约、阶段间的推进条件(如「调研→规划→执行→验证」写死,但调研查什么、规划拆几步由模型现场定)。⭐三个好处:可观测(永远知道它在哪个阶段)、可干预(能在阶段边界插入检查或人工确认)、失败可定位(能说清哪个阶段出的问题)——⚠️而纯 Agent 的失败往往只能得到「它就是没做对」。