Skip to content

RAG 常见失败模式

四种典型 RAG 系统失败模式及其解决方案:提示词注入、上下文搜索失效、跨文档推理失败、上下文窗口溢出。

Key Points

  • 提示词注入:必须在流程前端增加毒性/边界检测节点
  • 多轮对话上下文失效:检索前加入问题重写(Revise Question)机制
  • 跨文档推理失败:引入 GraphRAG 多层检索,召回率从 60% 提升至 95%+
  • 上下文窗口溢出:动态裁剪消息列表,仅保留最近相关历史

Details

失败模式 1:提示词注入(Jailbreaking)

表现:客服机器人被用户绕过系统限制,回答无关话题

解决方案

  • 不能仅靠 System Prompt 要求"不要回答无关问题"
  • 在流程最前端增加毒性/边界检测节点
  • 使用 Few-Shot 示例让 LLM 预判用户输入是否属于业务范围
  • 越界问题立即切入异常流程委婉拒绝

失败模式 2:多轮对话上下文搜索失效

表现:用户追问时因代词缺失,向量检索找不到相关文档

解决方案

  • 检索前加入问题重写机制
  • LLM 根据多轮历史将当前提问改写为包含完整实体信息的独立问题
  • 再进行知识库检索

失败模式 3:跨文档推理失败

表现:传统 RAG 对需要全局视角的复杂问题召回率不足 60%

解决方案

  • 引入 GraphRAG 多层检索机制
  • 局部精准检索(Local)+ 全局语义扩展检索(Global)
  • 双层检索跨越语义鸿沟,召回率提升至 95%+

失败模式 4:上下文窗口溢出

表现:聊天轮数增加导致 Token 限制报错或内存崩溃

解决方案

  • 使用 trim_messages 对消息列表动态裁剪
  • 仅保留最近相关的历史 Token
  • 生产环境务必将向量数据存入持久化组件
  • [[patterns/intelligent-customer-service]]
  • [[patterns/production-deployment]]
  • [[patterns/rag-implementation]]
  • [[concepts/rag]]

Sources

Released under the MIT License.