很多团队在做 Dify RAG 时,最容易被表象带偏:同一个问题,今天能召回,明天又像没学过;换个问法,命中的片段完全不同;调了一个 top_k,结果看起来短暂变好,但第二天又掉回去。这类问题真正难的地方,不是“没有参数可调”,而是排查顺序经常反了。参数、切片和数据质量都可能影响召回,但如果不先分层定位,就会在错误的层面反复试错。RAG 召回忽高忽低,通常不是单点故障,而是三个层面叠加:检索参数层:top_k、score_threshold、embedding 模型、重排开关等设置是否与当前知识库规模匹配。切片结构层:文档切得太碎、太长,或者标题、表格、代码块被切坏,都会让向量语义失真。数据质量层:原始文档版本混杂、目录文本污染、OCR 错字、重复片段过多,会让检索候选本身变脏。真正高效的方式不是“想到什么调什么”,而是先判断问题更像哪一层,再进入下一层。下面我给你一套在 Dify 项目里能直接落地的排查顺序。一、先别急着调参数,先确认是不是“假召回问题”很多人看到答案不对,就下意识说“召回差”。但在 Dify 里,最终效果通常至少经过三步: