真实面经题目 · 原创解析

多跳推理或复杂逻辑查询需要多次 RAG 时,如何优化检索编排、上下文预算、证据聚合,并处理权限隔离与知识时效性?

这题考复杂 RAG 架构。回答要讲多跳检索编排、子问题拆解、上下文预算、证据聚合、权限过滤、知识时效和可审计输出。

出现于:字节跳动 · 后端开发

60 秒回答模板

多跳 RAG 不是把 topK 调大。复杂逻辑查询需要先拆成子问题,分别检索和验证证据,再聚合成最终答案,同时确保每一步都遵守权限和知识时效。 子问题拆解:将复杂问题拆成实体识别、条件查询、时间过滤、关系推理和结论生成等步骤。每一步明确需要什么证据、要访问哪个知识域、成功条件是什么,避免一次检索召回大量无关内容。 检索编排:结合关键词、向量、结构化查询、GraphRAG 或工具 API。上一跳的实体和证据可以生成下一跳 query,但要防止错误证据继续传播,必要时保留多个候选路径并延迟下结论。 上下文预算:每跳都要压缩证据,保留来源、时间、关键片段和置信度。最终上下文优先放高相关、高可信、互相支持的证据,而不是堆满 topK,避免模型在无关片段中找伪线索。 权限隔离:检索前按用户权限过滤索引或元数据,聚合时保持来源权限。不能先召回再在答案阶段遮盖,否则可能泄露标题、摘要或敏感片段,也会污染后续推理步骤。 时效和审计:证据要标注版本、更新时间和过期策略。最终答案应能回溯每个结论来自哪次检索、哪份文档和哪个时间点。 最后要把方案落到可验证的指标、失败兜底和迭代闭环上。面试里不要只讲概念名词,要说明边界、取舍、数据来源、线上观测和出问题后的回滚或人工介入。

考点 拆子问题
难度 真实面经题
回答目标 展示你能设计可控、可追溯、权限安全的复杂 RAG 推理链路。

深入解析

01

子问题拆解

将复杂问题拆成实体识别、条件查询、时间过滤、关系推理和结论生成等步骤。每一步明确需要什么证据、要访问哪个知识域、成功条件是什么,避免一次检索召回大量无关内容。

02

检索编排

结合关键词、向量、结构化查询、GraphRAG 或工具 API。上一跳的实体和证据可以生成下一跳 query,但要防止错误证据继续传播,必要时保留多个候选路径并延迟下结论。

03

上下文预算

每跳都要压缩证据,保留来源、时间、关键片段和置信度。最终上下文优先放高相关、高可信、互相支持的证据,而不是堆满 topK,避免模型在无关片段中找伪线索。

04

权限隔离

检索前按用户权限过滤索引或元数据,聚合时保持来源权限。不能先召回再在答案阶段遮盖,否则可能泄露标题、摘要或敏感片段,也会污染后续推理步骤。

05

时效和审计

证据要标注版本、更新时间和过期策略。最终答案应能回溯每个结论来自哪次检索、哪份文档和哪个时间点。

易错点

  • 把 topK 调大当作多跳 RAG。
  • 不拆子问题,复杂查询一次召回解决。
  • 召回后才处理权限,存在信息泄露。
  • 没有证据版本和时间,答案使用过期知识。
  • 上下文堆满无关片段,模型反而更容易幻觉。

面试官追问

多跳 RAG 如何避免错误传播?

每跳都要校验证据,保留置信度和来源;低置信中间结论不能直接作为下一跳硬条件,应扩大候选或请求澄清。

权限隔离应该在什么阶段做?

应在检索前或索引层做,至少在召回阶段过滤。只在生成答案时过滤会产生泄露风险。

如何处理知识时效性?

索引元数据记录更新时间和有效期,query 可带时间约束,答案展示证据时间;过期内容降低权重或触发重新抓取。

上下文不够放怎么办?

先做证据去重、聚类和摘要,保留支持结论的关键片段;必要时分阶段回答或让模型先生成需要补充的证据清单。