Iris 回答里没有出处 / 把检索开关和引用回填分开排查

文章导读
Iris 回答里没有出处,通常不是单一故障。一种情况是这一轮压根没触发检索,模型纯靠参数记忆作答;另一种是检索确实跑了并命中片段,但引用没有回填到最终回答里。这两条链路的配置项和日志位置并不在同一处,混在一起调提示词,很容易把触发问题和回填问题互相掩盖。可行的顺序是:先用一个只有文档里才有的问题把「有没有检索」钉死,再判断引用缺失发生在哪一层。
📋 目录
  1. 一 用只有文档里才有的信息提问,判断是否真的检索过
  2. 二 查看这一轮是否触发了检索工具调用
  3. 三 检索已触发但无引用时检查引用回填相关配置
  4. 四 手动把检索片段塞进提示词看回答是否带出处
  5. 五 回到检索未触发的分支处理触发条件
A A

Iris 回答里没有出处,通常不是单一故障。一种情况是这一轮压根没触发检索,模型纯靠参数记忆作答;另一种是检索确实跑了并命中片段,但引用没有回填到最终回答里。这两条链路的配置项和日志位置并不在同一处,混在一起调提示词,很容易把触发问题和回填问题互相掩盖。可行的顺序是:先用一个只有文档里才有的问题把「有没有检索」钉死,再判断引用缺失发生在哪一层。

判断顺序建议固定:先构造只存在于知识库的事实提问,逐字比对回答是否复现;再看本轮是否出现检索工具调用;有调用但无引用,查引用回填开关与片段可见性;无调用,回到触发条件与知识库绑定。每一步都用同一句提问复测,一次只改一个配置,避免两条链路互相干扰。

用只有文档里才有的信息提问,判断是否真的检索过

先区分检索问答与纯生成。检索问答的回答内容应当能追溯到某个上传片段;纯生成则是模型按语言习惯补全,读起来通顺但无法指认来源。构造提问时,要挑一个公开语料里基本不会出现、只写在你文档里的具体事实,例如内部项目名加一个非公开字段,而不是「总结一下这份文档」这类靠常识也能答的问题。

提问示例:
XX 内部结算口径文档里,退货折算系数的默认值是多少?
如果文档中没有写,请直接回答「文档未提及」,不要推测。

把回答记下来做比对,通常会出现三类表现:回答复现了文档里的独有取值,说明检索链路大概率生效;回答「文档未提及」或明显回避,可能是没检索,也可能是检索了但没命中;回答给出一个格式正确、但文档里根本没有的数值,这是最需要警惕的一类,既可能是未检索的纯生成,也可能是检索了但片段没进提示词。记录方式可以很简单:提问原句、回答原句、是否出现该事实、本轮有无工具调用,四项各写一行,前后对比即可看出变化。

查看这一轮是否触发了检索工具调用

判断检索开关的实际状态,不要只看配置页的开关,要看这一轮请求的中间过程。常见观察位置有三处:对话调试面板里的中间步骤或 trace 展开项;后端日志里的工具调用字段,例如 tool_calls、retrieval、search 之类的键名;以及请求体里是否带上了知识库或检索相关参数。

  • 有调用的表现:中间步骤出现一次或多次检索动作,能看到检索词、命中的文档名或片段 ID、返回条数,随后才是模型生成。
  • 无调用的表现:整轮只有一次模型生成,没有任何工具或检索段,日志里也找不到检索词和片段记录。

如果确认无调用,先核对两件事:该会话或该知识库是否真正绑定,以及检索开关是全局、知识库级还是会话级的哪一种。有些实现里全局开关是开的,但具体会话没有挂上知识库,效果等于没开。这一步只用看行为,不用改配置。

检索已触发但无引用时检查引用回填相关配置

工具调用存在、片段也命中了,但回答没有角标、没有来源列表,问题就落在引用回填这一段。需要查看的配置类别通常包括:引用或引用回填开关、引用展示样式、片段可见性设置、是否要求模型在正文中标注来源。把开与关两种状态的可见差异列出来,比反复读文档更快。

Iris 回答里没有出处 / 把检索开关和引用回填分开排查
配置类别开启时的可见表现关闭时的可见表现
引用回填开关回答末尾或句末出现来源标记、片段编号检索照常执行,但回答里看不到任何来源
片段可见性回答能引用片段内的具体措辞只有结论,措辞被改写或省略,无法回指
引用样式设置按设定输出角标、脚注或来源列表来源信息存在但不出现在可见文本里

逐项切换并复测,注意观察点仍是同一句提问和同一份工具调用日志,确认是哪一层把引用截断了。

手动把检索片段塞进提示词看回答是否带出处

这一步绕过回填逻辑,单独验证模型侧。把文档片段直接写进提示词,明确要求标注来源,看模型是否愿意照做。这样可以把「回填配置没生效」和「模型本身不倾向给来源」区分开。

你是问答助手,只能依据下面片段回答。
回答中每个结论后请标注来源编号,格式为 [来源1]。
如果片段中没有相关信息,回答「片段未提及」。

片段1:<粘贴一段真实文档内容>
片段2:<粘贴另一段真实文档内容>

问题:<填入与片段相关的问题>

对照看两种回答:一种是给出了带编号的来源标注,说明模型侧可以配合,问题主要出在回填或提示词模板;另一种是照常作答但完全不加标注,说明当前提示词没有强制引用要求,或者所使用的模型对引用指令不敏感。这个测试只验证模型侧行为,不能替代上一步的配置检查,两者需要一起看。

回到检索未触发的分支处理触发条件

如果工具调用日志显示整轮没有检索动作,就走这一条分支。可调的触发策略通常包括:触发模式,是每轮强制检索、由模型自行判断,还是按意图路由;命中阈值与返回条数,例如相似度下限和 top-k;查询改写,是否在检索前对用户问题做一次改写或拆分;以及知识库绑定范围。

调整方式建议一次只动一项:先把触发模式改为强制检索,确认工具调用能稳定出现;再逐步放宽或收紧相似度阈值和返回条数,观察命中片段是否与提问相关;最后才考虑查询改写,看口语化提问能否被改写成可检索的形式。复测沿用第一节那句文档独有事实的提问,检查三件事:工具调用是否出现、命中片段是否包含该事实、最终回答是否带来源标记。三项都通过,才算这条分支走通。