Skip to content

上下文组装、RAG 与 Memory 消费研究综述 ​

摘要 ​

Agent 把 System Prompt、用户消息、检索文档、Memory、工具结果和策略状态拼接成模型可见上下文。安全问题不只在内容是否恶意,还在来源身份、指令优先级、最小披露和跨会话隔离是否在组装过程中保留。System Prompt 泄露是应用上下文问题,不是模型权重机密性问题。

分类介绍 ​

本领域覆盖上下文模板、消息角色、截断、摘要、RAG 与 Memory 的读取和消费。知识库或记忆的存储侧完整性归 A2;第三方内容主动越权成为指令归 A5.1;组装后出现的泄露、优先级和主体混淆归本类。

主要安全风险 ​

  • 不必要的系统指令、凭据或内部状态被发送给模型,扩大可提取范围。
  • 截断和摘要可能移除安全约束而保留攻击内容。
  • 多用户或多 Agent 会话键错误造成上下文串线。
  • 检索内容未携带来源与信任等级,模型无法区分事实、数据和指令。

防护措施与验证方法 ​

采用数据最小化和结构化消息的边界;不在 Prompt 中存放可执行 Secret;为每个上下文片段保留主体、来源、用途与信任标签;在组装后执行策略校验和跨租户测试;对截断、摘要及错误重试做安全回归。

局限与待验证问题 ​

  • 模型 API 的角色和内容类型能否提供可验证的信任隔离?
  • 长上下文截断策略如何避免优先删除安全约束?
  • System Prompt 的知识产权需求与“默认可被用户推断”的现实如何协调?

历史研究成果 ​

该分类下的独立研究关注写入持久状态的内容如何持久化后再次生效。SkillJack 证明“经验到 Skill”的自进化流水线会把恶意经验提炼为独立保存、后续可路由的持久后门(LLM 判定器对原始轨迹检出 98.5%、对提炼后 Skill 仅 11.4%,删除来源记录后已触发样本仍 80% 保持触发);跨会话存储型 Prompt Injection 形式化恶意指令经 Memory、文件、工具缓存持久化后的纳入、传播与延迟触发。共同结论是:清理来源记忆不等于撤销其派生制品,安全控制必须覆盖来源传播、晋升审批、派生关系与级联撤销。

新增的上下文压缩后的护栏存活性检验长对话自摘要是否保留原始安全约束,建议把约束保真、摘要迭代次数和执行前策略重校验纳入记忆系统测试。

When Context Gets Root把组装风险进一步明确为模型侧指令权限提升:六种编码 Agent Harness 在重组工具结果或子 Agent 消息时,会把低信任内容重新编码为高权限角色,使攻击内容在角色边界上被“洗白”。作者演示的影响覆盖机密性、完整性、可用性和代码执行,但结果仍来自受控 Harness 与单篇作者实验。该证据说明,保留文本来源标签还不够;每次模板转换、摘要、转发和角色重编码后都应检查来源与权限是否保持,并在执行点使用独立授权,而不是相信最终消息的表面角色。

新增实验把组装正确性分成“取到了什么、采用了什么、状态如何延续”三个可证伪问题。MemToC在五个 7B–9B 开放权重模型上构造记忆与可执行工具返回冲突,观察到工具返回强烈压过闭卷记忆答案,说明来源优先级必须显式编码,不能从模型偏好推断;SKILL.state用独立执行状态替代不断增长的对话历史,以降低长时延迟和上下文投毒暴露,但其结论是架构级作者实验,未证明状态本身不会被污染。Reconstructing the Right Episode在 10 个领域提供 3,000 道经审核的交错会话题,并以 128k 全量与 1M 上下文的 400 题分层诊断检验“找到正确 episode”,表明显式会话边界的传统长上下文基准会低估重建难度。

金融研究工作流进一步揭示“可检索不等于被用于判断”。Reading Is Not Using固定焦点公司信息,只把无关上下文从 2,000 增至 128,000 token;风险披露仍可被直接检索时,它对投资判断的影响已经降到实验噪声水平。该结果只覆盖论文任务与模型,尚无独立复现,也没有攻击者;其安全含义是验收不能只测 Recall,还要以反事实决策测试确认关键约束是否真正影响最终动作。上述四项研究共同要求分别报告检索、来源裁决、决策影响和状态完整性,不能用任一单项指标替代其余环节。

The Memory Trust Gap把“记忆与当前证据冲突”拆成收益与安全两个不可混用的基线。冻结的 v1 基准包含 300 个基础场景,Benefit 与 Safety 各 150 个、各覆盖 33 个模板族;每题有 3 个动作选项并对三种循环排列取平均,结果用确定性 exact/regex/canonical match 评分而非 LLM Judge。Benefit 在没有记忆时接近 1/3 随机水平;Safety 始终提供正确的权威工具值,因而能测量加入陈旧记忆后相对无记忆基线的净危害。

作者在 Qwen3 0.6B、1.7B、4B 和 8B 上观察到 Benefit 条件下选择陈旧值的比例依次为 0.92、0.99、1.00、1.00,对应相对无记忆基线的准确率变化为 -0.33、-0.35、-0.35、-0.37,四项 95% bootstrap 区间上界均低于 0。显式同时提供新旧两个值时,陈旧值依赖率则为 0.50、0.50、0.01、0.00,说明较大模型能处理显式冲突,却不等于能识别被包装成“当前”的陈旧记录。2×2×2×2 因子实验进一步分解标签、时间新近性、来源权威和位置:去掉记忆标签在各规模都加重过度信任;把陈旧记录标成更新日期对较大模型影响更强;来源权威效应弱且随规模变化小;位置效应在 Qwen3 规模序列中反向。

缓解结果同样不能用一条 Prompt 概括:展示元数据只改善较有能力模型,两个较小 checkpoint 需要在上下文组装前先解析冲突才能恢复准确率。作者还在 Llama-Instruct 规模序列、RGB 与 MisBench 上观察到较大模型的相同方向,并通过“陈旧文档”对照发现该效应并非 Memory 标签独有。结论适用范围仍限于封闭选项、短时单步动作和作者构造的陈旧/当前冲突;没有覆盖开放式长期任务、记忆检索漏召回、攻击者投毒或生产 Memory 更新策略。工程验证应同时报告:无记忆基线、陈旧值依赖率、相对基线净危害、冲突预解析后的恢复幅度,并按模型规模分别校准。

执行状态遗忘与选择性重放把撤销范围从明文 Memory 扩展到摘要、后续记忆、待执行计划和 KV cache。作者把运行时建模为确定性转移系统,证明缺少 token 级归因时,注入步骤 τ 之后的后缀都可能受污染,精确遗忘至少需要重算 T-τ+1 次转移;在三个 Agent 套件、九个基线和三个模型家族中,仅删 Memory 后泄露仍为 0.86–1.00,指令式遗忘在六类探针上 Leak@probes=1.00,源删改后 80% episode 仍按撤销偏好行动。来源引导的选择性重放在作者审计中与完整重启不可区分且最多少算 9 倍 token,但确定性、完整来源图和可恢复检查点是假设,现实远程副作用不能靠本地重放撤销。

相关研究文章 ​

参考链接 ​