Q:如何避免模型回复过度依赖检索到的外部知识,导致回答生硬、缺乏共情能力和自然度?
来源:阿里淘天 AI Agent应用开发二面
新手答:“在 Prompt 里加一句‘请用自然语言回答,不要直接复制文档内容’就行了。”
高手答:
这个问题的本质是检索内容“绑架”了模型的生成自由度。模型把 RAG 返回的文档当成唯一信息源,逐句改写而非理解后重新组织,导致回答像“念文档”而非“对话”。
解法分三层:
1. 检索层——控制注入量和粒度
- 不是检索到的东西全塞进 Prompt,而是只注入与当前轮次直接相关的片段
- 设置相关性阈值:低于阈值的 chunk 不注入,让模型用自身知识补全
- 对长段落做摘要后注入,而不是原文照搬——摘要后模型有更大的表达空间
2. Prompt 层——分离“知识”和“表达风格”
- 系统 Prompt 中明确区分角色:你是一个友好的助手,参考资料只是辅助,回答要自然
- 使用“参考但不照抄”的约束:
以下资料供参考,请结合你的理解用口语化方式回答,不必逐条复述 - 给模型留“自由发挥区”:允许在事实准确的前提下加入过渡语、共情表达、追问
3. 生成层——后处理与反馈闭环
- 自然度评分:对生成结果用小模型打分(流畅性、重复率、文档复制比例),低分回退重生成
- A/B 测试:对比“全量注入 vs 摘要注入 vs 无 RAG 回退”三种策略的用户满意度
- 温度调节:对事实性回答用低温度保准确,对情感/共情类回答适当提高温度增加自然度
实际工程中常见的 Pattern:
- 双通道生成:先让模型不看 RAG 结果生成一版“自然回答”,再与 RAG 检索结果做事实校验合并
- 引用标记 + 自由组织:要求模型标注哪些内容来自文档、哪些是自己推理的,便于后续审计
差距在哪:面试官考的是你对“RAG 不只是拼 Prompt”的理解。检索是为了保证事实准确,但不能牺牲对话体验。高手会从注入策略、Prompt 设计、后处理三层分别控制“依赖度”,而不是只靠一句 Prompt 指令。