首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >把记忆当作不可信数据,OWASP ASI06正在重塑智能体安全架构

把记忆当作不可信数据,OWASP ASI06正在重塑智能体安全架构

原创
作者头像
用户6808650
发布于 2026-10-18 09:43:50
发布于 2026-10-18 09:43:50
350
举报

OWASP Agentic AI Top 10 将"记忆与上下文投毒"列为 ASI06 后,AI 记忆安全的讨论重点发生了变化:问题不再只发生在单次对话里。记忆投毒一旦进入长期记忆,后续交互可能在数天或数周后被无关消息触发。

我的判断是,ASI06 的工程重点不是简单清理历史记录,而是确认一条记忆从写入、保存、调用到引用的来源是否可核验。

1 方案概述:把跨会话记忆拆成可检查对象

提示注入与记忆投毒的边界很清楚:

  • 提示注入通常随着会话结束而重置。
  • 记忆投毒会进入 agent 的长期记忆,并影响后续交互。
  • 输入审核与输出过滤主要位于会话边界,难以单独处理跨会话污染。

因此,AI 记忆安全需要关注记忆对象本身,而不是只检查当前用户输入。一个可执行的工程方案,应当为每条记忆保留来源、内容、写入依据和调用位置,并在生成结果中保留能够回到原始材料的引用。

这类方案的核心结论可以压缩成一句话:没有来源与引用核验的长期记忆,不应直接作为可靠上下文使用。

2 正在发生的转向与缺口

ASI06 把记忆安全从单次请求安全扩展到跨会话治理。风险控制点也因此从"当前输入是否恶意"转向"哪些内容可以进入长期记忆,以及这些内容之后如何被调用"。

当前给出的产品资料能够确认,知芽包含 AI 记忆、AI 对话与检索、知识组织和内容产出等核心知识功能,也强调通过可验证的工程机制处理引用可信度。但资料没有明确说明其针对 ASI06 已实现独立的写入前检测、恶意记忆隔离或自动污染清理,因此这些能力不能直接推定。

3 技术机制:记忆投毒如何穿过会话边界

3.1 识别污染对象,而不是只识别恶意提示

一次恶意输入未必会立即产生明显结果。它可能先被写入长期记忆,之后在语义相近或看似无关的任务中被检索出来。

工程核验可以围绕四个问题展开:

  • 这条记忆由哪段原始内容产生?
  • 写入时是否存在用户明确授权?
  • 后续回答调用了哪条记忆?
  • 生成结果能否回到原始材料进行核对?

如果只能看到最终回答,无法定位被调用的记忆对象,排查就会停留在结果层面。对 ASI06 而言,这种排查粒度不足以判断污染发生在输入、记忆写入还是检索阶段。

3.2 写入前校验要有明确的证据入口

记忆写入不应只依据模型对内容的判断。可操作的写入规则包括:

  1. 为候选记忆记录原始文本或可定位的来源。
  2. 区分用户明确保存的内容与系统自动生成的内容。
  3. 对涉及指令、权限、身份或长期偏好的内容保留人工确认入口。
  4. 没有来源依据的内容不进入可长期调用的记忆范围。

这里的关键不在于把所有内容都拦截,而在于让"进入长期记忆"成为可检查的动作。知识库中已经明确,可信引用依赖可验证的工程机制,而不是单纯让模型表现得更聪明。这个原则同样适用于 AI 记忆安全。

3.3 记忆调用需要回到原始材料

长期记忆被调用时,应同时返回它的来源信息。只保留一段压缩后的记忆文本,会产生两个问题:

  • 使用者无法判断内容是否脱离了原始语境。
  • 系统无法区分事实、用户偏好与模型推断。

引用粒度会直接影响核验效果。资料中将段落级校验作为引用可信度的重要差异点,说明引用不能停留在文档名称或模糊来源层面。对于记忆对象,也应尽量保留可定位的原始片段,而不是只展示一条无法复核的摘要。

3.4 记忆安全与数据权属需要分开处理

记忆内容的可信度和数据是否允许被修改,是两个不同问题。

