Reflection与自我评估
Reflection 是让 Agent 对自己的中间结果或最终输出进行检查和修正的机制。它可以提升质量,但不能替代外部验证。
# 1. Reflection 的作用
生成结果
-> 检查是否满足目标
-> 发现问题
-> 修正结果
-> 输出最终答案
常见用途:
- 检查是否遗漏要求。
- 检查格式是否正确。
- 检查引用是否支持结论。
- 检查工具调用是否成功。
- 检查计划是否需要调整。
# 2. 自我评估模板
请检查上一步结果是否满足以下标准:
1. 是否回答了用户问题。
2. 是否只基于给定资料。
3. 是否包含必要字段。
4. 是否存在无法验证的结论。
5. 是否需要补充或修正。
只输出需要修改的地方和修改后的版本。
# 3. Reflection 适合场景
| 场景 | 价值 |
|---|---|
| 长文总结 | 检查遗漏和重复 |
| 结构化输出 | 检查格式和字段 |
| 代码生成 | 检查潜在错误和测试 |
| RAG 回答 | 检查引用是否支持答案 |
| Agent 执行 | 判断是否需要继续工具调用 |
# 4. 局限性
模型自查仍然是模型输出,可能出现:
- 自信地认可错误答案。
- 无法发现缺失事实。
- 被同一上下文偏差影响。
- 为了修正而引入新错误。
因此高风险场景要结合规则、测试、工具和人审。
# 5. 外部验证
| 任务 | 更可靠的验证 |
|---|---|
| JSON 输出 | Schema 校验 |
| 代码 | 单元测试、编译、静态检查 |
| 数值计算 | 计算工具 |
| 事实问答 | 数据库、检索引用 |
| 权限判断 | 业务权限系统 |
Reflection 是辅助,不是安全边界。
# 6. 工程建议
- 对低成本任务可以用自我评估提升质量。
- 对结构化输出优先用程序校验。
- 对事实型问题要求引用证据。
- 对高风险动作必须使用外部规则和人工确认。
- 记录 Reflection 前后的结果,便于评估是否真的改善。
# 7. Tips 快问快答
Q:让模型“再检查一遍”有用吗?
A:有时有用,特别是格式、遗漏和简单逻辑问题。但不能保证事实正确。
Q:Reflection 会增加成本吗?
A:会。它增加调用次数或 Token,因此要用于值得提升质量的场景。
Q:能不能让一个模型检查另一个模型?
A:可以,这种方式能减少部分偏差,但仍然不能替代确定性验证。
上次更新: 2026/06/25, 17:53:09