博客进阶
为每个任务配一套执行框架:Claude Code 中的动态工作流
A harness for every task: dynamic workflows in Claude Code
claude.dev 博客文章(作者 Thariq Shihipar、Sid Bidasaria,约 11 分钟阅读),说明 Claude Code 新增的动态工作流功能:模型可按任务即时编写并编排自己的多智能体执行框架(harness)。文中包含示例提示、动态与静态工作流的对比、常用模式、使用场景、不宜使用的情形以及构建建议。
- 分级
- 值得看
- 收录时间
- 2026-10-28
中文精读
原文约 3,109 词 · 24 节
开篇与文章信息
- 文章栏目为 Agent,标题《为每个任务定制的 harness:Claude Code 中的动态工作流》(dynamic workflows)。
- 作者 Thariq Shihipar 与 Sid Bidasaria,2026 年 6 月 2 日发布,阅读时长约 11 分钟。
为每个任务定制的 harness
- 上周 Claude Code 发布了动态工作流,Claude 现在能按当前任务即时编写自己的 harness(agentic harness)。
- 默认的 Claude Code harness 是为编码设计的,但许多任务与编码相似,因此也适用于其他类型。
- 仍有一些任务类别需要专门叠加自定义 harness 才能达到最佳表现,如 Research、安全分析、agent teams、Code Review。
- 工作流让这类 harness 能基于 Claude Code 动态创建,从而更原生地解决问题,且可以与他人共享复用。
- 作者指出最佳实践仍在演进:动态工作流通常消耗更多 token,最适合复杂、高价值的任务。
示例提示词
- 关于排查间歇性失败:让工作流复现 1/50 概率失败的测试,提出竞争性理论,直到有一个理论通过证据检验。
- 关于记忆挖掘:让工作流检视最近 50 次会话,找出反复出现的纠正,整理成 `CLAUDE.md` 规则。
- 关于信息挖掘:让工作流翻查 Slack 的 #incidents 频道近六个月内容,找无人开票的重复根因。
- 关于评审视角:让不同 agent 从投资人、客户、竞争对手角度拆解商业计划书。
- 关于排序与筛选:对 80 份简历按后端岗位排序并复核前十,用 AskUserQuestion 工具先问出评分标准。
- 关于创意选择:为 CLI 工具头脑风暴命名,用锦标赛选出前三;另有重命名模型、核对博客技术声明等例子。
动态工作流如何运作
- 动态工作流执行一个 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 自行选择所需智能级别与隔离程度。
- 工作流被中断(如用户操作或关闭终端)后,恢复会话即可从断点继续。
为什么需要动态工作流
- 默认 harness 要在同一上下文窗口内既规划又执行,对许多编码任务有效,但在长时间运行、大规模并行、高度结构化或对抗性的任务上会失效。
- 代理式偷懒(agentic laziness):在复杂多部分任务中未完成就宣布交付,例如安全审查只处理了 50 项中的 35 项。
- 自我偏好偏差(self-preferential bias):Claude 倾向于偏好自己的结果或发现,尤其在按标准验证或评判自己时。
- 目标漂移(goal drift):多轮对话尤其是压缩(compaction)后逐渐偏离原始目标;每次摘要都有损失,边界要求或“不要做 X”这类约束会丢失。
- 工作流通过编排各自拥有独立上下文、目标聚焦而隔离的子代理来对抗这些问题。
动态工作流与静态工作流
- 此前用户可以用 Claude Agent SDK 或 `claude -p` 协调多个 Claude Code 实例,搭建静态工作流。
- 静态工作流必须对所有边界情况都成立,因此通常更通用;借助 Claude Opus 4.8 与动态工作流,Claude 已足够聪明,能针对你的具体用例编写量身定制的 harness。
- 图 B 提出的问题是“是否应把结账服务迁移到新的供应商”。静态 harness 的做法是执行五次网络搜索、抓取结果、验证,再汇总成一份通用的研究报告。
- 面对同一问题,动态工作流会去读计费代码、逐项比对功能与新供应商文档、按真实交易量算价、安排一个唱反调者,最后给出具体建议。
- 图 B 的要点是:静态 harness 对每个问题都跑同一套步骤,动态工作流则按眼前这个问题的形状来塑造自己。
使用动态工作流时的有用模式
- 可以直接让 Claude 创建工作流,或使用触发词 `ultracode` 确保 Claude Code 创建工作流。
- 建立对工作流运作方式的心智模型,有助于判断何时使用、以及如何通过提示词引导 Claude。
- Claude 构建工作流时会组合使用几种常见模式:分类并执行、扇出并综合、对抗式验证、生成并筛选、锦标赛、循环直到完成。
分类并执行
- 用一个分类器代理判断任务类型,再据此路由到不同的代理或行为。
- 也可以在末尾使用分类器来决定输出。
扇出并综合
- 把任务拆成许多更小的步骤,每步由一个代理处理,再综合这些结果。
- 适用于步骤数量庞大,或每一步需要各自干净的上下文以避免相互干扰、交叉污染的情形。
- 综合步骤是一道屏障(barrier):等所有扇出代理完成后,再把它们的结构化输出合并成一个结果。
对抗式验证
- 对每一个生成的代理,再启动一个独立代理,依据评分标准或条件对其输出做对抗式验证。
生成并筛选
- 针对一个主题生成若干想法,再按评分标准或验证来筛选。
- 去除重复项,只返回质量最高、经过测试的想法。
锦标赛
- 不拆分工作,而是让代理们在同一任务上竞争。
- 启动 N 个代理,各自用不同方法尝试同一任务。
- 由提示词或模型借助评审代理两两比较结果,直到选出胜者。
循环直到完成
- 适用于工作量未知的任务:循环生成代理直到满足停止条件(没有新发现,或日志中不再有错误),而不是跑固定轮数。
用例概览
- 作者建议创造性地思考何时、如何让 Claude Code 生成动态工作流。
- 作者发现工作流有时对非技术性工作甚至更有用。
迁移与重构
- Bun 用工作流完成了从 Zig 到 Rust 的重写;细节见 Jarred 的帖子,或参考百万行级代码库上的 AI 代码迁移实践。
- 关键是把任务拆成需要逐一处理的一系列步骤,例如调用点、失败测试、模块等。
- 为每个修复在 worktree 中启动子代理执行修复,再由另一个代理对抗式审查后合并。
- 可考虑让代理避免使用资源密集的命令,以便在机器资源不耗尽的前提下最大化并行。
深度研究
- Claude Code 内的 `/deep-research` 技能使用动态工作流:扇出网络搜索、抓取来源、对抗式验证其主张,并综合成带引用的报告。
- 这类研究不限于网络搜索,也可让 Claude 从 Slack 上下文汇编状态报告,或深入探索代码库研究某个功能如何运作。
深度验证
- 若有一份报告需要核对并溯源其中每条事实主张,可生成工作流:由一个代理找出全部事实主张,再为每条主张启动子代理详细核查。
- 还可以再加一个验证代理去检查核查代理,确认其来源质量足够高。
排序
- 可用于按某种定性标准排序列表,例如按缺陷严重度给支持工单排序。
- 但在一个提示词里排 1000 多行,质量会下降且放不进上下文。
- 替代做法是锦标赛、成对比较代理组成的流水线(比较性判断比绝对打分更可靠),或先并行分桶排名再合并。
- 每次比较由独立代理完成,确定性的循环持有对阵表,只有当前排序留在上下文中。
记忆与规则遵循
- 如果某些规则即使写进 `CLAUDE.md` 也常被漏掉,可创建工作流,用验证代理逐条检查规则,每条规则配一个验证代理。
- 增加一个怀疑者(skeptic)人格的子代理复核这些标记,有助于避免过多误报。
- 反向也成立:挖掘近期会话与代码评审意见中反复出现的纠正,用并行代理聚类,对每个候选项做对抗式验证(这条规则能否防止一次真实错误),再把幸存者提炼回 `CLAUDE.md`。
根因调查
- 调试最好先提出多个相互独立的假设再逐一检验,但只用单一上下文窗口时 Claude 会受自我偏好偏差影响。
- 工作流通过启动从互不相交证据中提出假设的代理,在结构上避免这一点,例如分别处理日志、文件、数据的独立代理。
- 每个假设还可接受一组验证者与反驳者的检验。
- 这不仅用于代码,也用于销售(三月销量为何下滑)、数据工程(这条管道为何失败)等任何复盘场景。
大规模分诊
- 每个团队都有支持队列、缺陷报告等人力无法完全处理的积压事项。
- 分诊工作流会对每一项分类、与已有记录去重并采取行动,例如尝试修复或升级给人类。
- 隔离(quarantine)是有用模式:禁止读取不受信公开内容的代理执行高权限操作,高权限操作交给负责依信息行动的代理完成。
- 分诊工作流可与 `/loop` 搭配,让 Claude 持续执行。
探索与品味
- 在探索不同解决方案时工作流很有用,尤其当选择基于品味(如设计、命名)并适合用评分标准衡量时。
- 可以让 Claude 探索一批方案,并给评审代理一份“好方案长什么样”的评分标准;评审代理认为满足条件时任务完成。
- 方案也可以依据评分标准通过锦标赛来排序或选出。
评测
- 对特定任务可做轻量评测:在 worktree 中启动独立代理,再启动比较代理,按评分标准对比并给具体输出打分。
- 例如按特定标准评测并改进你创建的一个技能。
模型与智能级别路由
- 可创建一个针对自身任务调优的分类器代理,由它决定使用哪个模型。
- 当任务会涉及大量工具调用时,执行前先做调研有助于选出最合适的模型。
- 例如“解释 auth 模块如何工作”的最佳模型取决于 auth 模块的文件数量与代码库形态;分类器代理可先调研,再按预期复杂度路由到 Sonnet 或 Opus。