当前位置: 首页 > news >正文

技术速递|GitHub Copilot CLI 结合多模型能力提供“第二视角”

作者:Nick McKenna & Bartek Perz
排版:Alan Wang
了解 Rubber Duck 如何为 GitHub Copilot CLI 带来不同的思路与视角。

当你让一个编码智能体构建数据管道时,它未必会采用最优结构。但如果在执行方案之前,让它先获得“第二视角”呢?

今天,在 GitHub Copilot CLI 中,我们以实验模式引入Rubber Duck。它利用来自不同 AI 模型家族的第二个模型,作为独立评审者,在关键时刻对智能体的计划与执行进行评估与反馈。

为了捕捉不同类型的错误,引入不同视角至关重要。我们的评估显示,Claude Sonnet + Rubber Duck 能弥补 Sonnet 与 Opus 之间 74.7% 的性能差距,在处理复杂的多文件、长流程任务时表现更佳。你可以通过在 Copilot CLI 中使用/experimental来启用 Rubber Duck 及其他实验特性。

问题:自信的错误会被不断放大

当前的编码智能体通常遵循一个清晰的循环:分析任务 → 制定计划 → 实现 → 测试 → 迭代。这一流程强大且高效,但也存在盲点。早期(尤其是规划阶段)的决策,会成为后续所有工作的基础。一旦存在假设偏差或效率问题,就会逐步演变为依赖,等你发现时,往往已经不只是修复一个小错误那么简单。

运用自我反思机制,让智能体在推进任务前先审视自身的输出内容,是一种经过验证的有效方法。然而,模型对自身工作成果进行审核时,仍会受限于其自身的训练偏差:相同的数据来源、相同的训练方法,也意味着相同的盲点仍然存在。

Rubber Duck:引入第二种视角

Rubber Duck 是一个专注于评审的智能体,由与你当前 Copilot 会话“互补”的模型驱动。例如,当你选择 Claude 作为主调度模型时,Rubber Duck 会使用 GPT-5.4。在我们对 Rubber Duck 进行试验的同时,也在为编排器和 Rubber Duck 本身探索其他模型系列。Rubber Duck 的职责是核查主智能体的工作,并输出一份简短且高价值的问题清单,包括:

  • 主智能体可能忽略的细节

  • 值得质疑的假设

  • 需要考虑的边界情况

何时跨模型评审最有效?

我们在开源代码库中选取了规模庞大、难度较高且源自真实场景的编程问题,构建了 SWE-Bench Pro 基准测试集,并基于该数据集对 Rubber Duck 进行了评估。结果如下:

Claude Sonnet 4.6 搭配运行 GPT-5.4 的 Rubber Duck,其解决率接近单独运行的 Claude Opus 4.6,填补了 Sonnet 与 Opus 之间 74.7% 的性能差距。

我们发现,Rubber Duck 在处理复杂难题时助力更为显著,这类问题涉及 3 个以上文件,通常需要 70 个以上步骤才能解决。在这类问题上,Sonnet 搭配 Rubber Duck 的表现比 Sonnet 基准模型高出 3.8%;而在三次测试中筛选出的最难问题上,这一优势提升至 4.8%。以下是 Rubber Duck 所发现问题的几个示例:

  • 架构问题(OpenLibrary / 异步调度器):Rubber Duck 发现所设计的调度器在启动后会立即退出,导致没有任何任务被执行;即便修复该问题,其中一个被调度的任务本身也是一个无限循环。

  • **单行代码引发的严重漏洞(OpenLibrary / Solr)**Rubber Duck 发现一个循环在每次迭代时都会悄无声息地覆盖同一个dict键,导致四个 Solr 分面类别中有三个在每次搜索查询中被丢弃,且没有任何错误提示。

  • 跨文件冲突(NodeBB / 邮件确认):Rubber Duck 发现有三个文件都在读取同一个 Redis 键,而新代码已经不再向该键写入数据,导致确认界面和清理流程在部署后会悄然失效。

Rubber Duck 何时触发?

GitHub Copilot 可以自动调用 Rubber Duck,既可以主动触发,也可以在需要时被动触发;同时,用户也可以在任意时刻手动发起评审,让其对结果进行检查和优化。

对于复杂任务,GitHub Copilot 通常会在“反馈价值最高”的关键节点自动请求评审:

  • 制定计划之后:这是最关键的阶段,因为尽早发现不合理的决策,可以避免后续错误不断放大

  • 完成复杂实现之后:此时通过“第二双眼睛”审查复杂代码,有助于发现边界情况问题

  • 编写测试之后、执行测试之前:可以提前发现测试覆盖不足或断言错误,避免误以为“一切正常”

