Dify 知识库搭起来不难,真正麻烦的是上线后发现“问不到、答偏、看起来像在瞎编”。很多人第一反应是换模型、换提示词,但实际排查下来,问题往往不在模型,而在知识库资料、分段方式、检索测试和答案边界。
如果你已经看过 Dify 知识库怎么搭,这篇可以当作进阶排查清单。前一篇更偏搭建流程,这一篇重点解决“搭好了但不好用”的问题。
这类问题也适合放到 AI智能体与自动化专题 和 AI工具评测专题 里理解:AI 应用能不能稳定交付,关键不是演示时回答一次,而是面对真实用户的各种问法时,能否持续给出可追溯的答案。
先判断:到底是“没召回”还是“召回了但答错”
Dify 知识库效果差,第一步不要急着改提示词。你要先把问题分成两类:
- 没召回:知识库里明明有资料,但检索结果没有找到相关片段。
- 召回了但答错:检索结果里有相关片段,但模型理解错、拼接错或没有按资料回答。
这两类问题的解决方法完全不同。没召回要改文档结构、分段、关键词和检索配置;召回了但答错,要改提示词边界、答案格式、引用规则和人工复核流程。混在一起改,很容易越调越乱。
问题一:文档太长,分段后关键信息被切碎
很多知识库效果差,是因为原始文档太像“给人看的制度文件”,不适合给检索系统用。比如一个 PDF 里同时有背景、适用范围、流程、表格、责任人和附件,Dify 分段后可能把问题和答案拆到不同片段里。
优化方法是把文档改成更适合检索的结构:
- 一个段落尽量只解决一个问题;
- 标题里写清楚业务场景,比如“退款申请需要哪些材料”;
- 关键条件不要只放在上一段,要在答案段里重复一次;
- 表格内容尽量转成清晰条目,不要只上传截图;
- 旧版本、废止流程和新流程分开,不要混在同一份文档里。
简单说,RAG 知识库不是资料仓库,而是问答素材库。资料越像“可直接回答的问题集合”,命中率越高。
问题二:用户问法和文档写法差太远
文档里写的是“售后处理时效”,用户问的是“多久能退款”;文档里写的是“账号权限开通流程”,用户问的是“新人怎么登录后台”。这种情况下,资料存在,但关键词对不上,召回就容易失败。
解决办法不是堆更多资料,而是给知识库补“同义问法”。你可以为高频问题增加一段专门的问法扩展:
- 用户可能怎么问;
- 内部文档里的正式名称是什么;
- 哪些词其实指向同一件事;
- 哪些问题必须转人工,不允许自由发挥。
这一步很适合用 AI 辅助完成。把真实用户问题、客服聊天记录或表单留言整理出来,让 AI 帮你归类同义问法,再人工确认后写回知识库。
问题三:没有测试集,只靠感觉判断效果
很多人调 Dify 知识库,只是随便问几个问题,感觉回答还行就上线。真实使用时,用户问法一变,问题就暴露出来。
更稳的做法是准备一个小型测试集。哪怕只有 30 条,也比靠感觉强。测试集至少包含四类问题:
- 标准问题:资料里有明确答案,应该直接回答。
- 变体问题:意思相同,但用户说法更口语。
- 边界问题:资料里没有答案,应该说明无法确认或转人工。
- 混合问题:需要同时引用两个以上片段,测试模型能否整合。
每次改分段、改资料或改提示词,都用同一批问题跑一遍。这样你才能知道优化是变好了,还是只是在某几个问题上看起来变好了。
问题四:提示词没有限制“只能根据知识库回答”
召回结果没问题,但答案还是飘,通常是提示词边界太弱。知识库问答不是普通聊天,不能让模型自由补充太多。
一个更稳的提示词思路是:
- 优先根据检索到的知识库片段回答;
- 资料不足时明确说“当前资料无法确认”;
- 涉及价格、退款、法律、医疗、合同等高风险内容时转人工;
- 回答后给出引用依据或资料来源;
- 不要编造政策、日期、联系人和承诺。
这和 Dify工作流日志怎么用 里的思路一致:AI 应用上线后,真正重要的是可追踪、可解释、可复盘,而不是单次回答看起来很聪明。
问题五:把所有资料都塞进一个知识库
知识库不是越大越好。资料过杂时,检索结果会互相干扰。比如你把销售话术、售后政策、内部培训、旧活动方案、产品手册全部混在一起,用户问一个简单问题,系统可能召回多个方向的片段。
更好的做法是按使用场景拆分知识库:
- 客服知识库:只放面向客户可回答的内容;
- 内部 SOP 知识库:放员工流程、权限、责任分工;
- 产品资料库:放参数、功能、适用人群和常见对比;
- 销售话术库:放异议处理、报价说明和成交案例。
如果确实需要一个应用同时访问多个知识库,就要在工作流里先判断问题类型,再路由到对应知识库,而不是让所有资料一起竞争。
Dify知识库优化的实用检查表
你可以按下面这张清单逐项排查:
| 检查项 | 常见问题 | 优化动作 |
|---|---|---|
| 原始资料 | 文档太长、旧版新版混在一起 | 拆分场景,删除过期内容,补清晰标题 |
| 文档分段 | 问题和答案被切到不同片段 | 让每段包含完整问题、条件和答案 |
| 用户问法 | 口语问题匹配不到正式术语 | 补同义问法和关键词映射 |
| 检索测试 | 只凭感觉试问几次 | 准备固定测试集,每次改动后复测 |
| 答案边界 | 资料不足时模型硬答 | 提示词要求无法确认时转人工 |
适合普通人的优化顺序
如果你不知道从哪里开始,按这个顺序最稳:
- 先收集真实问题:不要只用自己想象的问题测试。
- 再清理资料:删掉过期、重复、含糊和互相冲突的内容。
- 重写高频问题段落:让每个段落都能独立回答一个问题。
- 建立测试集:标准问题、口语变体、边界问题都要有。
- 最后再调提示词:提示词是约束,不是替代资料质量的魔法。
如果你是给客户交付知识库服务,这个过程也可以包装成一个很清楚的交付包:资料诊断、问题集整理、知识库重构、测试报告和上线复盘。它比单纯“帮你搭一个 Dify”更容易体现价值。
老达点评:RAG不是上传资料就结束
Dify 知识库命中率低,本质上是在提醒你:AI 应用不是把资料上传进去就能自动变聪明。RAG 的关键,是让资料、问题、检索和回答形成闭环。
我更建议把知识库当成一个需要持续运营的产品。每次用户问不到,都是一次补资料、改分段、补同义问法的机会。每次答偏,都是一次收紧提示词和人工边界的机会。
真正稳定的 Dify 应用,不是第一次演示很惊艳,而是上线一个月后,仍然能从日志里看出问题、持续修正,并且让客户信任它的答案来源。
延伸阅读
- AI智能体与自动化专题:系统查看 Dify、n8n、MCP 和 Agent 工作流。
- AI工具评测专题:继续比较主流 AI 工具的适用场景。
- Dify知识库怎么搭:从文档切分、召回测试到 RAG 问答上线。
- Dify工作流日志怎么用:排查失败、优化提示词和质检回复。