--- title: "Knowledge Base RAG" type: concept last_updated: 2026-04-22 --- ## Definition Retrieval-Augmented Generation(RAG):在 LLM 生成回答前,先从外部知识库检索相关文档片段作为上下文补充,从而让 LLM 基于真实、私有或最新信息作答,而非依赖训练数据截止日期或模型幻觉。 ## Architecture ``` 用户问题 → 编码为向量 → 向量数据库 ANN 检索 → Top-K 相关片段 → 与原问题拼接 → LLM 生成 ``` ## Components | 组件 | 说明 | |------|------| | **文档切分(Chunking)** | 将长文档拆分为适合检索的片段(通常 512-1024 tokens),过小丢失上下文,过大降低精度 | | **Embedding 模型** | 将文本编码为向量(见 [[Vector-Embedding]]) | | **向量数据库** | 存储 embedding 并支持 ANN 检索(Qdrant / Pinecone / pgvector / sqlite-vss) | | **重排序(Reranker)** | ANN 初筛后,用重排序模型(如 BGE-Reranker)精排,提高 top-K 准确率 | | **LLM** | 接收检索片段 + 原问题,生成最终回答 | ## Chunking Strategies | 策略 | 适用场景 | |------|------| | 固定长度切分 | 简单快速,但可能切断语义单元 | | 递归字符切分(Recursive Character Splitting) | 按段落/句子边界切分,保留语义完整性 | | 基于语义切分(Semantic Chunking) | 用 LLM 判定切分点,效果最好但成本高 | | Agentic Chunking | 按工作流/主题边界切分,适合知识库分域管理 | ## Applications in OpenClaw Workflows | 场景 | 说明 | |------|------| | [[YouTube-Content-Pipeline]] | 分享 Slack 链接时,Agent 查询知识库了解用户已有内容,避免重复选题 | | [[Second Brain]] | 个人知识库 RAG,支持跨记忆/文档的语义搜索 | | [[Pre-Build-Idea-Validator]] | 扫描知识库确认是否已做过类似项目 | | [[autonomous-game-dev-pipeline]] | 检索技术债务和已有代码片段 | ## Quality Optimization 1. **Hybrid Search**:向量检索 + BM25 关键词检索融合,提升召回率 2. **Query Expansion**:将用户问题改写为多个视角再检索 3. **Context Compression**:LLM 前对检索片段做摘要压缩,节省 token 4. **Chunk Overlap**:相邻 chunk 重叠 10-20% 防止边界截断关键信息 ## Connections - [[Vector-Embedding]] — RAG 的检索底层 - [[Semantic-Deduplication]] — 语义去重防止 RAG 检索重复片段 - [[OpenClaw]] — 提供 `knowledge-base` skill 实现 RAG - [[Second Brain]] — RAG 的个人知识管理应用