GitHub HydraFusion:编程智能体开始在运行时选择“怎样解决”

以前谈模型路由,通常是在几个模型之间选一个:简单问题交给便宜模型,复杂问题交给更强模型。9 月 4 日,GitHub 介绍了 Project HydraFusion,把选择范围又向前推进了一层:编程智能体不只选择“用哪个模型”,还会在运行时选择“用什么流程解决”。

HydraFusion 是 GitHub Copilot 中的研究预览。它会先理解任务,再在单模型、级联和批评修订等执行模式之间做选择,必要时调用多个模型完成一次任务。GitHub 公布的受控离线评测显示,经过调优的 HydraFusion 配置在不同基准上相对 Claude Opus 5 的预估成本降低了 36% 至 67%,但质量并非每个基准都更高。这个结果值得关注,恰恰是因为它把重点从“某个模型分数最高”转向了“怎样组织一次完整执行”。

背景:模型选择已经不够描述一次编码任务

一个真实的编码任务往往不是一问一答。智能体需要阅读仓库、理解约束、修改文件、运行测试,再根据失败信息继续修正。不同任务的难点也不一样:有些只需要一次直接生成,有些适合先让快速模型给出草稿,有些则值得让另一个模型独立检查后再修改。

如果所有请求都交给最强模型,质量可能比较稳定,但成本和延迟会一起上升。如果所有请求都交给便宜模型,又容易在跨文件修改、调试和边界条件上失手。简单的“按问题分类选模型”只能处理第一层选择,无法回答下面这些问题:

  • 这次任务是否值得再做一次独立检查?
  • 草稿质量不够时,应当升级到更强模型,还是让原模型修订?
  • 多调用一次模型带来的收益,是否值得额外成本和等待?

HydraFusion 把这些问题视为执行计划问题。它的目标不是永远调用更多模型,而是在预计能达到质量要求的前提下,选择复杂度最低的工作流。

HydraFusion 的三种执行模式

GitHub 目前公开了三种基本模式。它们不是三个需要开发者手动编排的 API,而是 HydraFusion 在运行时可选择的执行结构。

1. Single:一个模型直接完成

Single 模式只选择一个模型处理任务,适合目标明确、上下文较小、一次完成概率较高的请求。它的成本和延迟最容易预测,也是其他模式的基线。

2. Cascade:先快后强,按质量门槛升级

Cascade 模式先让更高效的模型生成方案,再由质量门判断是否接受。如果草稿没有达到要求,流程才升级到更强的模型。

1
2
3
4
5
6
7
8
任务


高效模型生成草稿

├── 达到质量门槛 ──> 返回结果

└── 未达到门槛 ──> 更强模型接管

它的关键不在“先用便宜模型”这句话,而在质量门。没有可靠的质量判断,级联就只是把一次调用变成两次调用,成本增加了,错误却未必减少。对于代码任务,测试结果、补丁是否完整、是否触碰了无关文件,都可以成为质量信号的一部分。

3. Critique:独立检查后再修订

Critique 模式先由一个模型生成结果,再让另一个独立的、只读的批评步骤检查同一结果,最后让起草模型修订一次。这个结构类似代码评审,但评审者不是直接修改仓库,而是提供反馈。

把批评步骤设为只读很重要。一个检查模型如果能同时修改文件,就很难判断最终变化来自原始解法还是评审过程,也可能在检查阶段引入新的副作用。独立评审的意义正在于隔离观察和修改。

三种模式可以简单表示为:

模式 额外步骤 适合解决的问题 主要代价
Single 目标清楚、一次完成的任务 对复杂错误缺少复核
Cascade 质量门和可能的升级 大部分简单任务,少量复杂任务 质量门判断错误会影响收益
Critique 独立检查和一次修订 需要减少遗漏的代码修改 多一次或多几次模型调用

研究预览如何使用

GitHub 表示,HydraFusion 目前可以在 GitHub Copilot 计划中通过 Copilot CLI 的 /experimental 入口试用。基本步骤是:

1
2
3
/experimental on
/model
选择 HydraFusion (Research Preview)

官方建议从一个范围明确、但确实需要多步处理的编码任务开始体验。HydraFusion 使用的模型按各自的标准模型费率计费,实际费用取决于它在一次任务中调用了哪些模型以及调用了多少次。研究预览中的模型池、工作流、名称和产品行为都可能发生变化,因此不应把当前结果直接当成长期 SLA 或固定成本承诺。

真正难的是编排控制,不是画出流程图

多模型工作流看起来像把几个模型串起来,但要让它在代码仓库里可靠运行,必须同时处理成本、权限、状态和失败。GitHub 在介绍 HydraFusion 时列出了五项运行原则,这些原则也适用于自行构建的复合智能体。

完整记录每一段成本

一次任务的成本不能只记录最后返回结果的模型。草稿、批评、修订、升级、重试和回退都属于同一次执行。若只按请求记录总价,团队会知道“这次很贵”,却不知道贵在质量门触发、重复重试,还是某个模型频繁升级。

更可用的账单维度应该至少包括:任务 ID、执行模式、每一段使用的模型、输入输出 token、耗时、重试次数和最终结果。只有这样,路由策略才有可能被真正优化。

给每一段设置时间和取消边界

级联和批评流程天然比单次调用更慢。每个工作流步骤都需要明确的超时、取消和最大调用次数,否则一个失败的质量门可能不断触发升级,最后把成本和延迟一起推高。

这也影响用户体验。用户取消任务后,后续的批评、修订或回退不应继续运行。取消信号必须能穿过整个执行图,而不能只停止最外层的界面等待。

把检查步骤放进隔离上下文

批评模型应当在只读、无工具或受限工具的上下文里工作,求解模型再使用共享工作区和正常的权限控制。这样做的目的不是让模型“更聪明”,而是让评审结论不会和评审者自己的修改混在一起。

对于涉及密钥、生产配置和内部文档的仓库,隔离还可以减少不必要的数据暴露。哪些上下文能被草稿模型看到,哪些只能提供给只读检查器,都应该成为执行计划的一部分。

验证失败时不要应用半成品补丁

如果工作流被取消、校验失败或中途异常,系统不应把已经生成的一部分补丁直接写入仓库。HydraFusion 把“失败时不应用补丁”作为安全原则,避免一个未完成的复合流程把半成品带进开发分支。

对普通 Agent 来说,这意味着修改文件之前应保留可回滚边界,应用补丁之后再统一做语法检查、测试和差异审查。模型说“完成”不是提交条件,验证通过才是。

执行前验证路由定义和模型可用性

运行时编排依赖多个外部条件:工作流定义是否合法,模型绑定是否存在,回退路径是否可用,当前计划是否仍然有权限执行。把这些问题推迟到任务中途,用户看到的往往只是一次模糊的“Agent 失败”。

执行前做一次计划校验,可以把配置错误和模型故障分开,也能在模型临时不可用时选择明确的降级策略。

评测结果应该怎样读

GitHub 在 TerminalBench 2.1、DeepSWE、CheckpointBench 以及基于真实 Copilot 会话的内部基准上,对 HydraFusion 和其他模型进行了受控离线评测。对比使用 Claude Opus 5 和 GPT-5.6 Sol 等模型作为基线,所有策略使用相同的任务输入、工具、执行限制、价格假设和评分条件;成本还包括草稿、批评、修订、升级、重试和回退。

官方给出的结果如下。质量分数是相对 Opus 5 的变化,成本是完整工作流的预估成本变化:

基准 成本变化 质量变化
TerminalBench 2.1 降低 67% 提高 4.9 个百分点
DeepSWE 降低 36% 降低 1.5 个百分点
CheckpointBench 降低 65% 降低 0.1 个百分点

这张表最容易被误读成“HydraFusion 便宜且质量更高”。事实更接近于:在 GitHub 选择的模型池、工作流配置、价格假设和离线任务上,最佳调优配置展示了很好的质量成本折中。DeepSWE 的质量下降说明,成本优势并不自动等于任务能力更强;研究预览还需要通过真实开发者工作负载继续验证。

另一个值得注意的细节是,GitHub 不只报告单一模型的调用价格,而是把每个工作流环节都计入成本。这种计算方式更接近企业真正关心的账单,也提醒我们:复合智能体的优化目标应该是“完成一个可验证任务的总成本”,不能只比较某个模型每百万 token 的单价。

它和普通模型路由有什么区别

