AI Agent RAG 实现:构建面向生产环境的可靠检索系统
检索增强生成(RAG)是 AI Agent 与组织知识库之间的桥梁。没有它,Agent 会产生幻觉;有了它,Agent 的回答就能基于经过验证的来源。本指南涵盖面向 AI Agent 的生产就绪 RAG 实现——从文档摄入到检索策略、嵌入模型和评估指标。
随着 AI Agent 从原型走向生产环境,挑战从”Agent 能否回答”转变为”Agent 能否正确、一致且大规模地回答”。RAG 系统通过为 Agent 提供结构化、最新的上下文,降低幻觉率并提升回答准确性,从而解决这一问题。
为什么 RAG 对 AI Agent 可靠性至关重要
大语言模型存在固有局限性。它们的训练数据有截止日期,无法访问专有信息,且可能生成听起来合理但实际错误的回答。RAG 系统通过以下方式解决这些问题:
生产环境的挑战不仅仅是让 RAG 工作——而是让它以一致的延迟和可衡量的质量可靠地大规模运行。
RAG 核心架构组件

1. 文档摄入管道
摄入管道将原始文档转换为适合检索的格式。这涉及以下几个阶段:
对于生产系统,为每个摄入阶段实现重试逻辑。嵌入生成或向量数据库写入期间的网络故障应触发带有指数退避的自动重试。
2. 嵌入模型
嵌入模型将文本转换为捕获语义含义的数值向量。嵌入质量直接影响检索准确性。关键考虑因素:
OpenAI 的 text-embedding-3 模型、Cohere 的 embed-multilingual-v3 以及较新的开源模型如 BGE-M3 在跨语言和跨领域方面提供了强大的性能。
3. 向量存储
向量数据库存储嵌入并支持相似度搜索。生产环境选项包括:
对于 AI Agent 部署,考虑向量数据库功能,如过滤搜索(按文档类型、日期范围或访问级别)、混合搜索(结合向量和关键词检索)以及重排序能力。
生产 Agent 的检索策略
稀疏检索与密集检索
现代 RAG 系统通常结合两种检索方法:
混合检索——结合两种方法并使用加权评分——通常优于单一方法。LanceDB 和 Weaviate 等工具支持内置混合搜索。
查询转换
在检索前转换 Agent 的查询以改善结果。常见转换包括:
查询转换应该是可选且可配置的。并非所有 Agent 工作流都能从额外的处理开销中受益。
混合重排序
初始检索后,使用交叉编码器或学习到的重排序模型对结果进行重排序。这通过考虑查询与文档之间的关系而非仅依赖单个分数来提高精确度。
Cohere 的 rerank 模型、BGE 重排序器和 OpenAI 的 API 级重排序提供了生产就绪的解决方案。当检索质量直接影响回答质量时,计算成本是合理的。
实现检查清单
| 组件 | 生产要求 | 常见陷阱 |
|---|---|---|
| 文档解析 | 处理 PDF、DOCX、HTML、Markdown | 忽略二进制 PDF 或扫描文档 |
| 分块策略 | 可配置的分块大小和重叠 | 所有文档类型使用固定分块大小 |
| 嵌入生成 | 批量处理并带重试逻辑 | 按请求同步生成嵌入 |
| 向量存储 | 支持元数据过滤 | 仅使用纯向量搜索而不过滤 |
| 检索 | 混合搜索(向量 + 关键词) | 仅依赖密集检索 |
| 引用处理 | 结构化来源归属 | 无来源跟踪的原始文本 |
| 错误处理 | 检索失败时优雅降级 | 向量数据库错误导致硬失败 |
衡量 RAG 质量
RAG 系统需要持续评估。关键指标包括:
检索指标
生成指标
RAGAS(检索增强生成评估)等工具为这些指标提供自动化评估框架。构建在生产流量上运行的评估管道,以检测质量退化。
常见陷阱与解决方案

