# 为每个任务配一套执行框架：Claude Code 中的动态工作流

- 原标题：A harness for every task: dynamic workflows in Claude Code
- 类型：博客
- 来源：Claude Code 团队博客
- 发布时间：2026-06-02
- 首次精选：2026-10-28 16:25
- 分级：值得看
- 学习层级：进阶
- 主题：[claude-code-ecosystem](<https://oplearnx.com/md/topics/claude-code-ecosystem.md>)（第 14 位）、[multi-agent-workflows](<https://oplearnx.com/md/topics/multi-agent-workflows.md>)（第 15 位）、[agent-architecture-harness](<https://oplearnx.com/md/topics/agent-architecture-harness.md>)（第 58 位）
- 原文链接：[https://claude.dev/blog/a-harness-for-every-task-dynamic-workflows-in-claude-code](<https://claude.dev/blog/a-harness-for-every-task-dynamic-workflows-in-claude-code>)
- 本站页面：[https://oplearnx.com/resources/pk\_f4ad07ccd9b0](<https://oplearnx.com/resources/pk_f4ad07ccd9b0>)

## 摘要

claude.dev 博客文章（作者 Thariq Shihipar、Sid Bidasaria，约 11 分钟阅读），说明 Claude Code 新增的动态工作流功能：模型可按任务即时编写并编排自己的多智能体执行框架（harness）。文中包含示例提示、动态与静态工作流的对比、常用模式、使用场景、不宜使用的情形以及构建建议。

## 中文精读

### 1. 开篇与文章信息

- 文章栏目为 Agent，标题《为每个任务定制的 harness：Claude Code 中的动态工作流》（dynamic workflows）。
- 作者 Thariq Shihipar 与 Sid Bidasaria，2026 年 6 月 2 日发布，阅读时长约 11 分钟。

### 2. 为每个任务定制的 harness

- 上周 Claude Code 发布了动态工作流，Claude 现在能按当前任务即时编写自己的 harness（agentic harness）。
- 默认的 Claude Code harness 是为编码设计的，但许多任务与编码相似，因此也适用于其他类型。
- 仍有一些任务类别需要专门叠加自定义 harness 才能达到最佳表现，如 Research、安全分析、agent teams、Code Review。
- 工作流让这类 harness 能基于 Claude Code 动态创建，从而更原生地解决问题，且可以与他人共享复用。
- 作者指出最佳实践仍在演进：动态工作流通常消耗更多 token，最适合复杂、高价值的任务。

### 3. 示例提示词

- 关于排查间歇性失败：让工作流复现 1/50 概率失败的测试，提出竞争性理论，直到有一个理论通过证据检验。
- 关于记忆挖掘：让工作流检视最近 50 次会话，找出反复出现的纠正，整理成 \`CLAUDE.md\` 规则。
- 关于信息挖掘：让工作流翻查 Slack 的 \#incidents 频道近六个月内容，找无人开票的重复根因。
- 关于评审视角：让不同 agent 从投资人、客户、竞争对手角度拆解商业计划书。
- 关于排序与筛选：对 80 份简历按后端岗位排序并复核前十，用 AskUserQuestion 工具先问出评分标准。
- 关于创意选择：为 CLI 工具头脑风暴命名，用锦标赛选出前三；另有重命名模型、核对博客技术声明等例子。

### 4. 动态工作流如何运作

- 动态工作流执行一个 JavaScript 文件，其中几个特殊函数用于生成和协调子代理（subagents）。
- \`agent\(prompt, opts\)\` 生成一个子代理：prompt 是唯一必填输入，schema 返回经校验的 JSON，model 可选 opus/sonnet/haiku，isolation 可选 worktree 或 remote，agentType 选择子代理类型。
- \`parallel\(\)\` 扇出并等待全部完成；\`pipeline\(\)\` 让每个条目依次流过所有阶段。
- 工作流也可使用 JavaScript 标准函数如 JSON、Math、Array 来处理数据。
- 工作流能决定 agent 使用哪个模型、子代理是否运行在独立 worktree 中，从而让 Claude 自行选择所需智能级别与隔离程度。
- 工作流被中断（如用户操作或关闭终端）后，恢复会话即可从断点继续。

### 5. 为什么需要动态工作流

- 默认 harness 要在同一上下文窗口内既规划又执行，对许多编码任务有效，但在长时间运行、大规模并行、高度结构化或对抗性的任务上会失效。
- 代理式偷懒（agentic laziness）：在复杂多部分任务中未完成就宣布交付，例如安全审查只处理了 50 项中的 35 项。
- 自我偏好偏差（self-preferential bias）：Claude 倾向于偏好自己的结果或发现，尤其在按标准验证或评判自己时。
- 目标漂移（goal drift）：多轮对话尤其是压缩（compaction）后逐渐偏离原始目标；每次摘要都有损失，边界要求或“不要做 X”这类约束会丢失。
- 工作流通过编排各自拥有独立上下文、目标聚焦而隔离的子代理来对抗这些问题。

### 6. 动态工作流与静态工作流

- 此前用户可以用 Claude Agent SDK 或 \`claude -p\` 协调多个 Claude Code 实例，搭建静态工作流。
- 静态工作流必须对所有边界情况都成立，因此通常更通用；借助 Claude Opus 4.8 与动态工作流，Claude 已足够聪明，能针对你的具体用例编写量身定制的 harness。
- 图 B 提出的问题是“是否应把结账服务迁移到新的供应商”。静态 harness 的做法是执行五次网络搜索、抓取结果、验证，再汇总成一份通用的研究报告。
- 面对同一问题，动态工作流会去读计费代码、逐项比对功能与新供应商文档、按真实交易量算价、安排一个唱反调者，最后给出具体建议。
- 图 B 的要点是：静态 harness 对每个问题都跑同一套步骤，动态工作流则按眼前这个问题的形状来塑造自己。

### 7. 使用动态工作流时的有用模式

- 可以直接让 Claude 创建工作流，或使用触发词 \`ultracode\` 确保 Claude Code 创建工作流。
- 建立对工作流运作方式的心智模型，有助于判断何时使用、以及如何通过提示词引导 Claude。
- Claude 构建工作流时会组合使用几种常见模式：分类并执行、扇出并综合、对抗式验证、生成并筛选、锦标赛、循环直到完成。

### 8. 分类并执行

- 用一个分类器代理判断任务类型，再据此路由到不同的代理或行为。
- 也可以在末尾使用分类器来决定输出。

### 9. 扇出并综合

- 把任务拆成许多更小的步骤，每步由一个代理处理，再综合这些结果。
- 适用于步骤数量庞大，或每一步需要各自干净的上下文以避免相互干扰、交叉污染的情形。
- 综合步骤是一道屏障（barrier）：等所有扇出代理完成后，再把它们的结构化输出合并成一个结果。

### 10. 对抗式验证

- 对每一个生成的代理，再启动一个独立代理，依据评分标准或条件对其输出做对抗式验证。

### 11. 生成并筛选

- 针对一个主题生成若干想法，再按评分标准或验证来筛选。
- 去除重复项，只返回质量最高、经过测试的想法。

### 12. 锦标赛

- 不拆分工作，而是让代理们在同一任务上竞争。
- 启动 N 个代理，各自用不同方法尝试同一任务。
- 由提示词或模型借助评审代理两两比较结果，直到选出胜者。

### 13. 循环直到完成

- 适用于工作量未知的任务：循环生成代理直到满足停止条件（没有新发现，或日志中不再有错误），而不是跑固定轮数。

### 14. 用例概览

- 作者建议创造性地思考何时、如何让 Claude Code 生成动态工作流。
- 作者发现工作流有时对非技术性工作甚至更有用。

### 15. 迁移与重构

- Bun 用工作流完成了从 Zig 到 Rust 的重写；细节见 Jarred 的帖子，或参考百万行级代码库上的 AI 代码迁移实践。
- 关键是把任务拆成需要逐一处理的一系列步骤，例如调用点、失败测试、模块等。
- 为每个修复在 worktree 中启动子代理执行修复，再由另一个代理对抗式审查后合并。
- 可考虑让代理避免使用资源密集的命令，以便在机器资源不耗尽的前提下最大化并行。

### 16. 深度研究

- Claude Code 内的 \`/deep-research\` 技能使用动态工作流：扇出网络搜索、抓取来源、对抗式验证其主张，并综合成带引用的报告。
- 这类研究不限于网络搜索，也可让 Claude 从 Slack 上下文汇编状态报告，或深入探索代码库研究某个功能如何运作。

### 17. 深度验证

- 若有一份报告需要核对并溯源其中每条事实主张，可生成工作流：由一个代理找出全部事实主张，再为每条主张启动子代理详细核查。
- 还可以再加一个验证代理去检查核查代理，确认其来源质量足够高。

### 18. 排序

- 可用于按某种定性标准排序列表，例如按缺陷严重度给支持工单排序。
- 但在一个提示词里排 1000 多行，质量会下降且放不进上下文。
- 替代做法是锦标赛、成对比较代理组成的流水线（比较性判断比绝对打分更可靠），或先并行分桶排名再合并。
- 每次比较由独立代理完成，确定性的循环持有对阵表，只有当前排序留在上下文中。

### 19. 记忆与规则遵循

- 如果某些规则即使写进 \`CLAUDE.md\` 也常被漏掉，可创建工作流，用验证代理逐条检查规则，每条规则配一个验证代理。
- 增加一个怀疑者（skeptic）人格的子代理复核这些标记，有助于避免过多误报。
- 反向也成立：挖掘近期会话与代码评审意见中反复出现的纠正，用并行代理聚类，对每个候选项做对抗式验证（这条规则能否防止一次真实错误），再把幸存者提炼回 \`CLAUDE.md\`。

### 20. 根因调查

- 调试最好先提出多个相互独立的假设再逐一检验，但只用单一上下文窗口时 Claude 会受自我偏好偏差影响。
- 工作流通过启动从互不相交证据中提出假设的代理，在结构上避免这一点，例如分别处理日志、文件、数据的独立代理。
- 每个假设还可接受一组验证者与反驳者的检验。
- 这不仅用于代码，也用于销售（三月销量为何下滑）、数据工程（这条管道为何失败）等任何复盘场景。

### 21. 大规模分诊

- 每个团队都有支持队列、缺陷报告等人力无法完全处理的积压事项。
- 分诊工作流会对每一项分类、与已有记录去重并采取行动，例如尝试修复或升级给人类。
- 隔离（quarantine）是有用模式：禁止读取不受信公开内容的代理执行高权限操作，高权限操作交给负责依信息行动的代理完成。
- 分诊工作流可与 \`/loop\` 搭配，让 Claude 持续执行。

### 22. 探索与品味

- 在探索不同解决方案时工作流很有用，尤其当选择基于品味（如设计、命名）并适合用评分标准衡量时。
- 可以让 Claude 探索一批方案，并给评审代理一份“好方案长什么样”的评分标准；评审代理认为满足条件时任务完成。
- 方案也可以依据评分标准通过锦标赛来排序或选出。

### 23. 评测

- 对特定任务可做轻量评测：在 worktree 中启动独立代理，再启动比较代理，按评分标准对比并给具体输出打分。
- 例如按特定标准评测并改进你创建的一个技能。

### 24. 模型与智能级别路由

- 可创建一个针对自身任务调优的分类器代理，由它决定使用哪个模型。
- 当任务会涉及大量工具调用时，执行前先做调研有助于选出最合适的模型。
- 例如“解释 auth 模块如何工作”的最佳模型取决于 auth 模块的文件数量与代码库形态；分类器代理可先调研，再按预期复杂度路由到 Sonnet 或 Opus。

---
来源：LearnMap · 学径（https://oplearnx.com）