普通模型路由解决的是选择问题:根据任务特征把请求发给模型 A、B 或 C。HydraFusion 多解决了一层执行问题:一次任务是否需要草稿、升级、独立批评和修订,以及这些步骤应当如何连接。

两者的区别可以用一个简单的例子说明。普通路由可能把“修改一个跨文件 bug”发给最强模型;HydraFusion 可能先让高效模型处理,再根据测试和质量信号决定是否升级,或者安排一个只读模型检查补丁。最终选择的不是一个孤立模型,而是一段有状态的执行图。

这也是它更难工程化的原因。路由策略需要了解工具权限、仓库状态、测试结果、价格和取消信号。模型越多,流程越复杂;流程越复杂,越需要明确的状态机和可观测性。

对开发团队的实践启示

先记录总成本,再谈“智能路由”

如果团队准备自己实现类似的多模型编排,第一步应该是记录每个任务的完整执行轨迹:调用了谁、调用几次、在哪一步升级、最终是否通过测试。没有这条数据,所谓“便宜模型先行”只能停留在直觉层面。

把质量门设成可验证信号

代码任务中的质量门可以包括测试是否通过、静态检查是否新增问题、补丁是否只触碰目标文件、是否完成用户要求的验收项。模型自评可以作为信号,但不应是唯一信号。一个能被测试和差异审查验证的门槛,才有机会支撑级联流程。

评审者应当与修改权限隔离

独立检查模型不必拥有写文件和执行任意命令的能力。让它只读取必要上下文并返回结构化意见,再由主执行器决定是否修订,可以减少评审阶段的副作用,也便于审计“谁提出了什么意见、谁应用了什么变化”。

先把失败路径设计好

复合 Agent 的成功路径很容易展示,真正决定可用性的却是取消、超时、模型不可用、测试失败和回退。每条路径都应该有明确结果:保留原状、回滚临时改动、转交人工,或返回可重试状态,而不是把一个半完成目录留给用户。

用自己的任务集复核公开基准

TerminalBench、DeepSWE 和 CheckpointBench 可以帮助比较方向,但不能替代团队自己的任务集。真实项目的语言、仓库结构、测试耗时、内部依赖和权限边界都可能不同。上线前至少应使用脱敏后的历史任务做离线回放,再进行小范围、可观测的在线试用。

结语

HydraFusion 的新意不只在于一次 Copilot 模型更新,而在于它把“模型能力”与“执行结构”拆开了。一个任务是否值得批评、升级和修订,和应该由哪个模型完成,是两个不同层次的决策。

这条路的收益很诱人:简单任务少走几步,复杂任务在关键位置增加检查,整体成本还有机会下降。但它的前提也很具体:每一段调用可计量,每一次升级有边界,检查过程与修改权限隔离,失败时不留下半成品。对开发团队来说,这些工程约束比“模型会自动选择”更值得先实现。

HydraFusion 仍然是研究预览,公开评测也有明确的任务集和假设条件。把它当作一个值得观察的架构信号,比把一张成本对比表当作普遍结论更稳妥:下一阶段的编程智能体,竞争点可能不只是模型本身,还包括谁能把多个模型组织成一条可验证、可取消、算得清的工作流。

参考来源

文章目录
  1. 1. 背景:模型选择已经不够描述一次编码任务
  2. 2. HydraFusion 的三种执行模式
    1. 2.1. 1. Single:一个模型直接完成
    2. 2.2. 2. Cascade:先快后强,按质量门槛升级
    3. 2.3. 3. Critique:独立检查后再修订
  3. 3. 研究预览如何使用
  4. 4. 真正难的是编排控制,不是画出流程图
    1. 4.1. 完整记录每一段成本
    2. 4.2. 给每一段设置时间和取消边界
    3. 4.3. 把检查步骤放进隔离上下文
    4. 4.4. 验证失败时不要应用半成品补丁
    5. 4.5. 执行前验证路由定义和模型可用性
  5. 5. 评测结果应该怎样读
  6. 6. 它和普通模型路由有什么区别
  7. 7. 对开发团队的实践启示
    1. 7.1. 先记录总成本,再谈“智能路由”
    2. 7.2. 把质量门设成可验证信号
    3. 7.3. 评审者应当与修改权限隔离
    4. 7.4. 先把失败路径设计好
    5. 7.5. 用自己的任务集复核公开基准
  8. 8. 结语
  9. 9. 参考来源
|