如何构建 AI Agent 知识库:从文档准备到检索验收测试的完整流程
当知识库质量不佳时,Agent 往往不会“完全无法回答”。相反,它可能会检索到过时的版本、混淆适用范围,或引用看似相关实则导致错误结论的段落。构建知识库的目标不是存储更多文件,而是让 Agent 能够针对特定问题,精准找到正确、最新且经过授权的支撑信息。
知识库、持久记忆与技能有何区别?
| 组件 | 核心内容 | 解决的问题 |
|---|---|---|
| 知识库 | 精选的业务文档、规则与常见问题解答 | 该信息基于什么? |
| 持久记忆 | 用户偏好、运行时状态与历史上下文 | 本次交互适用哪些持续上下文? |
| 技能 | 操作流程、工具调用与验收标准 | 应如何执行此任务? |
这三者可以协同工作,但不应混用。稳定的策略应放入知识库,临时的用户偏好应存入记忆,而调用业务系统的流程则应归入技能。
第一步:基于用户问题界定范围
首先,列出 Agent 必须回答或处理的问题,然后反向推导所需资料。客服知识库初期可聚焦产品使用、常见问题及处理政策,而非一次性导入整个共享驱动器。
- 每个问题对应哪个权威来源?
- 哪些问题必须拒绝或转交人工处理?
- 不同地区、产品或客户类型是否有不同的规则?
- 谁负责内容维护,有效期是多久?
第二步:清理资料而非直接上传
- 删除重复副本及明确过时的版本。
- 保留标题、章节和列表结构,避免仅留下无结构的纯文本。
- 对扫描文档先进行光学字符识别(OCR),并人工抽检结果。
- 为价格、政策、权限等高风险信息标注生效日期与适用范围。
- 优先解决矛盾文件之间的冲突,而非让模型自行猜测。
第三步:文本分块与元数据
每个分块应聚焦于一个可独立理解的议题。如果分块过大,检索结果会包含无关内容;如果过小,则会丢失条件与上下文。不要一开始就追求固定的字符数,应先结合实际问题进行验证。
| 元数据 | 用途 | 示例 |
|---|---|---|
| 来源 | 支持追溯至原文 | 产品手册、处理政策 |
| 版本/日期 | 防止引用过时规则 | 生效日期、修订编号 |
| 适用范围 | 减少跨产品误用 | 产品线、地区、部门 |
| 权限 | 限制检索可见性 | 公开、内部、特定团队 |
| 负责人 | 便于更新与修正 | 内容负责人 |
第四步:构建验收测试题集
测试集至少应涵盖可直接回答的问题、需结合多段资料才能回答的问题、资料中无答案的问题、易混淆版本的问题以及涉及未授权信息的问题。评估时,切勿仅关注措辞是否流畅。
- 检索是否找到了正确的段落?
- 回答是否忠实于原文,未捏造事实?
- 是否指出了支撑信息或提供了可追溯的来源?
- 当可用信息不足时,是否明确表示不知道?
- 当权限不足时,是否拒绝返回内容?
第五步:将维护职责纳入流程
知识库上线后会持续老化。每份关键文档都应指定负责人、审核周期与归档方式。发布新版本时,需决定旧版是保留、降权还是移除。
- 业务负责人提交更新。
- 审核员核实事实、适用范围与生效日期。
- 系统创建新索引或更新记录。
- 使用回归测试题验证关键回答。
- 记录变更,并按规范处理旧版本。
常见问题的排查指南
| 症状 | 可能原因 | 建议措施 |
|---|---|---|
| 找不到答案 | 范围缺失、分块不当或用户使用术语不同 | 补充资料、调整分块策略、加入同义表达 |
| 引用过时政策 | 缺少版本元数据或未归档的旧内容 | 补充日期与优先级,妥善处理旧版 |
| 跨部门信息泄露 | 权限继承错误或索引未隔离 | 重新设计知识域与访问控制 |
| 回答看似合理但缺乏依据 | 生成约束过弱 | 要求回答仅基于检索内容,并允许 Agent 拒绝作答 |
常见问题
知识库与 RAG 是一回事吗?
不是。知识库负责内容与日常管理,而 RAG(检索增强生成)是一种从知识库中检索相关内容并提供给模型的方法。存储质量与检索策略同样重要。
更新知识库后需要重新训练模型吗?
知识检索通常无需重新训练模型,但必须确认新内容已处理完毕、完成索引,并通过回归测试验证。
SmaugBrain 应如何使用知识库?
业务材料可与任务工作流结合,使 Agent 在执行任务时可查阅支撑信息。实际支持的格式、容量与检索方式取决于具体配置,不应直接从过时文章的功能描述中进行推断。
上线前的最终检查清单
- 范围由真实问题驱动,而非文件数量。
- 每项高风险知识都具备版本、范围与负责人。
- 测试集包含无答案问题及涉及未授权信息的问题。
- 回答可追溯至原始来源。
- 已明确定义更新、回滚与删除流程。