你让 AI 从合同里列出“卖方的全部义务”,它给出五条,语气很确定,却没告诉你其实还有第六条。问题常不在生成,而在检索:常规 RAG(先从资料中找片段,再让模型回答)只取相关性最高的 Top-K 段落,适合找一条证据,却不保证找全分散在文档各处的项目。
Angela Shi 在 towardsdatascience 的文章中用 NIST Cybersecurity Framework 举例:GOVERN 下共有六个类别,朴素的 Top-5 检索可能只让模型看到其中五个,漏掉分布在另一片段中的 GV.SC。答案读起来仍像完整清单。这类任务更看重召回率——找出的相关项占全部相关项的比例,而不是头几条有多贴题。
文章主张先识别“列出全部”问题,再改用循环式检索:根据已有结果改写查询、扩大范围或沿文档结构继续遍历,并设置停止条件,例如预期数量已满足、目录范围已走完,或连续多轮没有新增。关键不是把 K 调大,而是让系统既会继续找,也有证据说明何时可以停。