一句话定义
权限感知检索(ACL-aware Retrieval,ACL 即 Access Control List,访问控制列表)指的是:在检索这一步就带上当前用户的身份条件,只把这个人有权查看的文档片段召回、放进模型的上下文。
为什么需要它
RAG(Retrieval-Augmented Generation,AI 词典:检索增强生成">检索增强生成)的默认逻辑是"谁问都一样":把问题转成向量,去库里找最相似的几段,塞给模型。它只看语义相似度,不看"这段话你能不能看"。
打个比方。普通 RAG 像一位不查工牌的图书管理员:你说"帮我找份调薪方案",他热情地把全公司所有部门的都抱过来,还替你总结一遍。权限感知检索则要求先刷工牌:HR 能进薪酬柜,销售只能拿到对外口径的版本,前台同事问同一句话,得到的可能是"没找到相关资料"。
落到实现上,文档入库时除了切块、算向量,还要带上权限元数据(属主、可见的用户或组、密级等);检索时把查询者身份换算成过滤条件,与向量检索或关键词召回同时生效,而不是等结果出来再挑。
一个容易踩的坑
有人想省事:先正常检索、生成答案,再检查答案里有没有敏感内容。这不可靠。模型已经读过那段文本,它可能换个说法泄漏出去,也可能因为被要求"别引用"而给出别扭的回答。过滤必须发生在内容进入上下文之前。
和相邻概念的区别
| 概念 | 管的是什么 | 与权限感知检索的关系 |
|---|---|---|
| 传统文档 ACL | 能不能打开某个文件 | 权限的来源,但管不到"片段被喂给模型" |
| 普通 RAG | 哪段内容和问题最像 | 缺了权限维度,就是本文说的问题 |
| 行级安全(Row-Level Security) | 数据库查询返回哪些行 | 思路一致,只是位置不同 |
| 数据脱敏、分级分类 | 文档本身的加工方式 | 互补,可叠加使用 |
对从业者的意义
一,把 ACL 当作检索的一等公民,索引结构要原生支持元数据过滤,而不是事后打补丁。二,权限变更是真正的难点:员工转岗、离职、文档改密之后,索引里的权限必须尽快同步,否则会存在一段"仍然搜得到"的窗口期。三,评估时要专门测"越权召回率",而不只是看召回率和准确率。
对普通职场人的意义
你问公司 AI 助手一个问题,它答"没找到相关信息",未必是资料不存在,可能只是权限没给你。反过来,如果它理直气壮地念出了你没权限看的文件内容,那不是聪明,那是事故。各家系统的规则和边界不尽相同,具体以你所在组织的官方说明为准。
