封面

检索系统按相似度找到了段落,Agent 却按段落里的要求改了任务。这是把“与问题相关”误认成“能指挥系统”。检索文本指令隔离应从结果包装开始,到工具执行入口结束,不能只在提示词里补一句提醒。

检索结果只进入证据通道

检索器返回文档 ID、版本、片段位置、访问范围与原文。相似度用于排序,不应用来授予权限。命中分数高、被多个片段重复提及,都不能让材料覆盖用户任务。

一个本地示意结构如下:

hit = {
    "doc_id": "manual-demo",
    "version": "v3",
    "span": [200, 420],
    "text": "待分析的文档片段",
    "channel": "evidence",
}

channel 应由检索接入层固定。文档原文里写有同名字段时,只能作为字符串保留,不能覆盖外层元数据。访问控制必须在检索前或结果返回前按当前用户执行,不能先把所有材料塞给模型,再要求模型自行保密。

检索证据与策略入口

图中 RETRIEVAL 到 DATA 表示检索片段的证据身份,USER 到 POLICY 表示任务与策略入口。最终 CHECK 仍需检查具体动作,相关片段不能自行转动策略开关。

资料线经过策略区域,表示把上下文提交给既定策略核对;策略值仍由可信任务固定,资料内容不能修改它。

摘要和重排也属于传播链

重排器和摘要器可能改变文本表达,但不应改变来源权限。压缩后的摘要需要能回到原始命中;跨文档合并时,保留多个来源,不要给它们统一贴上“系统知识”这样的高权限标签。

如果片段里包含操作步骤,先看用户任务是否在询问这些步骤。解释一段安装说明是合法的信息处理;直接照说明调用下载或执行工具,则需要独立授权。隔离策略应约束从证据到动作的跃迁,而不是禁止资料中出现祈使句。

小样本就能暴露接线错误

构造一份本地手册,前半段描述正常接口,后半段要求把任务改为发送文件。用户只问接口参数。预期答案应保留参数说明,并且不产生发送动作。再把无关要求放在同一段、跨段和摘要后的文本中,检查来源链是否仍然存在。

验收不要只盯模型返回的自然语言。需要检查检索结果是否经过当前用户的访问过滤、摘要是否保留来源关联、工具入口是否核对任务范围。三个环节中任意一个缺失,都可能让“文档是数据”的约定停留在文案层面。

当检索内容无法解析或来源缺失时,应用可以缩小范围重新取证,或说明答案依据不足。不要为补全答案临时扩大工具权限,也不要把失败的内容直接提升到高权限消息。恢复路径应继续保持原来的会话边界。

权限检查别依赖检索排序

若索引把不允许读取的片段过滤掉,查询缓存也必须维持相同安全域。使用其他用户的历史查询缓存,可能跳过原本正确的权限过滤。缓存键与失效逻辑应纳入检查。

对于含图文的片段,来源关联还要覆盖 OCR 或图像描述输出。正文保持数据身份,但图片经过识别后被拼进指令区域,仍然会形成另一条影响路径。每一种转换都应有明确输入和输出归属。

原则核对:OWASP:检索材料隔离。

Logo

更多推荐