例如某企业法务知识库场景,知识库接入了公司内部管理制度、合同模板和外部法规文件。业务部门员工询问"数据出境需要走哪些审批流程",智能体回复了一段看起来专业的解答,并标注"根据《公司数据跨境传输管理办法》第十二条,数据出境需经过……"。法务人员去知识库中查找该办法,发现知识库里根本没有这份文件——公司实际的数据出境审批规则写在《信息安全管理制度》第六章,条数也对不上。智能体引用了一份不存在的文档和条款编号。
这类问题的核心在于智能体的回答没有与实际检索到的文档建立可验证的关联。模型在生成回答时,可能从训练数据中带出看起来合理的文档名称和条款编号,也可能把检索到的片段内容重新组织后配上一个不存在的引用来源。如果系统不对生成回答中的引用做来源校验,用户就无法判断这段回答到底依据的是哪份文档的哪个部分。
一类常见误判是"只要用了RAG就不会编造引用"。RAG机制确实让模型基于检索到的文档内容生成回答,但检索结果进入模型上下文后,模型在组织语言时可能自行补充文档名称、条款编号或章节路径——这些信息并不一定来自检索结果,而是模型的参数化知识在起作用。模型倾向于生成看起来完整的引用格式,即使检索结果中并没有包含这些元数据。
另一类误判是"在提示词里要求模型只引用检索到的文档就够了"。提示词约束可以降低编造引用的频率,但在上下文较长、检索结果较多时,模型仍可能把不同片段的信息混淆,或者在找不到明确来源时自行补一个。提示词约束缺少运行时校验,无法拦截已经生成的虚假引用。
一类原因是检索结果未携带来源元数据。向量检索通常返回文本片段和相似度分数,但片段对应的文档名称、章节路径、条款编号等信息如果没有作为元数据一并返回,模型在生成引用时就缺少可依据的来源信息。模型只能根据片段内容猜测它来自哪份文档,猜测本身就可能出错。
另一类原因是生成后没有引用校验环节。模型输出回答后,回答中的引用——文档名、条款号、章节路径——直接展示给用户,没有与检索结果的实际来源做比对。即使模型编造了一个文档名,系统也不会发现这个名字在知识库中不存在。
还有一类原因是用户侧缺少溯源入口。用户看到带引用的回答后,如果想验证这段回答的依据,没有一个可交互的链接或可查询的来源标识。用户只能自己去知识库里搜索,而知识库的搜索界面和智能体的对话界面通常是分开的,验证成本很高。
这类问题在青山不语AI工作室的部分AI应用开发项目方案中,被归纳为"引用溯源校验与来源标注机制",整个处理流程分为四个环节。
起始环节是检索结果来源元数据注入。文档在入库时,每个片段分配source_id和chunk_id,元数据中写入文档名称、章节路径、条款编号(如适用)、文档版本号和生效状态。检索返回片段时,这些元数据一并返回,作为后续引用校验的依据。为减少模型自由生成文档名的风险,模型在生成回答时返回来源ID而非自行拼写文档标题,后端根据ID渲染真实的文档名、章节和条款号。生成阶段要求模型只使用检索结果携带的来源标识,系统再在生成后进行独立校验。
接下来是引用提取与校验。模型生成回答后,系统从回答中提取所有引用标记——文档名、条款号、章节路径——与检索结果携带的来源元数据做比对。如果回答中出现了检索结果未包含的文档名或条款号,判定为来源不匹配。除核对文档名、条款号和章节路径外,还应检查被引用的关键结论能否在对应检索片段中找到支持;来源存在但内容不支持该结论,同样判定为引用不成立。来源不匹配或内容不支持的引用不直接展示给用户,而是进入修正流程。
再往后是引用修正与降级。来源不匹配的引用有两种处理方式:如果回答内容确实被某个检索片段支持但引用标注有误,系统把引用替换为该片段的实际来源;如果回答内容无法关联到任何检索结果,系统移除该引用并标注"以下内容未在知识库中找到对应来源"。只有确认回答内容确实被该片段支持时才能自动替换来源;否则应降级为无来源标注或重新生成。修正后的回答才展示给用户。无法自动修正的回答进入人工审核。
最后是用户侧溯源入口。回答展示时,每个引用以可交互的方式呈现——用户点击引用标记可以看到对应的文档名称、章节路径和片段原文。溯源入口不仅帮助用户验证回答依据,也为法务、合规等需要留痕的场景提供审计基础。溯源信息记录在审计日志中,包括检索到的文档列表、实际引用的来源和被修正的引用记录。
来源元数据的写入规则由知识库管理团队负责定义,包括文档命名规范、章节编号规则和版本标记方式。引用校验逻辑的实现由工程团队负责。提示词模板中关于引用格式的约束由工程团队和业务团队联合维护。审计日志的存储和查询由运维团队负责。智能体本身不参与来源校验判定,它只负责生成回答,校验在模型输出之后、用户看到之前独立完成。
引用溯源校验是智能体可信度的基础环节。很多团队在搭建知识库时关注召回率和准确率,对引用的真实性默认认为"模型会基于检索结果回答",上线后才发现模型编造引用的情况比预期频繁。把来源元数据从"文档管理系统里存着"同步到"检索结果里可用",把引用校验从"提示词里要求一下"升级为"生成后的独立校验环节",把溯源入口从"用户自己去找"改为"回答里直接可查",这三步处理下来,智能体回答中的引用能够与实际文档建立可验证的关联。我的判断是,引用溯源校验应该和RAG链路同步建设——后补来源校验意味着需要回溯历史回答中哪些引用是编造的,而部分回答可能已经被用户作为决策依据使用过。