KEEL · 龙骨 · A CURRICULUM FOR THE AI ERA
08. 审查者怎样改进结果,而不是制造争论? — keel 龙骨
Metrics Agent 生成了候选发现:“连接池耗尽是根因。” Reviewer 应该检查什么?如果只提示“请严格审查”,它可能改写措辞、提出新猜测,甚至与生成者无限往返。
Metrics Agent 生成了候选发现:“连接池耗尽是根因。” Reviewer 应该检查什么?如果只提示“请严格审查”,它可能改写措辞、提出新猜测,甚至与生成者无限往返。
有效 review 需要可执行的验收标准和停止条件。
Reflection、Review 和 Debate 的区别
| 模式 | 谁检查 | 交互结构 | 适用目标 |
|---|---|---|---|
| Self-reflection | 同一 Agent 再看自己的输出 | 单执行者循环 | 低成本修订 |
| Reviewer | 独立 Agent 按标准给反馈 | 生成者 <-> 审查者 | 可定义质量标准的工件 |
| Debate | 多个 Agent 提出并反驳观点 | 多方消息网络 | 探索争议假设 |
增加 Reviewer 的价值来自上下文和职责独立,不只是换一个角色名称。若 reviewer 与生成者使用相同输入、相同 prompt 且没有 rubric,它们容易重复相同错误。
ReviewResult 必须是协议对象
class ReviewResult(BaseModel):
approved: bool
issues: list[ReviewIssue]
missing_evidence_ids: list[str]
requested_changes: list[str]
每个 issue 至少包含:
- 违反了哪条验收标准;
- 指向哪个 claim 或 artifact;
- 严重级别;
- 可验证的修改请求;
- 是否阻止完成。
“不够好”“再深入一点”不能成为稳定的修订输入。
为事件诊断定义 rubric
R1 每个根因 claim 至少引用一个存在的 evidence_id
R2 不把时间相关性直接写成确定因果
R3 confidence 必须在 0 到 1 之间
R4 缺少数据库端证据时必须写入 limitation
R5 不建议执行未经用户批准的现实动作
其中 R1、R3 可以优先由程序校验;R2、R4 需要语义判断;R5 同时需要输出审查和工具安全策略。
能用确定性代码检查的规则,不必额外消耗 reviewer 模型调用。
Evaluator-Optimizer 循环
flowchart LR
G[Generator] --> A[Artifact]
A --> V[Deterministic Validation]
V --> R[Reviewer]
R -->|approved| F[Final Artifact]
R -->|changes requested| G
循环必须带:
max_review_rounds;- 整次 deadline;
- 每轮 artifact version;
- 上一轮 issue 是否被解决;
- 连续无改进检测;
- 无法通过时的 failed 或 human_review 状态。
Reviewer 不能通过修改自己的 approved 标志强行结束;Coordinator 根据结果和预算决定是否继续。
多数同意不等于事实正确
三个使用相同模型和相同错误证据的 Agent 可能一致同意错误结论。Consensus 只能说明输出之间一致,不能替代外部证据和验收标准。
避免“虚假共识”的做法包括:
- 要求每个观点引用独立证据;
- 让 reviewer 主动寻找反例和缺失数据;
- 对事实使用工具或权威数据验证;
- 记录模型、prompt 和数据来源,识别相关性错误;
- 与单 Agent 和规则校验做对照。
Review 不能增加现实权限
Reviewer 可以说“建议回滚”,但不能因为自己标记 approved 就直接调用回滚工具。Artifact 审查和现实动作审批是两个不同协议。
artifact approved
!=
rollback authorized
现实动作仍要经过 Tool Calling 的身份、资源、策略和人工审批。
本章实验
为一个 FindingArtifact 故意加入三种缺陷:不存在的 evidence ID、过高 confidence、没有 limitation 的确定根因。
先写确定性校验,再把剩余语义问题交给 Reviewer。比较“全部交给 Reviewer”和“程序校验 + Reviewer”的调用次数、稳定性与错误定位能力。
检查理解
- Reviewer 与 self-reflection 的关键差别是什么?
- 为什么 rubric 应优先于“请严格审查”?
- 为什么多数 Agent 同意仍可能是错的?
- artifact approved 为什么不等于工具动作获批?
协作链已经包含多个执行者和循环。下一步处理其中任何一环失败时,整次运行怎样结束。