上一题下一题

多租户知识库出现越权引用时,如何排查检索过滤、权限元数据和缓存隔离

旗舰版
来源:tencent初级工程师RAG问题复现检索链路可观测性缓存失效规则元数据过滤
答案解析

我会把这个问题按链路来排查,因为多租户知识库的越权引用通常不是单点问题,可能出在检索条件、文档权限元数据、索引构建、缓存复用或者生成阶段引用拼接。

可以先确认越权发生在哪一层:

是检索结果里已经返回了其他租户的数据; 还是检索结果正常,但最终回答引用了不该出现的内容; 或者是缓存命中了别的租户之前的结果。

如果检索结果本身已经越权,我会重点看检索过滤条件。

比如向量检索或者全文检索时,必须把 tenant id、kb id、doc id、user id/role id、可见范围这些条件作为强过滤条件传进去,而不是检索后再在业务层过滤。尤其是向量库场景,容易只按向量相似度召回,然后再做权限过滤,这样如果过滤逻辑漏了,或者 topK 不够,就会出现越权或结果异常。

我会检查实际请求到向量库或搜索引擎的查询 DSL,比如:

``json { "filter": { "tenant id": "t1", "kb id": "kb 001", "visibility": ["public", "team a"] } }

登录后查看完整内容