跳到主要内容
AI News HubLIVE
站内改写1 分钟阅读

更好的工具反而让Copilot代码审查变得更糟,我们是这样改进的

文章摘要

将Copilot代码审查迁移到共享的Unix风格代码探索工具后,审查成本上升且发现的问题减少。问题不在工具,而在指令。通过重写指令以适配审查者工作流,平均审查成本降低了约20%,同时保持了审查质量。

来源GitHub AI & ML作者: Napalys Klicius
更好的工具反而让Copilot代码审查变得更糟,我们是这样改进的
报告错误

纠错通道尚未开通,可先复制下方文章信息留存。

查看更正说明
直接读正文

给代理更好的工具,它应该做得更好——这是直觉。然而,当GitHub团队将Copilot代码审查的底层代码探索工具替换为共享的Unix风格工具(grep、glob和view)时,他们发现审查成本上升了,发现的问题却减少了。问题并不在于新工具本身,而在于代理使用这些工具的指令。原始指令是为通用编码助手设计的,导致代理像浏览整个仓库一样去探索代码,而不是从拉取请求(PR)的差异出发进行有针对性的审查。这种“浏览模式”使代理积累了过多无关上下文,增加了成本并稀释了注意力。

团队通过重写工具指令来纠正这一行为。新的指令模拟了人类审查者的工作流程:从PR差异开始,形成具体的审查问题;使用grep和glob快速发现候选文件和符号,但推迟读取;仅在确定位置后才使用view读取精确的代码范围。这种“先缩小范围,再精确读取”的模式显著提高了效率。例如,当审查一个授权辅助函数的变更时,代理不再搜索所有调用该函数的文件,而是通过grep查找调用者,再用glob定位相关路由文件,最后用view读取关键调用点。

此外,指令还改进了错误恢复策略。如果grep失败,代理会尝试更简单的转义搜索;如果路径错误,则转向glob而不是猜测相邻路径。这些调整避免了小错误引发更大的探索循环。内部基准测试在此过程中发挥了关键作用,它们不仅显示最终评分,还展示了代理的完整工具调用轨迹,使团队能够可视化代理行为并迭代指令。

优化后的结果令人满意:生产环境中平均审查成本降低了约20%,且审查质量保持不变。这一改进的启示在于,工具本身是通用的,但指令必须针对特定任务进行优化。同样的工具在不同产品中需要不同的指令——Copilot CLI处理的是交互式编码任务,而Copilot代码审查专注于从差异出发的评估。团队的经验表明,共享工具与定制化指令、严格基准测试相结合,才能实现真正的效率提升。

展开要点与分析

文章情报

工程师进阶

要点

  • 迁移到共享的Unix工具后,Copilot代码审查的成本增加、效果下降。
  • 问题根源是工具指令,而非工具本身。指令使代理像编码助手一样浏览,而非像审查者一样聚焦差异。
  • 重写指令后,代理行为转变为从差异出发,先使用grep和glob缩小范围,再用view精确读取,实现了约20%的成本降低。
  • 内部基准测试对调试代理行为、定位问题起到了关键作用。

要点与分析由自动化流程生成,可能有误,请结合原始来源核实。