进阶
RAG 知识库搭建:让 AI 懂你的业务
AI Agent 回答问题总是"一本正经地胡说"?RAG(检索增强生成)是解决幻觉的核心技术——让 Agent 先从你的文档中找答案,再组织语言回复。本教程带你从零搭建一个可用的企业知识库。
💡 本教程涉及向量数据库和 Embedding 概念。不会写代码也能跟着做——OpenClaw 和 KimiClaw 已经封装了底层能力。
理解 RAG:三步工作流
1 RAG 的核心流程
RAG 工作流:
用户提问
↓
① 检索:从知识库中找到相关文档片段
↓
② 增强:把检索结果作为上下文注入 Prompt
↓
③ 生成:大模型基于真实文档生成回答
vs. 纯大模型回答:
用户提问 → 大模型"脑补" → 可能幻觉 ❌
vs. RAG 回答:
用户提问 → 检索真实文档 → 基于事实回答 ✅
🔑 关键洞察:RAG 的效果 70% 取决于检索质量,30% 取决于生成质量。优化检索比优化 Prompt 收益更大。
步骤一:准备与清洗文档
2 文档预处理
把企业文档整理为 AI 可用的格式:
文档预处理清单:
1. 格式统一
- PDF → 提取文本(用 KimiClaw 上传解析)
- Word → 导出纯文本
- 表格 → 转为 Markdown 表格
- 图片中的文字 → OCR 提取
2. 质量清洗
- 删除页眉页脚、水印
- 修复断行和乱码
- 统一术语(如"客户"/"用户"/"会员"选一个)
- 补全缺失的上下文(表格需要标题行)
3. 结构化标注
- 每个文档添加元数据:
{来源, 版本, 更新日期, 分类标签}
- 长文档按章节拆分,保留层级关系
📊 实测建议:100 页以内的文档,手动清洗约 1 小时。超过 500 页,建议写脚本批量处理。KimiClaw 支持批量上传和解析。
步骤二:文档切分策略
3 切分的艺术
文档切分直接影响检索效果。常见策略对比:
切分策略对比:
┌──────────────┬──────────┬──────────┬──────────┐
│ 策略 │ 切分粒度 │ 检索精度 │ 适用场景 │
├──────────────┼──────────┼──────────┼──────────┤
│ 固定长度 │ 粗 │ 中 │ 通用 │
│ 按段落 │ 中 │ 中高 │ 文档 │
│ 按语义 │ 细 │ 高 │ 专业知识 │
│ 按章节+段落 │ 灵活 │ 最高 │ 复杂文档 │
└──────────────┴──────────┴──────────┴──────────┘
推荐配置:
- 基础切分:500 tokens/块,重叠 50 tokens
- 进阶切分:按标题切分,每块不超过 800 tokens
- 关键参数:overlap(重叠)防止语义断裂
示例:
原文:"3.2 退款政策 | 自购买日起7天内可申请退款,
需提供订单号和退款原因。超过7天不支持退款。"
切分后(带元数据):
{
content: "自购买日起7天内可申请退款...",
metadata: {
source: "用户手册v3.2",
section: "3.2 退款政策",
page: 15,
updated: "2026-03-01"
}
}
步骤三:向量化与存储
4 把文本变成向量
在 OpenClaw 中配置知识库:
OpenClaw 知识库配置:
1. 创建知识库
名称:公司产品知识库
描述:包含产品手册、FAQ、政策文档
2. 上传文档
支持格式:PDF、DOCX、TXT、MD、CSV
批量上传 → 自动切分 → 自动向量化
3. 选择 Embedding 模型
推荐:
- 中文为主:bge-large-zh-v1.5
- 中英混合:m3e-base
- 高精度:text-embedding-3-large
4. 配置向量数据库
OpenClaw 内置 → 零配置
自建部署 → 推荐 Milvus 或 Qdrant
⚡ 性能提示:Embedding 模型选对,检索准确率提升 20-30%。中文场景务必选中文优化的模型,不要用英文模型凑合。
步骤四:检索优化
5 让检索又快又准
默认检索往往不够精准,需要调优:
检索优化三板斧:
1️⃣ 混合检索(推荐)
向量检索(语义相似)+ 关键词检索(精确匹配)
权重:向量 0.7 + 关键词 0.3
→ 兼顾"意思相近"和"字面匹配"
2️⃣ 重排序
初步检索 Top 20 → 用 Cross-Encoder 重排 → 取 Top 5
→ 精度提升 15-25%
3️⃣ 查询改写
用户原始问题 → AI 扩展为多个检索词 → 合并结果
示例:
用户问:"退款要多久"
改写为:["退款处理时间", "退款到账周期", "退款流程时长"]
6 配置 Agent 的 RAG Prompt
在 Agent 系统提示中明确 RAG 行为规则:
你是一个基于知识库的客服助手。回答规则:
1. 优先使用检索到的知识库内容回答
2. 如果知识库中有明确答案,直接引用并标注来源
3. 如果知识库内容不足以回答,明确告知用户
"根据现有资料,我无法确认这一点,建议咨询___"
4. 绝不编造知识库中没有的信息
5. 引用格式:【来源:{文档名} - {章节名}】
回答模板:
📝 回答:___
📚 依据:【来源:___】
🔄 相关问题:___
步骤五:评估与迭代
7 建立评估体系
用 50 个真实问题测试知识库效果:
评估指标:
1. 检索召回率:相关问题是否被检索到?
目标:≥ 90%
测试:50 个问题中,至少 45 个检索到正确文档
2. 回答准确率:生成的回答是否正确?
目标:≥ 85%
测试:人工评判 50 个回答的正确性
3. 引用准确率:标注的来源是否真实存在?
目标:100%
测试:每个引用都能追溯到原文
4. 拒答率:不确定时是否正确拒答?
目标:该拒的都拒,不该拒的不拒
常见问题与修复:
- 召回率低 → 调整切分策略或增加 overlap
- 准确率低 → 优化 Prompt 或增加重排序
- 幻觉仍存在 → 加强"必须引用来源"的规则
- 拒答过多 → 扩充知识库覆盖面
📈 迭代节奏:每周分析 20 条用户提问日志,补充知识库缺口。1 个月后准确率通常可从 70% 提升到 90%+。
进阶:多知识库协同
8 按业务线拆分知识库
企业级知识库架构:
📦 产品知识库 → 产品参数、使用指南、常见问题
📦 政策知识库 → 退款政策、隐私条款、合规要求
📦 运营知识库 → 活动规则、促销方案、价格体系
📦 技术知识库 → API 文档、故障排查、部署指南
路由策略:
1. 用户提问 → 意图识别
2. 路由到对应知识库检索
3. 跨库问题 → 多库并行检索 → 合并排序
优势:
- 每个库独立更新,互不影响
- 检索范围更精准,噪声更少
- 权限可控,不同角色访问不同库