← 最新论文
💻 computer science

Pomona: Continuous Code Quality Improvement via Small, Automated Changes at Bloomberg

本文介绍了 Pomona,这是一种受改善(Kaizen)启发、在彭博(Bloomberg)内部通过自动化发现并增量修复技术债,以实现小型、低风险的拉取请求(pull requests)来持续提升代码质量的轻量级智能体工具,其在为期一个月的部署中实现了极高的合并成功率和强劲的工程师采用率。

原作者: David Williams, Angelos Evripiotis, Serkan Kirbas, Harry Morgan, Sergey Magidovich, Peter Wainwright, Federica Sarro

发布于 2026-06-08
📖 1 分钟阅读☕ 轻松阅读

原作者: David Williams, Angelos Evripiotis, Serkan Kirbas, Harry Morgan, Sergey Magidovich, Peter Wainwright, Federica Sarro

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下你正在管理一座庞大且繁忙的图书馆(也就是你的公司代码库)。随着时间的推移,有些书被放错了书架,有些页面留下了咖啡渍,还有些地方用铅笔写了笔记,需要被擦除。通常情况下,图书管理员(软件工程师)正忙于编写新书,没时间去处理这些细小、令人烦恼的问题。他们知道图书馆需要整理,但没有时间一次性完成所有工作。

于是,Pomona 登场了——这是一个专门设计用来处理人类总是在拖延的“琐碎小事”的新型、得力机器人助手。

以下是 Pomona 的工作原理,通过简单的概念进行拆解:

1. 两步舞步:扫描与修复

Pomona 并不是一个能瞬间修复一切的神奇魔杖。相反,它像一个勤勉的清洁工,拥有一套特定的流程,使用两个主要的“技能”:

  • 扫描器(眼睛): 这部分让 Pomona 在图书馆中巡视,寻找小问题。它会检查诸如:

    • 被错放在错误书架上的书(Linting 错误/代码规范错误)。
    • 放置多年仍未移除的“稍后修复”便签(TODO 注释)。
    • 空白且无用的页面(死代码)。
    • 索引中缺失的章节(测试缺口)。
      一旦发现这些问题,它会将它们记录在一个**待办事项列表(Backlog)**中,并根据重要程度和修复难易程度进行排序。
  • 修复器(双手): 这部分会挑选待办列表中第一个、最简单且最重要的项目。然后,它会进行一次极其微小的修复——想象一下,仅仅是调整 10 行文本或修复一个拼写错误。它不会试图重建整个图书馆,它只是修补了一个小小的书架。

2. “微型拉取请求”(人工检查)

这是最重要的一部分:Pomona 不会擅自更改书籍。它会创建一个拉取请求(Pull Request, PR)

你可以把拉取请求想象成 Pomona 贴在书上的一张便签,上面写着:“嘿,我注意到这一页放倒了。我已经把它翻正了。请快速看一眼,并告诉我我做得对不对。”

  • 小即是安全: 因为改动非常小(大约 10 行),人类图书管理员只需扫一眼即可。
  • 人在回路(Human in the Loop): 在改动生效之前,人类必须说“同意”。这让工程师保持控制权,并建立信任。他们不必担心机器人会意外删掉整个图书馆。

3. 皆善(Kaizen)哲学

论文将 Pomona 与 Kaizen(改善) 进行了对比,这是一种强调“持续改进”的日本哲学。与其每年尝试进行一次大规模、令人望而生畏的翻修工程,Pomona 建议每天进行微小的、持续的改进。这就像是每天花 10 分钟整理一个房间,而不是试图在一个周末内打扫整个房子。

4. 实验结果如何?

彭博(Bloomberg,一家大型金融公司)的团队让 Pomona 工作了一个月。以下是他们的发现:

  • 行之有效: 在 Pomona 建议的 17 个微型修复中,有 15 个被接受并合并到了代码中。
  • 速度极快: 大多数修复在不到 2 小时内就得到了批准并关闭。
  • 深受好评: 当工程师们被问及是否希望使用 Pomona 时,10 个人中有 8 个表示赞同。他们喜欢这种改动微小且易于阅读的方式。
  • 瓶颈所在: 唯一出现问题的情况是,当 Pomona 变得过于“兴奋”,在人类还没来得及检查完第一个修复之前,就尝试去修复同样的东西。团队通过让 Pomona 检查某个修复是否已经在处理中,解决了这个问题。

5. 为什么这很重要

论文总结道,虽然 AI 擅长编写大型、复杂的代码,但目前它最适合扮演处理小型、枯燥任务的得力助手的角色。

  • 信任: 工程师对于 AI 进行重大改动持怀疑态度,但对于处理微小、显而易见的问题,他们是信任的。
  • 专注: 通过让机器人处理“捡垃圾”(死代码、旧注释)的工作,人类可以专注于构建新功能。
  • 控制: 该系统之所以奏效,是因为人类始终拥有最终决定权。

简而言之,Pomona 是一个帮助团队保持代码整洁健康的工具。它通过自动化、易于审批的小规模改进,而不是等待人类找时间手动完成,从而实现持续优化。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →