Synth Daily

选择,而不是预测

由于编码智能体在不同任务和语言上的表现差异很大,试图预测并只使用一个“最佳”智能体是不可靠的。更好的方法是选择,即同时运行多个智能体来完成同一项任务,然后由人工评审选出最佳方案。数据显示,这种“best-of-N”策略能显著提升成功率:单个顶级智能体的胜率约为 24%,而一个包含三个顶级智能体的组合,其胜率能提升到 51%。结论是,采用多智能体协作并结合人工判断,比依赖单一智能体更能保证代码质量和效率。

预测的难题

为手头的任务挑选一个编码智能体,本质上是在预测它会是最好的。但由于智能体的表现因语言、任务类型甚至时间而异,这种预测经常会出错。

与其问“我应该用哪个智能体?”,不如问:

我应该用多少个智能体,以及用哪些?

这种方法将一个困难的预测问题,转化为了一个更容易解决的优化问题。你不再需要猜对唯一的赢家,只需要从多个不错的方案中选出最好的一个。

智能体竞争,人类仲裁

“best-of-N”策略的实际工作流程很简单:

  1. 为任务编写一份需求说明。
  2. 将任务同时分发给多个不同的智能体。
  3. 每个智能体在独立的环境中工作并提交自己的解决方案。
  4. 人类评审员审查所有方案,挑选出最佳实现并采纳。

通过这种方式,日常工作本身就变成了有用的评估信号,告诉我们哪个智能体在真实代码库的真实任务中,产生了我们最终合并的代码。

排名有噪音,但分层明显

数据显示,不同的编码智能体可以大致分为几个性能梯队。顶级梯队和其余梯队之间存在明显差距。

然而,在顶级梯队内部,智能体之间的差距非常小且不稳定。这意味着,即使你根据排行榜选了一个排名第一的智能体,它在下一个任务中的表现也未必是最好的。排名存在,但充满噪音。

你不需要运行每一个智能体,但只运行一个,大多数时候会让你错失更好的代码。

“组合选择”的巨大优势

那么,运行一个智能体组合比只运行一个到底能带来多大好处?数据显示,优势是巨大的。

  • 只运行排名第一的智能体,它产出最佳方案的概率是 24%
  • 同时运行排名前三的智能体,其中之一产出最佳方案的概率跃升至 51%
  • 将组合扩大到排名前七的智能体,这个概率能达到 91%

这意味着,从一个智能体增加到三个,你获得最佳代码的几率翻了一倍多。再增加到七个,则几乎囊括了所有可能获得的收益。增加更多的智能体带来的边际收益很小。

结论

试图提前预测哪个智能体最好是徒劳的。一个更有效的方法是选择一个由多个顶级智能体组成的小团队,让它们同时工作。

  • 从一到三: 将使用的智能体数量从一个增加到三个,能让你的成功率大约翻倍。
  • 从三到七: 将数量从三个增加到七个,可以捕获绝大部分剩下的收益。

虽然运行多个智能体会消耗更多计算资源,但这些成本通常远低于工程师修复平庸代码或处理潜在错误所需的时间。计算资源是廉价的,而人类的时间是昂贵的。