知识库 × 记忆:给智能体装上「最强大脑」的完整实操指南
2025 年 11 月 15 日,WaytoAGI「AI 智能体训练营」第五课开讲,由吕昭波老师主讲。这节课聚焦智能体开发中两个绕不开的核心模块——知识库(RAG)与记忆(Memory),以「北京旅游小助手」为贯穿案例,从 AI 幻觉的成因讲起,一路拆解数据处理、向量化、变量、长期记忆与数据库的配置方法。无论你是刚入门智能体开发的新手,还是想系统补全 RAG 与记忆知识的产品经理,这篇文章都能帮你把课程中的关键操作与概念一次理清。
为什么需要知识库:从幻觉到 RAG 与微调
吕昭波老师开场先抛出一个老问题:智能体有幻觉,而且幻觉可能带来实打实的麻烦。他举了电商平台的例子——如果用户咨询「你们家菜刀能不能拍蒜」,智能体答错了,就可能演变成公关危机。更隐蔽的风险在于,当回答超出我们自身领域知识时,我们往往连判断对错的能力都没有。
解决幻觉有两条主流技术路线:检索增强生成(RAG) 和模型微调。吕老师用了一个很形象的比喻来解释两者的区别:RAG 是给模型「加一堆书」——把金融、法律、医疗等领域的文档丢给它,扩充知识面;微调则是「改变模型本身」——通过数据集训练,让模型的思维逻辑在特定领域更强。
他特别澄清了一个常见误区:模型参数量不等于知识量。DeepSeek 7B 模型有 70 亿参数,完整版 671B 模型则相当于一位「年长者」,思考逻辑更复杂,但知识面仍然要靠知识库来补。微调的成本从几十块钱(用阿里百炼等平台上传数据集)到几十万不等,而知识库只需几块钱起。因此他给出的实践建议是:先用提示词 + 知识库组合优化到极致,实在不行再考虑微调。
数据处理:知识库质量的生死线
知识库的质量取决于数据,而数据处理的第一个难关是收集。吕老师直言,企业老板以为「数据都有一堆,直接取就行」,但现实是:有证券公司还在用普通 Excel,有学校还在用 QQ 传文件,一线员工不愿意提供数据,收集上来的 100 份资料里 80 份可能是没价值的公司介绍 PPT。更麻烦的是格式问题——有人把 Excel 转成 PDF 交付,导致数据读取准确率大幅下降。
数据清洗是第二道工序。吕老师列出了几类需要处理的问题:Unicode 文本标准化(繁体转简体)、特殊符号与 URL 链接清理、敏感信息打码、重复数据去重(MD5 去重、相似度去重)、以及过滤爬取论坛时混入的广告和不当言论。他提醒,数据污染是真实存在的风险——如果知识库里混入了错误信息,用了反而比不用更糟。
清洗可以借助平台自动化完成。吕老师推荐了阿里百炼、百度千帆、火山方舟三个平台,它们都提供数据管理功能,支持数据清洗和数据增强。数据增强的作用是让模糊概念更明确,提高大模型对数据的理解和采用概率。他还顺带介绍了数据集的概念——训练一个「王多鱼风格」的模型,就需要把王多鱼的对话整理成特定格式的数据集喂给模型。他现场展示了一个微调数据模板,结构很简单:系统角色设定 + 用户输入 + 助理回答,重复几千上万条,模型就能学会特定风格或知识。
RAG 工作流:从分块到向量检索
数据准备好之后,就进入 RAG 的核心流程。吕老师拆解了完整链路:文档先切片(Chunking),再转成向量存入向量数据库,用户查询时在向量库中检索,最后把结果丢给大模型生成回答。
分块策略是第一个关键细节。吕老师展示了一份整理了 22 种分块策略的文档,包括按换行符分隔、按固定字符数切分、按语义切分、按页面切分等。在扣子(Coze)中上传文档时,可以选择自动分段策略或自定义分段。他特别强调,分块质量直接影响检索准确度——如果北京烤鸭的声誉介绍被切碎了,用户问「北京烤鸭为什么名声那么好」时,模型就匹配不到完整信息。
向量化是第二个关键环节。吕老师用「苹果」举例:苹果手机和吃的苹果,汉字一样,但语义完全不同,必须转成向量才能区分。他展示了 8 维向量的示意,再扩展到 768 维、1536 维——每个文本都被转换成一串数字,语义相近的文本在向量空间中距离更近。这个转换过程由专门的 embedding 模型完成,他个人常用北京智源的 BGE 模型和经典的 Bert 模型。
检索环节还有两个进阶概念:召回(Recall) 和 Rerank。召回是从海量文档中初步筛选出可能相关的片段,Rerank 则是用专门的排序模型对召回结果重新打分排序。吕老师用歌手大赛做类比:先海选淘汰不符合条件的,再让专业评委精排,最后把前几名交给大模型综合处理。他建议初学者不必死磕这些概念,可以直接用 AI 工具生成可视化网页帮助理解,或者把概念丢给 AI 编程工具让它边做边讲。
记忆三件套:变量、长期记忆与数据库
知识库解决的是「懂多少」的问题,记忆解决的则是「记得住」的问题。吕老师把扣子中的记忆能力拆成三块,并用「从上海到北京旅游」的场景串起来。
变量分为系统变量和用户变量。系统变量是平台自动收集的信息,比如用户唯一 ID、经纬度、飞书信息、声纹等,合法合规且需用户授权。用户变量则需要开发者自定义,比如昵称、心情、是否带行李等。在提示词中用花括号引用变量名,智能体就能自动识别并保存。吕老师强调,变量有时效性,主要在一次对话过程中生效。
长期记忆解决的是跨会话的偏好记录。开启后,智能体会自动保存与用户的沟通记录和个人喜好,类似上下文工程,只要不删除就会一直存在。第二次、第三次去北京旅游时,智能体就能从长期记忆中召回「用户喜欢喝豆汁」「每次都去后海坐一会儿」这类信息,做出更个性化的推荐。
数据库则用于保存结构化数据。吕老师现场演示了如何为北京旅游小助手创建数据库,配置「旅游景点」「美食小吃」「周边文创」「消费金额」等字段。智能体能够通过语义理解自动判断「北京炸酱面」是美食而非景点,并写入对应字段——这是与传统数据库最大的不同,不需要精确匹配字段名。数据库适合做流水账式的记录,比如去了哪些景点、花了多少钱,长期保存且不删除就一直存在。
现场问答:数据库写入翻车与排查
课程尾声,吕老师现场演示从零搭建北京旅游小助手时,遇到了数据库写入失败的问题。他尝试了多种方法:在提示词中明确要求保存、调整数据库字段描述、更换模型,但数据始终没有写入。直播间同学纷纷支招,最终发现关键在技能配置中需要明确指定「保存到北京数据库」这一动作,加上之后数据成功写入。
吕老师借此总结了经验:智能体的工具调用准确度与基座模型关系很大,当变量、数据库、记忆、工作流、插件同时启用时,自主规划模式可能会出现调用混乱。他建议,如果追求结果精准,可以用工作流节点实现记忆和数据库功能,而不是完全依赖自主规划模式。
要点回顾
- 幻觉的解法:优先用提示词 + 知识库组合优化,再考虑模型微调;微调改变的是思维逻辑,知识库扩充的是知识面。
- 数据质量决定知识库质量:收集难、格式杂、员工不配合是常态;清洗要处理特殊字符、敏感信息、重复数据和数据污染。
- RAG 核心链路:文档切片 → 向量化(embedding)→ 存入向量数据库 → 检索召回 → Rerank 精排 → 大模型生成。
- 分块策略影响检索精度:按语义切分优于按固定字符切分,上传文档时可在扣子中自定义分段策略。
- 记忆三件套:变量管单次对话(系统变量 + 用户变量),长期记忆管跨会话偏好,数据库管结构化流水账。
- 数据库靠语义理解写入:智能体通过字段描述自动判断数据归属,不需要精确匹配字段名。
- 工具调用会翻车:基座模型能力影响调用准确度,复杂场景建议用工作流节点替代自主规划模式。
- 作业建议:基础作业是上传知识库并验证检索;进阶作业可尝试过滤无效数据、保持知识库动态更新、实现多路召回。
直播回放约 203 分钟
播放器来自飞书妙记 · 在新窗口打开