@zachlloydtweets: https://x.com/zachlloydtweets/status/2077428025474355521

X AI KOLs Timeline 工具

摘要

本篇文章介绍了如何构建一个自我改进的代码审查代理,作为云软件工厂的一部分,使用了代码审查技能、GitHub Actions以及一个外层循环代理来实现持续改进。

https://t.co/GtnfNHmPOq
查看原文
查看缓存全文

缓存时间: 2026/07/16 02:02

如何构建一个自我改进的代码审查智能体

这是我在“如何构建云软件工厂”系列文章中的第三篇:

  • 构建问题分类智能体
  • 构建规格编写智能体
  • [本文] 构建一个自我改进的代码审查智能体

我将描述如何构建一个代码审查智能体,以及如何让其生成的审查质量随时间自动提升。这是对之前文章的延续,我之前描述了如何将分类、规格和实现智能体设置为工厂的第一部分。

请注意,你可以使用现成的代码审查平台,但将其集成到云工厂工作流中的好处在于:工厂中的所有智能体都遵循类似模式,并且可以共享上下文(例如,你的代码审查智能体可以了解规格编写智能体如何编写规格,并可以要求验证智能体验证审查评论中提出的建议)。你还可以完全控制代码审查技能,自由选择模型,并控制该技能随时间改进的方式。在我看来,自动化整个软件开发生命周期比只自动化其中一部分更好。

要跟着操作并在你自己的仓库中实现代码审查,可以在这里查看演示代码。

深入来看,为了实现代码审查智能体,我们将创建以下内容:

  • 一个代码审查技能,云智能体可以将其应用于 PR
  • 一个调用该技能的 Github Action
  • 第二个“外循环”智能体,用于观察代码审查者并随时间改进它

让我们从代码审查技能开始,我将基于 Warp 在其流行的 OSS 仓库中用于代码审查的技能。

该技能接受三个输入:

  • PR 描述
  • PR 差异
  • 来自规格智能体的规格(如果有)

它返回一个名为 review.json 的结构化输出。

由于该技能由像 Claude Code、Codex 或 Warp 这样的云编码智能体运行,它还可以利用编码智能体可以做的所有标准事情,比如读取文件、搜索代码库、构建代码、编写测试等。让一个完整的智能体进行代码审查,使其能够在提出任何更改建议之前验证假设,确保建议的更改能成功构建等。这对工作流至关重要。

技能的正文指示智能体审查代码的安全性、正确性、风格等。它提供了详细说明,包括如何内联留下反馈、什么算严重、重要或只是小问题、以何种风格留下评论等。它指示智能体如果有规格则将其与代码进行比较,并验证它建议的任何更改。最后,它通过 review.json 提供结构化输出的模式,以便结果可以转换为 GitHub 中的一组评论。

该技能不仅仅是一个文本文件,它还包括一组支持性的 Python 脚本,使其更具确定性和成本效益。我建议将脚本作为技能资源打包,以避免让智能体实时编写它们,这会消耗额外的 token 并引入不确定性。

该技能缺少的是特定团队或仓库编码约定的具体上下文。与其在一开始就添加这些,不如创建第二个智能体,随着审查智能体在运行过程中学习这些约定(稍后会详细介绍)。

代码审查技能

为了调用代码审查技能,我们需要:

  • 一个触发它的 Github Action
  • 它在云端运行的一个地方

Github Action 相当简单,主要是些不值得深入探讨的管道工作。在高层,它在不同的 PR 状态变化时运行,收集关于 PR 的上下文,然后使用审查技能启动云智能体。

对于在云端运行,我们使用 Github Actions + Warp 智能体的组合,就像本仓库中其他演示一样,但这里有很多选项可以选择。不过,Warp 的好处在于它是多模型和多框架的,这对于管理成本非常有用(并且可以运行开放权重模型)。它还可以配置为在任何基础设施上运行。

Github Action

请注意,智能体被授予对拉取请求的只读权限,而 GitHub Action 会以编程方式将智能体的 review.json 转换为 GitHub 评论。我们可以让智能体拥有直接发布 GitHub 评论的写入权限,但这会引入提示注入风险(比如评论其他 PR 甚至删除 PR)。

以下是一个高质量审查智能体输出的示例,包含详细的内联评论和修复建议:

PR 级别摘要

PR 级别摘要

一个内联评论

一个内联评论

如果你回复这些评论之一并重新推送代码,审查智能体会自动再次运行。它会理解先前的上下文和讨论线程,并适当地重新审查。就是这么简单。

你可以就此打住,拥有一个功能但基础的 PR 审查器,但我想展示如何通过自我改进循环让这个审查器随时间提升。

这个循环是这样的:

  • 在一天中,代码审查智能体在每个 PR 上运行
  • 人类作者和审查者与审查智能体留下的评论互动,有时纠正它们或验证其建议
  • 每天一次,“外部智能体”运行,审查代码审查智能体当天处理的所有 PR,综合人类反馈
  • 如果外部智能体发现任何值得为后续运行记住的知识,它会提交一个 PR 来更新代码审查智能体技能
  • 下次代码审查智能体运行时,它会融入这些学习成果

这个系统并不完美,但随着时间的推移,随着更多关于团队偏好的相关信息被纳入技能中,审查质量确实会提升。这些信息可能涉及代码风格、代码库中的特定陷阱,或者审查智能体应如何验证建议等。

为了使其真正有效,你应该将其与指标和评估结合起来,查看你在代码审查上花费了多少、需要多少周期以及审查者被纠正的频率。我将在未来的文章中展示如何为这些循环创建评估。

外循环改进技能

对于我的示例 PR,我对智能体评论同时添加了正面和负面反馈,然后观察外部智能体如何调整代码审查者,使其在未来考虑这些反馈。

以下是一些负面反馈,我要求智能体倾向于进行结构性的代码更改,而不是添加注释。

还有一些正面反馈,关于它建议为 HTTP 请求添加超时。

这是我们的“外循环”智能体在 PR 中提出的对代码审查技能的调整。它考虑了这两条反馈,因此未来审查者的运行会更好:

我希望大家觉得这有用。要尝试它,请让你的智能体从云工厂演示仓库中添加 PR Review 和 Improve PR Review Skills 以及 GitHub 工作流。

随着我发布更多此类文章,我们将一步一步地构建整个工厂,一次一个智能体。在下一篇文章中,我将展示如何添加一个验证智能体,该智能体通过计算机使用来从用户角度检查更改是否正确。

我们正在 Warp 努力使其更加即开即用,但我认为自己动手设置智能体本身就有很大的学习价值。

如果你有任何反馈或问题,请告诉我!

相似文章

@PaulSolt: https://x.com/PaulSolt/status/2073470146115490230

X AI KOLs Following

Paul Solt 分享了一个详细的工作流程,利用 Codex 智能体循环实现夜间自主构建功能,包括管理线程、心跳检测和自动 PR 审查。该技术从单次提示转向设计好的智能体循环,使得只需极少的人工干预即可实现持续开发。

我构建了一个不仅能完成任务,还能自我改进管道的智能体

Reddit r/AI_Agents

作者构建了一个自主智能体,不仅能完成任务,还能通过观察结果、通过拉取请求进行更改,并使用账本验证每个更改来改进自身的代码和产品。关键洞察在于,一个严格的验证步骤——得出确认、拒绝或不确定的结论——对于系统真正学习至关重要。