AI-RAG与搜索工程技能 ai-rag

该技能专注于检索增强生成(RAG)和搜索工程的完整实践,提供构建生产级系统的指南。涵盖文档分块、混合检索(BM25 + 向量搜索)、重排序、查询优化、排名管道设计、评估指标(如nDCG、MRR)以及现代最佳模式。适用于开发高效、准确的AI驱动检索和生成应用,关键词包括:RAG、搜索工程、混合搜索、分块策略、评估指标、生产系统。

RAG应用 0 次安装 0 次浏览 更新于 3/7/2026

名称: ai-rag 描述: 完整的RAG与搜索工程技能。涵盖分块策略、混合检索(BM25 + 向量)、交叉编码器重排序、查询重写、排名管道、nDCG/MRR评估以及生产搜索系统。检索增强生成和语义搜索的现代模式。

RAG与搜索工程 — 完全参考

构建生产级检索系统,具备混合搜索基于证据的生成可衡量的质量

本技能涵盖:

  • RAG: 分块、上下文检索、基于证据、自适应/自我修正系统
  • 搜索: BM25、向量搜索、混合融合、排名管道
  • 评估: 召回率@k、nDCG、MRR、基于证据的指标

现代最佳实践(2026年1月):

默认姿态: 确定性管道、有界上下文、显式失败处理和每个阶段的遥测。

范围说明: 关于生成阶段使用的提示结构和输出合约,请参见 ai-prompt-engineering

快速参考

任务 工具/框架 命令/模式 使用时机
决定RAG与替代方案 决策框架 使用RAG如果: 新鲜度 + 引用 + 语料库大小; 否则: 微调/缓存 避免不必要的检索延迟/复杂性
分块与解析 分块器 + 解析器 从简单开始; 根据文档类型添加结构感知分块 文档、代码、表格、PDF的摄取
检索 稀疏 + 密集(混合) 融合(如RRF)+ 元数据过滤器 + top-k调优 混合查询风格; 高召回需求
精度提升 重排序器 对top-k候选进行交叉编码器/LLM重排序 当top-k包含近失或噪音时
基于证据 输出合约 + 引用 引用/ID引用; 可回答性门控; 在缺失证据时拒绝 合规性、信任和可审计性
评估 离线 + 在线评估 检索指标 + 答案指标 + 回归测试 防止静默回归和过时失败

决策树: RAG架构选择

构建RAG系统: [架构路径]
    ├─ 文档类型?
    │   ├─ 页面/部分结构? → 结构感知分块(页面/部分 + 元数据)
    │   ├─ 技术文档/代码? → 结构感知 + 代码感知分块(符号、标题)
    │   └─ 简单内容? → 固定大小令牌分块与重叠(基线)
    │
    ├─ 检索精度低?
    │   ├─ 查询歧义? → 查询重写 + 多查询扩展 + 过滤器
    │   ├─ 结果噪音大? → 添加重排序器 + 更好的元数据过滤器
    │   └─ 混合查询? → 混合检索(稀疏 + 密集)+ 重排序
    │
    ├─ 数据集大小?
    │   ├─ <100k分块? → 扁平索引(精确搜索)
    │   ├─ 100k-10M? → HNSW(低延迟)
    │   └─ >10M? → IVF/ScaNN/DiskANN(可扩展)
    │
    └─ 生产质量?
        └─ 添加: ACLs、新鲜度/失效、评估门控和遥测(端到端)

核心概念(供应商无关)

  • 管道阶段: 摄取 → 分块 → 嵌入 → 索引 → 检索 → 重排序 → 打包上下文 → 生成 → 验证。
  • 两个评估平面: 检索相关性(我们获取了正确的证据吗?) vs 生成保真度(我们正确使用了吗?)。
  • 新鲜度模型: 过时预算、失效触发器和重建策略(增量 vs 完全)。
  • 信任边界: 检索内容不可信;应用与用户输入相同的严格性(OWASP LLM Top 10: https://owasp.org/www-project-top-10-for-large-language-model-applications/)。

实现实践(工具示例)

  • 使用检索API合约: 查询、过滤器、top_k、trace_id和返回的证据ID。
  • 为每个阶段添加追踪/指标(OpenTelemetry GenAI语义约定: https://opentelemetry.io/docs/specs/semconv/gen-ai/)。
  • 有意识地添加缓存: 嵌入缓存、检索缓存(查询+过滤器)和响应缓存(带失效)。

做 / 避免

  • 做保持检索确定性: 固定top_k、稳定排名、显式过滤器。
  • 做在检索时强制执行文档级ACLs(不仅在生成时)。
  • 做包含带稳定ID的引用,并在测试中验证引用覆盖。

避免

  • 避免没有测试集和回归门控就部署RAG。
  • 避免“塞入所有内容”的上下文打包;它增加成本并可能降低准确性。
  • 避免在没有元数据和租户隔离的情况下混合语料库。

何时使用本技能

当用户询问时使用本技能:

  • “帮我设计一个RAG管道。”
  • “我应该如何分块这个文档?”
  • “为我的用例优化检索。”
  • “我的RAG系统产生幻觉 — 修复它。”
  • “选择合适的向量数据库 / 索引类型。”
  • “创建RAG评估框架。”
  • “调试为什么检索给出不相关结果。”

工具/模型推荐协议

当用户请求供应商/模型/框架推荐时,根据当前主要来源验证声明。

触发器

  • “对于[用例],最好的向量数据库是什么?”
  • “我应该使用什么进行[分块/嵌入/重排序]?”
  • “RAG开发的最新进展是什么?”
  • “[检索/基于证据/评估]的当前最佳实践?”
  • “[Pinecone/Qdrant/Chroma]在2026年仍然相关吗?”
  • “[向量数据库 A] vs [向量数据库 B]?”
  • “对于[用例]的最佳嵌入模型是什么?”
  • “我应该使用什么RAG框架?”

必要检查

  1. 阅读 data/sources.json 并从具有 "add_as_web_search": true 的来源开始。
  2. 验证每个推荐1-2个主要文档(发布说明、基准测试、文档)。
  3. 如果无法浏览,说明假设并提供一个验证清单。

报告内容

检查后提供:

  • 当前格局: 当前流行的向量数据库/嵌入模型是什么(不是6个月前)
  • 新兴趋势: 获得关注的技巧(后期交互、代理式RAG、图RAG)
  • 已弃用/衰退: 失去相关性的方法或工具
  • 推荐: 基于新鲜数据,而不仅仅是静态知识

示例主题(使用当前来源验证)

  • 向量数据库(Pinecone、Qdrant、Weaviate、Milvus、pgvector、LanceDB)
  • 嵌入模型(OpenAI、Cohere、Voyage AI、Jina、Sentence Transformers)
  • 重排序(Cohere Rerank、Jina Reranker、FlashRank、RankGPT)
  • RAG框架(LlamaIndex、LangChain、Haystack、txtai)
  • 高级RAG(上下文检索、代理式RAG、图RAG、CRAG)
  • 评估(RAGAS、TruLens、DeepEval、BEIR)

相关技能

对于相邻主题,参考这些技能:

模板

系统设计(从此开始)

分块与摄取

嵌入与索引

检索与重排序

上下文打包与基于证据

评估

搜索配置

查询重写

导航

资源

模板

数据

每当用户需要检索增强系统设计或调试时使用本技能,而非提示工程或部署工作。