陷阱 1:知识过时
文档会过时,但向量数据库仍会返回它们。实施文档版本控制和过期策略。跟踪文档更新时间戳,并为时效性内容实施基于 TTL 的清理。
陷阱 2:过度检索
检索过多块会浪费 token 并增加噪声。简单查询从 3-5 个块开始,复杂查询最多 10 个。使用重排序确保最相关的内容出现在提示窗口中。
陷阱 3:上下文缺失
分块边界可能分割相关信息。使用重叠块和分层检索——先检索顶级文档,再深入相关部分。对于技术文档,考虑按逻辑部分(标题)分块而非固定 token 数。
陷阱 4:语义漂移
嵌入模型可能无法捕获领域特定术语。在领域数据上微调嵌入或使用领域特定嵌入模型。定期对保留查询集进行评估,有助于在影响生产质量之前检测漂移。
与 AI Agent 框架的集成
通过工具调用将 RAG 集成到 Agent 工作流中。Agent 应将检索作为工具请求,接收结构化结果,并将其纳入推理过程。
对于 Hermes Agent 或 LangChain 等框架,实现一个检索器工具,该工具:
Agent 然后使用此上下文生成带有适当归属的回答。当检索返回不足时实现回退行为——Agent 应承认知识缺口而非编造回答。
部署模式
批量与实时摄入
根据内容新鲜度要求选择摄入策略:
大多数生产系统采用混合方法——主要内容的批量摄入加上关键文档的实时更新。
扩展考虑
随着文档量增长,检索延迟可能增加。解决方案包括:
监控检索延迟百分位数(p50、p95、p99)并为退化设置警报。目标交互式 Agent 工作流的检索延迟低于 200ms。
SmaugBrain 与 RAG 实现
SmaugBrain 的 Agent 框架通过自定义工具和技能支持 RAG 集成。Agent 可以调用检索工具来查询向量数据库、处理结果并将上下文纳入推理。框架的状态管理确保检索到的上下文在多步查询中跨 Agent 轮次持久存在。
对于企业部署,将 RAG 与 SmaugBrain 的权限管理相结合,确保 Agent 仅访问用户有权查看的文档。这能够在组织边界内实现安全、基于知识的 Agent。
常见问题
从 3-5 个高质量块开始,而不是 10-20 个低质量块。更多检索上下文会增加噪声和 token 成本,而不会提高准确性。使用重排序确保最相关的内容到达 Agent。
当您的领域具有通用嵌入无法很好捕获的专业术语时,微调会有帮助。从预训练模型开始,仅在评估显示差距时才进行微调。微调的成本(标注数据、计算)对于高容量、专业化用例是合理的。
实施带更新时间戳的文档版本控制。当文档更改时,删除旧嵌入并插入新嵌入。对于大规模更新,考虑批量删除后批量插入以最小化停机时间。为时效性文档设置 TTL 策略。
RAG 在推理时检索上下文,提供当前信息而无需重新训练模型。微调更新模型权重,永久嵌入领域知识,但需要重新训练才能更新。对于动态知识使用 RAG,对于领域特定推理模式使用微调。许多系统同时使用两者。
使用 RAGAS 或自定义基准等工具实施自动化评估。跟踪忠实度(回答由来源支持)、回答相关性(解决查询)和幻觉率。定期抽样生产对话并根据人工标注的真实答案进行评分。设置质量退化警报。
可以。使用 Text-to-SQL 方法,其中 Agent 生成 SQL 查询而非检索文本块。将结构化查询结果与非结构化文档检索相结合以获得全面回答。这种混合方法同时捕获数值数据和解释性上下文。
结论
生产级 RAG 系统需要关注摄入质量、检索策略、评估指标和运营可靠性。从简单管道开始——解析、分块、嵌入、存储、检索——然后根据质量指标迭代。原型 RAG 与生产 RAG 之间的差异体现在检索准确性、响应延迟以及在故障条件下的优雅降级能力。
构建健壮的 RAG 系统是 AI Agent 提供准确、有来源支撑回答的核心能力。通过遵循本指南中的模式和检查清单,您可以实现随 Agent 部署扩展的检索系统。
准备构建生产级 AI Agent?
SmaugBrain 提供构建可靠 AI Agent 的框架和基础设施,支持 RAG 集成、权限管理和生产监控。探索 SmaugBrain 如何加速您的 Agent 开发,请访问 smaugbrain.com。