
Claude Code 刚刚解锁了一项新能力叫动态工作流。这是 Claude 工程师在 Opus 4.8 发布时就兴奋预告的功能并表示要写一篇主题文章。现在文章来了。Claude 能自己写 Harness编排框架按需定制当场生成当场执行。 以前只能用一套通用模板跑任务现在 Claude 可以针对你的具体问题现场搭建一个专属的 Agent智能代理编排方案。 Claude 从只会自己干活变成了会给自己搭班子干活。 这篇文章拆解动态工作流的运转机制、编排模式和实战用法帮你在复杂任务上把 Claude Code 用到极致。动态工作流怎么运转上周Anthropic 发布了 Claude Code 的动态工作流功能。在此之前Claude Code 的默认 Harness 专门为编程任务设计适用于很多看起来像编程的任务但在几类特定任务上必须额外定制 Harness 才能达到最佳表现比如研究、安全分析、Agent 团队协作、代码审查。 动态工作流的出现让 Claude 可以直接在 Claude Code 内部创建定制化 Harness更原生态地处理这些任务还能把工作流分享给别人复用。这里先放几个提示词示例感受一下动态工作流能做什么。“这个测试大概50次才失败1次设一个工作流来复现。提出多个竞猜理论一个理论被证据推翻才能停。”“用工作流跑我最近50个会话挖出我反复做的修正把反复出现的变成 CLAUDE.md 规则。”“用工作流翻 Slack #incidents 频道过去6个月的记录找没人提过工单的反复出现的根因。”“拿我的商业计划书跑一个工作流让不同的 Agent 分别从投资人、客户和竞争对手的视角来撕。”“这里有80份简历用工作流给后端岗位排序前10名做二次校验用 AskUserQuestion 工具面试我确定评分标准。”“给这个 CLI 工具起名用工作流头脑风暴一堆候选跑锦标赛选出前3。”“用工作流把 User 模型重命名为 Account全项目范围替换。”“用工作流逐条验证我博客草稿里的技术声明一条都不许错。”这些示例只是冰山一角。往下看技术细节你就知道怎么构造更好的提示词了。动态工作流的底层执行方式很直接运行一个 JavaScript 文件文件里调用几个特殊函数来生成和协调 Subagent子代理。上图展示了动态工作流的核心函数。除了这几个特殊函数动态工作流还支持标准 JavaScript 内置功能比如 JSON、Math、Array方便处理数据。有几个细节值得留意。动态工作流可以决定每个 Agent 使用哪个模型也可以决定 Subagent 是否在自己的 Worktree工作树中运行相当于 Claude 自己选择算力等级和隔离程度。 工作流中断后比如用户主动操作或关闭终端重新恢复会话时工作流会从断点继续不用从头再来。那为什么需要动态工作流用默认的 Claude Code Harness 做任务时规划和执行共用同一个上下文窗口。对很多编程任务来说这样做效率不错但在长时间运行、大规模并行、结构化程度高或需要对抗性验证的任务上就会出问题。Claude 在单个上下文窗口中处理复杂任务越久越容易陷入几种典型的失败模式。Agent Laziness代理懒惰Claude 在处理复杂多部分任务时提前收工宣布完成实际上只做了一部分。比如安全审查有50个检查项只完成了35个就停了。Self-preferential Bias自我偏好偏差Claude 倾向于认可自己的结果和发现在被要求按标准验证或评判自己的工作时尤为明显。Goal Drift目标漂移经过多轮对话后Claude 对原始目标的忠实度逐渐下降压缩上下文之后更严重。每一次摘要都是有损的边界情况的需求或“不要做某事”的约束可能在压缩过程中丢失。动态工作流通过编排多个独立的 Claude Subagent 来应对这些问题。每个 Subagent 拥有自己的上下文窗口目标聚焦、互相隔离。一个 Subagent 懒惰了其他 Subagent 不受影响一个 Subagent 偏爱自己另一个 Subagent 专门挑它的错每个 Subagent 的目标在启动时就定好漂移的空间被压缩到最小。有人可能用过静态工作流通过 Claude Agent SDK 或 claude -p 来协调多个 Claude Code 实例。静态工作流的问题是它必须覆盖所有边界情况所以通常更通用、更泛化。配合 Claude Opus 4.8 和动态工作流Claude 已经有能力为你的具体场景量身定制 Harness不再需要你手动预设所有分支。上图对比了静态工作流和动态工作流的核心区别。静态工作流是预先写好的固定流程动态工作流由 Claude 根据任务现场生成灵活度完全不在一个量级。六种编排模式你可以直接让 Claude 创建工作流也可以用触发词 ultracode 来确保 Claude Code 创建工作流。但脑子里有清晰的模式认知才知道什么时候该用、怎么通过提示词微调 Claude 的行为。Claude 构建工作流时通常会组合使用以下几种模式。Classify-and-act分类后行动先用一个分类 Agent 判断任务类型再根据类型路由到不同的 Agent 或行为。也可以在最后一步用分类器决定输出方式。核心理念是把“判断”和“执行”拆开各司其职。Fan-out-and-synthesize扇出后综合把大任务拆成很多小步骤每个步骤跑一个 Agent最后综合所有结果。当步骤数量大或者每个步骤需要独立的干净上下文窗口来避免交叉干扰时效果特别好。综合步骤是一个同步屏障等待所有扇出 Agent 完成后再把结构化输出合并成一个结果。Adversarial Verification对抗性验证对每个生成的 Agent再起一个独立的 Agent 来对抗性地验证其输出是否符合标准或准则。自己查自己容易放过问题让另一个 Agent 来挑错更靠谱。Generate-and-filter生成后过滤先就某个主题生成一批想法再按标准过滤、验证、去重只留下经过测试的高质量结果。广撒网、精筛选适合需要创意又有质量要求的场景。Tournament锦标赛不做任务拆分让 Agent 在同一任务上竞争。起 N 个 Agent各自用不同方法解决同一问题然后由评判 Agent 逐对比较选出最终胜者。竞争带来更优解。Loop until done循环直到完成对于工作量未知的任务循环启动 Agent 直到满足停止条件比如没有新发现、日志里没有新错误。比固定轮次更灵活任务完成就停不浪费算力。六种模式彼此独立又互相关联Claude 经常把多种模式组合在一起形成一个复合编排方案。理解了这些基本模式你就能判断什么场景该用什么组合也更能通过提示词引导 Claude 朝你期望的方向编排。实战场景拆解理解了模式之后看几个具体的用例感受动态工作流在各种场景下的用法。迁移与重构。Bun 从 Zig 重写到 Rust 就用了工作流Jarred 在 X 上分享了具体过程。关键思路是把任务拆解为一系列需要操作的步骤比如调用点、失败的测试、模块每个修复点起一个 Subagent 在 Worktree 中修改再起另一个 Agent 做对抗性审查最后合并。 建议告诉 Agent 不要用资源密集型命令这样可以在机器上最大化并行不把资源跑满。工作流在非技术工作上有时效果更好值得多尝试。深度研究。Claude Code 内部发布了一个深度研究技能 /deep-research用的就是动态工作流。具体来说扇出式搜索网页、抓取来源、对抗性验证声明、综合出一份带引用的报告。 整个流程走下来每个环节由独立的 Agent 负责上下文干净结果可信。深度研究的应用不限于网页搜索也可以让 Claude 从 Slack 里汇总状态报告或者深入代码库研究某个功能的实现方式。深度验证。方向反过来你有一份报告想逐一核查每个事实声明的来源。可以建一个工作流让一个 Agent 识别所有事实声明再为每个声明起一个 Subagent 逐一核查。还可以再加一层验证 Agent检查来源 Agent 提供的来源是否高质量。多层验证层层把关。排序。你可能有一批数据项想按某种定性指标排序比如按 bug 严重程度对工单排序。一次排序 1000 条以上质量会下降上下文也装不下。解决办法是跑锦标赛用成对比较 Agent 组成比较流水线成对比较比绝对打分更可靠。也可以分桶并行排序再合并。每次比较交给独立的 Agent确定性的循环结构负责管理赛程只有当前排位留在上下文里。记忆与规则遵从。如果你有一些规则发现 Claude 总是遗漏或执行不好即使写进了 CLAUDE.md 也无济于事可以创建一个工作流列出所有规则每条规则由一个独立的验证 Agent 检查。再起一个怀疑者角色的 Subagent 审查规则本身是否合理避免产生太多误报。 反过来也行挖掘最近的会话和代码审查评论找出你反复做的修正用并行 Agent 聚类对抗性验证每个候选规则这条规则能不能防止一个真实错误最后把存活的规则提炼写回 CLAUDE.md。根因调查。调试最好的方式是提出多个独立假设然后逐一测试但单上下文窗口下Claude 容易陷入自我偏好偏差。工作流可以结构性地防止这个问题起多个 Agent 从不同证据源生成假设比如分别看日志、文件和数据。每个假设再面对一组验证者和反驳者。用法远不止代码调试销售场景下查找销量下降原因数据工程中排查管道故障任何复盘都可以用。大规模分流。每个团队都有支持队列、bug 报告或其他积压事项人力无法全部处理。分流工作流对每条事项分类、与已有记录去重、执行操作可能是尝试修复也可能是升级给人工处理。一个有用的模式叫隔离区把读取不受信公开内容的 Agent 和执行高权限操作的 Agent 分开读内容的 Agent 不直接动手执行的 Agent 根据读取结果操作。分流工作流配合 /loop 可以让 Claude 持续执行。探索与品味。工作流在探索不同方案时很有用尤其是涉及品味的场景比如设计或命名有评分标准比纯感觉靠谱。让 Claude 探索一批方案给审查 Agent 一个评分标准标准达到了任务才算完成。方案也可以通过锦标赛来排序或筛选。评估。可以为特定任务跑轻量级 Eval评估在 Worktree 中起独立的 Agent 执行再起比较 Agent 对比并打分。比如评估和迭代你创建的技能是否满足特定标准。模型与算力路由。创建一个针对你的任务调优过的分类 Agent由它决定用哪个模型。当任务涉及大量工具调用提前研究再选模型会更高效。比如“解释认证模块怎么工作”这个任务最佳模型取决于认证模块有多少文件、代码库的结构如何分类 Agent 可以先做调研再根据预期复杂度路由到 Sonnet 或 Opus。边界与技巧工作流是新鲜事物能产生超出预期的结果但并非每个任务都需要。使用不当可能消耗大量 Token。创意性地用工作流拓展 Claude Code 的能力边界对常规编程任务先问自己一个问题真的需要更多算力吗大多数传统编程任务不需要5个审查员组成的评审团。关于提示词动态工作流的效果跟提示词质量直接相关。详细、具体的提示词结合上文提到的模式来描述产出最佳。工作流也不只是给大任务用的可以提示模型用“快速工作流”比如快速对抗性审查一个假设。搭配 /goal 和 /loop 使用。对于可重复执行的工作流比如分流、研究、验证配合 /loop 定期执行配合 /goal 设置硬性完成条件。Token 用量预算。可以给动态工作流设定明确的 Token 用量上限限制任务消耗。提示词里写“使用 1万 Token”就会设上限。保存与分享工作流。在工作流菜单中按 s 键可以保存。保存的工作流可以放在 ~/.claude/workflows 目录下也可以通过技能分发。通过技能分享工作流把 JavaScript 工作流文件放在技能文件夹中在 SKILL.MD 里引用。为了更灵活可以提示 Claude 把技能中的工作流视为模板而非必须原样执行的脚本。动态工作流是扩展 Claude Code 的一种新方式把它看作探索新用法的起点最佳实践还在持续涌现。 工作流的编排本质上是把一个大脑拆成多个专责大脑让每个大脑只干一件事情、只看一份上下文再用结构化的方式把它们的结果串起来。 拆开以后懒惰少了偏差少了漂移少了复杂任务上的表现显著提升。 你手头有什么任务是单次对话总搞不定、拆开就能分头攻克的试试工作流。参考资料https://claude.com/blog/a-harness-for-every-task-dynamic-workflows-in-claude-code