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

张开发
2026/4/18 23:56:44 15 分钟阅读

分享文章

技术速递|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 现已开放实验模式欢迎在社区讨论中分享你的使用反馈。

更多文章