Skip to content

2.2 Agent 不知道自己错了——反馈(Feedback)

现象

Agent 写了一段代码,自信地说"已完成",还加了一句"这段代码遵循了最佳实践"。

你一看:变量名混乱、边界条件没处理、测试根本跑不通。

Agent 在"自信地赞美自己的平庸输出"。

这不是因为它不聪明,而是因为它没有外部反馈来校准自己的判断。就像一个学生交了作业从不看批改——他永远觉得自己写对了。


为什么 Agent 缺乏反馈?


Harness 解决方案

方案一:GAN 式验证(Anthropic)

借鉴 GAN 的思想——生成和验证分离

✍️生成器(Coder Agent)根据需求写代码
⇄ 对抗迭代
🔍验证器(Reviewer Agent)独立审查代码,找出问题
💡关键设计:验证器不知道生成器的思考过程,两者上下文完全隔离

这就像考试时"出题人和阅卷人分离"——防止自己给自己打分。

方案二:Shift-Left 验证(Stripe)

Stripe 的实践——把验证前移到每一步

📊

Shift-Left vs 传统验证:反馈延迟对比

传统流程
Shift-Left

方案三:验证独立于生成

核心原则:谁来验证,比怎么验证更重要

❌ 错误做法

Agent 写完代码 → Agent 自己检查 → "没问题!"

✅ 正确做法

Agent 写完代码 → CI 自动测试 → 测试报告 → Agent 根据报告修改

Agent 写完代码 → 独立 Reviewer Agent 审查 → 审查意见 → Agent 修改


创造性突破案例

🎨 创造性突破案例

荷兰国立博物馆在修复名画时,采用了类似原理:修复团队和鉴定团队完全分离。修复师只负责修复,鉴定师独立评估修复质量。两个团队不共享工作上下文,只交换最终结果。

这个机制确保了评估的客观性——同理适用于 Agent 的输出验证。


本节小结

📌 本节核心要点

  • 现象:Agent 自信地赞美自己的平庸输出,因为缺乏外部反馈
  • 根因:没有独立于生成过程的验证机制
  • 方案:GAN 式验证(生成/验证分离)、Shift-Left(验证前移)、验证独立于生成
  • 核心原则:谁来验证比怎么验证更重要——验证者必须独立于生成者

思考题

  1. 你目前使用 Agent 时,有没有"验证环节"?如果有,验证者和生成者是独立的吗?
  2. "Shift-Left"把验证前移到每一步,代价是什么?在什么场景下这个代价不值得?
  3. 如果让 Agent 自己验证自己的输出,你能想到哪些方法来降低"自评偏差"?

下一节预告

反馈解决了"知道自己错了"的问题。但 Agent 还有一个根本性缺陷——它没有记忆。每次对话都从零开始。

下一节:Agent 没有记忆——持久状态