开发教程

同一个模型写 plan 再自己 review 有意义吗?多模型评审的实践与边界

编辑部阅读约 5 分钟

用同一模型写实现计划、再交给另一个模型评审,往往能挑出一堆问题;把意见回给原模型,它又全部认同。这到底是评审有效,还是模型只会顺着说?文章梳理这种现象背后的信息折损、边界缺失和评审无限扩展问题,给出冷启动评审、问题分级、收敛条件与任务拆分的具体做法,并说明同模型自审与换模型评审各自适用的场景。

让模型 A 写一份实现计划,再交给模型 B 评审,B 挑出一堆问题;把 B 的意见原样丢回给 A,A 表示「说得都对,我改」。这个循环跑上几轮,计划越来越长,问题却始终不见减少。于是很自然会产生疑问:让同一个模型自己写、自己审,到底有没有意义?是不是非得换成另一个模型才靠谱?

先给结论:有意义,但它解决的不是同一个问题

两种做法并不互斥,它们覆盖的是不同的失败模式。

  • 同模型自审:成本低、上下文连续,能发现遗漏、前后不一致、与需求脱节的地方。但生成时用过的假设会被带进评审,盲区是共享的。
  • 换模型评审:相当于换一套训练分布和偏好,容易看到「另一个方向」的错。但它是「换一种方式出错」,并不等于「不出错」,也可能给出看起来专业、实际不该采纳的建议。

真正决定评审质量的,往往不是换不换模型,而是:评审方有没有拿到干净的上下文、评审范围有没有边界、输出有没有被分级、循环有没有终止条件。

为什么评审会越做越长、越改越乱

常见的几种成因,基本都能在原帖的现象里对上:

  1. 信息折损:计划本身是对需求的压缩,评审时上下文进一步丢失,评审方看到「这里没写清楚」就会当成缺陷,于是每轮都能挑出新的问题。
  2. 缺少边界:没有写「不做什么」和验收标准,评审自然从「这个功能怎么实现」扩展到「整体架构应该怎样」,一个小功能的计划最后变成完整架构设计。
  3. 评审 prompt 没有约束:不要求分级、不限制条数,模型倾向于把所有能想到的点都列出来。
  4. 意见被全盘吸收:每条建议都改,计划膨胀,下一轮又产生新的评审面,形成正反馈。
  5. 上下文超限:长会话里早期的决策和约束被挤出窗口,模型开始基于残缺记忆评审。

可操作的改进方案

1. 按阶段分层,而不是全流程用同一种评审

阶段 建议做法
需求与架构 强模型起草 + 人工确认边界与验收标准
计划拆解 模型自审 + 一次独立评审,重点看遗漏与依赖顺序
代码实现 模型自审 + 足够测试用例,评审聚焦可验证的缺陷

架构阶段值得投入最强的模型和最多的人工时间;到了实现阶段,测试比评审更可靠。

2. 让评审「冷启动」

评审失效最常见的原因不是模型不行,而是评审方看到了生成过程,被同样的思路带着走。可以这样做:

  • 新开一个会话或子任务,只提供:需求、计划正文、验收标准、约束条件,不提供历史讨论和生成过程。
  • 需要交叉验证时,再开一个独立评审,比较两份报告的交集——交集部分通常才是真问题。
  • 让评审方先用自己的话复述目标和非目标,再开始挑问题,能显著减少凭空臆测。

3. 把边界写进计划本身

一份能被稳定评审的计划,至少包含:

  • 目标:这次要交付什么可观察的行为
  • 非目标:明确不做哪些事,防止评审扩展范围
  • 改动范围:允许动哪些模块、接口、配置
  • 验收标准:怎么判断做完了
  • 约束:性能、兼容性、不允许引入的依赖

4. 给评审输出定级并限制数量

在评审指令里直接写死格式,比事后筛选更省事:

你是独立评审者,只阅读下面的计划,不要假设作者的历史讨论。
请只输出会导致返工或线上故障的阻断性问题,最多 5 条。
每条格式:
- 级别:blocker / should / nit
- 问题:一句话
- 不修的后果:具体到什么场景会出什么错
- 最小修复建议:不超过两句话
不要提出范围扩展类建议,不要重写计划。

拿到报告后按级别处理:blocker 必修,should 视成本决定,nit 记下来但不改。

5. 设定收敛条件

无限循环几乎都源于没有停止规则。可以定几条硬规则:

  • 连续两轮评审没有新增 blocker,即视为收敛,进入实现。
  • 同一处被反复提出但无法给出「不修的后果」的意见,直接丢弃。
  • 每轮记录问题数量与级别,如果问题数只增不减,说明问题出在边界定义,而不是计划质量。
  • 计划篇幅在两轮内明显膨胀时,回退到上一版而不是继续叠加。

6. 拆分任务,控制单个会话的上下文

把计划拆成互相独立、可单独验证的任务,一个任务一个会话,避免长会话里上下文被稀释。计划文件保持精简,把细节放到任务级说明里,而不是堆在一份大文档中。如果评审循环需要长时间连续运行,本地机器休眠、网络抖动都可能中断会话,可以考虑放到长期在线的远程 Mac 上执行,让评审在独立会话里稳定跑完——这只是环境层面的一种省心做法,不改变前面这些流程要求。

同模型自审和换模型评审,怎么选

  • 只有资源跑一个模型:同模型自审仍然值得做,但必须冷启动、改角色、限定输出,否则只是在重复自己的假设。
  • 对正确性要求高、且你能判断意见真伪:用不同模型交叉评审,取交集,收益最大。
  • 对领域不熟、无法判断意见真伪:慎用互评。模型很擅长「找出可以挑的地方」,不擅长判断「值不值得修」。此时更稳的做法是固定检查清单 + 补齐测试,而不是无限评审。
  • 后期分支多、改动面大的项目:互评成本会快速上升,尽早收敛到「测试 + 人工抽查」。

注意事项

  • 评审意见不等于缺陷。每条意见都应能回答:不修会出什么故障、谁受影响、能否用测试覆盖。答不上来的一律降级。
  • 模型认同你的修改建议,不代表建议正确,只代表它在顺着对话走。判断标准要放在外部:验收标准、测试结果、可复现的失败场景。
  • 计划膨胀是比遗漏更常见的损失来源。范围一旦扩大,评审成本和实现风险同步上升。
  • 不同模型之间的差异是视角差异,不是正确性保证。把它当成「多一个审稿人」,而不是「多一个裁判」。

小结

同一个模型写计划、自己评审,有意义,但它的价值在于低成本的自我检查,不能替代独立视角。想真正提升质量,重点应放在四件事上:给计划划边界、让评审冷启动、给意见分级限量、给循环设终止条件。做到这四点,同模型自审和换模型评审都能用;做不到,换再多模型也只是把同一个循环重跑一遍。

多模型协作上下文管理AI 编程工作流AI 代码评审Plan 模式