<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Convergo on Codexer</title><link>https://codexer.com/tags/convergo/</link><description>Recent content in Convergo on Codexer</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Wed, 08 Jul 2026 10:00:00 +0800</lastBuildDate><atom:link href="https://codexer.com/tags/convergo/index.xml" rel="self" type="application/rss+xml"/><item><title>AI 编程代理的审查循环为什么不收敛？Convergo 给出了答案</title><link>https://codexer.com/posts/2026-07-08-convergo-review-loop-convergence/</link><pubDate>Wed, 08 Jul 2026 10:00:00 +0800</pubDate><guid>https://codexer.com/posts/2026-07-08-convergo-review-loop-convergence/</guid><description>&lt;p&gt;如果你最近在用 AI 编程代理做稍微复杂一点的工作，你大概经历过这样一个场景：你让 AI 审查另一个 AI 写的代码。第一个审查者发现了三个问题。你让 AI 修复，然后让同一个审查者再看一遍，通过了。但你不放心，又找了一个新的审查者看，结果它发现了三个完全不同的问题。&lt;/p&gt;
&lt;p&gt;你深吸一口气，修复，再来。第五轮的时候，代码没变好多少，但 &lt;code&gt;docs/impl-notes.md&lt;/code&gt; 已经长到了 500 行。&lt;/p&gt;
&lt;p&gt;这就是 AI 编程代理的审查循环问题。它不是 AI 不够聪明，而是审查循环本身有结构性缺陷：每一轮都在&lt;strong&gt;发散&lt;/strong&gt;，而不是&lt;strong&gt;收敛&lt;/strong&gt;。&lt;/p&gt;
&lt;h2 id="审查循环为什么发散"&gt;审查循环为什么发散？&lt;/h2&gt;
&lt;p&gt;先定义一下概念。当我说「审查循环」，我指的是这样一个流程：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;AI Agent A 写了一些代码&lt;/li&gt;
&lt;li&gt;AI Agent B 审查这些代码，给出修改建议&lt;/li&gt;
&lt;li&gt;AI Agent A 根据建议修改&lt;/li&gt;
&lt;li&gt;AI Agent B 重新审查&lt;/li&gt;
&lt;li&gt;重复 2-4，直到 B 说「没问题」&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这个流程看起来没毛病。但实际上，它经常不收敛，而且失败的方式很隐蔽：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;问题一：审查者只看到症状，看不到根因。&lt;/strong&gt; 一个缺失的不变量在八个不同的地方产生了影响，审查者可能把这些当成八个独立的问题，一个接一个地发现，一轮接一轮地修复。本该一次修补计划就能解决的事，变成了八轮局部打补丁。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;问题二：写代码的 AI 在修补丁，而不是修结构。&lt;/strong&gt; 当审查者说「这里有个 bug」，写代码的 AI 倾向于在出问题的地方打个补丁。但如果这个 bug 的根源是一个不完整的设计决策，贴补丁只会让代码库越来越复杂，而问题依然存在。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;问题三：每一轮都在增加内容，而不是减少不确定性。&lt;/strong&gt; 审查发现一个问题，写代码的 AI 加一段文字解释。下一轮发现另一个问题，再加一段文字。经过几轮之后，artifacts 越来越长，越来越模糊，伪代码越来越多，这些伪代码又成为新一类审查发现的来源。这是一个正向反馈循环，方向是错的。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;问题四：同一审查者的「通过」不可信。&lt;/strong&gt; 同一个 AI 审查者在看完第六轮修改后说「通过」，可能是因为它已经适应了代码的风格，或者它已经「累了」。它的通过不是真正的无疵，而是认知惯性的产物。&lt;/p&gt;
&lt;p&gt;这四个问题叠加起来，就形成了一个典型的发散螺旋：越改越大，越改越模糊，越改越不确定什么时候算「改好了」。&lt;/p&gt;
&lt;h2 id="convergo-的三条核心规则"&gt;Convergo 的三条核心规则&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/gomilesf/convergo"&gt;Convergo&lt;/a&gt; 是 Miles 在七月初发布的一个开源插件，同时支持 Claude Code 和 Codex。它源自 &lt;a href="https://github.com/EveryInc/compound-engineering-plugin"&gt;Compound Engineering&lt;/a&gt; 的设计理念，但加了一个关键的改进：&lt;strong&gt;边界&lt;/strong&gt;。Convergo 的目标不是让审查更彻底，而是让审查循环&lt;strong&gt;必然终止&lt;/strong&gt;。&lt;/p&gt;</description></item></channel></rss>