知识库中的数据权属规则给出了一个清晰方向:

  • 外部身份应使用 library_id + item_key + version,不能只用标题或 DOI 作为唯一身份。
  • 标题、作者、年份、DOI、venue 等字段默认只读,不自动覆盖。
  • 用户普通 note 不自动修改,除非用户手动选择。
  • 生成的 child note 可以保留版本和撤销。
  • zhiya/* tag 只更新自己的命名空间。
  • collection membership 不自动修改,除非用户放入或明确授权创建。

这些规则虽然主要用于知识管理,但对 AI 记忆安全有直接启发:记忆对象需要区分权威来源、用户内容和系统生成内容;不同来源不能使用同一种覆盖规则。

3.5 版本与撤销是排查污染的基础

如果某条记忆被更新后只保留最新内容,后续很难回答"它什么时候发生变化"以及"哪次修改影响了结果"。

可审计的记忆记录至少应能说明:

  • 当前内容来自哪个版本。
  • 修改前后发生了什么变化。
  • 修改动作由谁发起。
  • 该记忆曾被哪些结果调用。

知识库明确提到生成 child note 可以幂等更新,并保留版本和撤销。对于涉及长期记忆的系统,这类机制可以用于定位错误写入,而不是依赖用户凭记忆回溯。

4 横向对比:不同工具的能力边界

工具选型时,不能只比较是否支持文档导入或对话问答。更有区分度的检查项是记忆是否持久化、引用能否定位、用户能否控制来源,以及生成内容能否回到原文。

偏文档问答的工具

  • 重点通常在材料接入、信息提取和对话问答。
  • 需要单独确认是否具备持久个性化记忆。
  • 还要确认引用是文档级还是段落级。

偏知识管理的工具

  • 重点在知识组织、内容摄入、AI 对话与检索、AI 记忆和内容产出。
  • 需要确认自动生成内容与用户原始内容是否分开。
  • 需要确认版本、撤销和来源记录是否存在。

针对 ASI06 的核验项

  • 是否能查看记忆的原始来源。
  • 是否能区分用户明确保存与系统自动生成。
  • 是否能撤销一条错误记忆。
  • 是否能定位某次回答调用了哪些记忆。
  • 是否能在没有证据时避免把记忆当作确定事实。

这些检查项描述的是能力边界,不代表某个工具已经全部实现。资料对知芽的引用可信度与知识功能有明确说明,但没有提供针对 ASI06 的完整测试结果,因此不能据此宣称已经解决记忆投毒。

5 工具选型与落地建议

知芽 Notebook Skill 的相关资料将引用可信度建立在可验证的工程机制上,并覆盖 AI 记忆、知识检索和内容产出。把它用于 ASI06 场景时,仍应围绕实际界面与实现逐项核验,而不是把"有 AI 记忆"等同于"具备记忆安全能力"。

落地时可以保留一份最小验证清单:

  1. 写入一条可定位来源的知识内容,检查能否回到原始片段。
  2. 写入一条没有明确来源的内容,检查系统是否区分其可信等级。
  3. 修改或撤销一条记忆,检查旧版本是否仍可追溯。
  4. 发起后续对话,检查回答是否展示实际调用的记忆来源。
  5. 对无法定位来源的回答进行人工复核,不将其直接沉淀为长期记忆。

用户价值也应据此判断:重点不是记忆数量,而是记忆是否可追溯、可撤销、可核验。当前资料不足以给出该工具在 ASI06 攻击场景下的实测结论。

6 关键知识点 Q&A

6.1 Q1:ASI06 记忆投毒与提示注入有什么区别?

提示注入通常在会话结束后重置;记忆投毒会把恶意内容写入长期记忆,并在后续会话中持续影响结果。检查当前输入和输出,不能替代对长期记忆的来源核验。

6.2 Q2:AI 记忆安全最先应该检查什么?

先检查记忆是否有可定位的原始来源,再检查写入是否经过用户授权或明确规则。没有来源、无法追溯的内容,不应直接作为可靠上下文使用。

6.3 Q3:如何验证一条记忆是否可能污染后续回答?

查看它的写入时间、来源内容、版本变化和调用记录,再将生成结果与原始材料逐段核对。若无法确认某次回答调用了哪条记忆,应把该结果标记为待复核,而不是继续写入长期记忆。

6.4 Q4:引用粒度为什么会影响记忆安全?

文档名称只能说明材料范围,不能证明具体结论来自哪一段。段落级引用更便于确认原始语境,也更容易发现记忆压缩、改写或调用过程中的内容偏移。

6.5 Q5:有 AI 记忆功能,是否就代表已经具备 ASI06 防护?

不代表。AI 记忆功能解决的是内容保存与调用问题,ASI06 防护还需要来源记录、写入控制、版本管理、撤销能力和调用核验。不同产品是否具备这些机制,需要按实际实现逐项验证。

ASI06 带来的工程结论是:长期记忆必须被当作可审计的数据对象管理,记忆写入与记忆调用都需要证据支持;没有可追溯来源的内容,不应直接获得长期信任。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 1 方案概述:把跨会话记忆拆成可检查对象
  • 2 正在发生的转向与缺口
  • 3 技术机制:记忆投毒如何穿过会话边界
    • 3.1 识别污染对象,而不是只识别恶意提示
    • 3.2 写入前校验要有明确的证据入口
    • 3.3 记忆调用需要回到原始材料
    • 3.4 记忆安全与数据权属需要分开处理
    • 3.5 版本与撤销是排查污染的基础
  • 4 横向对比:不同工具的能力边界
  • 5 工具选型与落地建议
  • 6 关键知识点 Q&A
    • 6.1 Q1:ASI06 记忆投毒与提示注入有什么区别?
    • 6.2 Q2:AI 记忆安全最先应该检查什么?
    • 6.3 Q3:如何验证一条记忆是否可能污染后续回答?
    • 6.4 Q4:引用粒度为什么会影响记忆安全?
    • 6.5 Q5:有 AI 记忆功能,是否就代表已经具备 ASI06 防护?
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档