当智能体陷入循环或无法继续推进时,也会被动触发评审,通过咨询 Rubber Duck 来打破僵局。

作为用户,你可以在任何时候请求评审。Copilot 会调用 Rubber Duck,对反馈进行分析,并清晰展示修改内容及其原因。

在设计上,我们刻意让 Rubber Duck 低频但高价值地介入,只在最关键的时刻提供帮助,而不会打断整体工作流。对于技术细节感兴趣的用户:Rubber Duck 是通过 Copilot 现有的任务工具机制调用的,与其他子智能体使用相同的基础设施。

目前,Rubber Duck 已支持在模型选择器中作为“主调度模型”的所有 Claude 系列模型(Opus、Sonnet 和 Haiku)。同时,我们也在探索更多模型组合,例如让 GPT-5.4 作为主模型时的搭配方案。

开始使用

Rubber Duck 现已以实验模式提供。

要开始使用,只需安装 GitHub Copilot CLI,并运行/experimental命令。当你在模型选择器中选择任意 Claude 模型,并且已开通 GPT-5.4 权限时,即可使用 Rubber Duck。你将通过两种方式看到评审结果:

  • 自动触发:当 Copilot 判断某个关键节点需要“第二视角”时,例如在制定计划后、完成复杂实现后或编写测试后

  • 按需触发:在任何时候,你都可以让 Copilot 对其工作进行评审,它会调用 Rubber Duck,整合反馈,并清晰展示具体改动内容

Rubber Duck 最适合的使用场景:

  • 复杂重构与架构调整

  • 高风险任务(错误代价较高)

  • 确保测试覆盖的完整性

  • 在执行方案前获取“第二意见”

GitHub Copilot CLI 中的 Rubber Duck 现已开放实验模式,欢迎在社区讨论中分享你的使用反馈。

http://www.jsqmd.com/news/663135/

相关文章:

  • SAP PI/PO HTTPS接口调用实战:从SSL证书导入到彻底告别iaik.security.ssl.SSLCertificateException
  • 毕业设计 基于单片机的太阳追光系统(源码+硬件+论文)
  • Redis怎样配置集群节点的超时发现_调整cluster-node-timeout控制节点主观下线灵敏度
  • 万象熔炉使用技巧:避开模糊残缺,生成更干净的画面
  • python skopeo
  • 如何用Python-miio轻松控制小米智能设备:2025终极教程
  • STC 51单片机 多位数码管动态显示:从原理到实战的优化技巧
  • SV队列的‘$’符号到底怎么用?从[$:2]到[1:$]的索引技巧与避坑指南
  • JavaScript中V8引擎的JIT即时编译与热点代码优化
  • 从零搭建渗透测试环境:Windows下JDK 1.8.0_202的精准部署与避坑指南
  • 亚洲美女-造相Z-Turbo多场景落地:从个人创作到工作室级AI绘图工作流
  • HakcMyVM-Liceo
  • 别再乱用_mm_malloc了!手把手教你搞定AVX-512内存对齐,避免段错误
  • 集合(ArrayList)
  • 交易赚了8位数,只因学会看16种K线,准确判断买卖点!胜率99%!
  • AI写代码却不敢上线?(2024行业首份《生成代码可信度白皮书》深度拆解:5大度量维度+7类缺陷拦截阈值)
  • FFI(Foreign Function Interface)深度解析
  • 咨询行业怎样提升自己?
  • 新手必看:如何用Coze-Loop快速修复代码Bug与优化逻辑?
  • 告别混乱的Inspector!用Odin插件这5个特性,让你的Unity编辑器效率翻倍
  • 链动1+1模式系统 - 土土哥
  • Multisim元件库深度指南:从虚拟器件到真实元件的实战应用解析
  • 蓝桥杯嵌入式实战:ADC按键的滤波与抗干扰设计
  • 模拟社会:在虚拟环境中训练AI Agent
  • 如何轻松下载B站4K大会员视频?3步搞定完整教程
  • Qwen-Image-Edit-2511工作流优化:如何结合ControlNet获得更稳定输出
  • 正交采样:从复频率域透视IQ调制与信号带宽的精确捕获
  • Elasticsearch 极速查询:通过ID精准检索文档(最全语法+流程图+避坑指南)
  • Multisim元件库深度解析:从虚拟器件到真实元件的实战指南
  • Vue-Quill-Editor + ElementUI 实现Word上传功能:从配置到实战避坑指南