针对LLM助手长期记忆系统的审计检查清单,涵盖输入摄取、存储、检索、组装和反馈的完整闭环,覆盖向量、图谱、语义等多种记忆模式。
格式:审计检查清单 — 置于手边,逐项核验。版本:1.1(2026-08-21)适用范围:任何具有长期记忆(对话、情景、语义、向量、图、多模态)的基于 LLM 的助手和智能体,不受技术栈和平台限制。
审计遵循一个通用记忆循环模型。每个检查项都映射到此模型中的一个节点或边。
输入(用户、文件、网络、图片、其他智能体、外部模型)
→ 摄取(验证、意义提取、重要性评分)
→ 存储(消息、情景、概念、向量、图、缓存)
→ 检索(相关性、新鲜度、重要性、边界)
→ 组装(格式化、压缩、注入、预算)
→ 模型 / LLM
→ 输出(响应、动作:文件、搜索、记忆调用)
→ 反馈(输出返回至摄取) ← 循环闭合
关键属性是闭合性:任何进入记忆的内容都会回到模型,并能够自我再生产。大多数严重的记忆故障是边故障,而非节点故障。
从第 0 节(映射)开始。没有完整的存储映射,其他节的结果不可靠。
按 A–K 节顺序执行。每个项目标记为:是 / 部分 / 否 / 不适用。
对于每个"否"和"部分",记录证据:文件和行号、SQL 查询及结果、转储、提示快照、日志条目。没有证据的断言不视为已验证。
关键性标记:[CRIT] — 直接面临丢失、污染、泄漏或失控记忆增长的风险。失败 = 阻断项。[IMP] — 静默质量和可预测性退化风险。[REC] — 成熟度和可维护性。
[ ] 0.1 编制完整的存储映射:关系型数据库、文件和向量索引、JSON 存储、缓存(内存和磁盘)、外部数据源。[CRIT]
[ ] 0.2 对每个存储,确认写入和读取它的模块(读/写所有权)。[CRIT]
[ ] 0.3 确认所有访问键:哪些字段用于写入,哪些用于检索;确认写入键与读取键匹配。[CRIT]
[ ] 0.4 确认模型输出(响应、报告、动作结果)返回至记忆输入的所有通道。[CRIT]
[ ] 0.5 验证:分析的代码与执行的代码一致(检查 imports、确认活跃实现、不存在"死"的并行版本)。[CRIT]
[ ] 0.6 捕获基线指标:存储量(记录数/字节数)、典型组装上下文大小(token 数)、检索时间。[IMP]
[ ] 0.7 确认用户或外部内容进入特权(系统)提示部分的所有入口点。[CRIT]
[ ] A1 所有外部来源(监视目录中的文件、网络内容、图片、其他智能体的输出)在写入记忆前通过信任过滤。[CRIT]
[ ] A2 密钥(密钥、令牌、密码、个人数据)在索引和向量化前被检测并排除。[CRIT]
[ ] A3 服务内容(日志、诊断报告、服务标记、提示)被标记并从上下文组装中排除(尽管它可能保留在历史记录中)。[CRIT]
[ ] A4 意义提取不混淆形式与含义:代码片段、语法、路径和技术标记不会成为"概念"或"记忆"。[IMP]
[ ] A5 每条记录都捕获来源信息:来源、时间、编写智能体、会话。[IMP]
[ ] A6 来自不可信来源的记录被降低权重或被置于单独的信任区域。[IMP]
[ ] A7 多模态输入中嵌入的内容(图片中的文本、文件元数据)经过与显式文本相同的验证。[CRIT]
[ ] B1 写入是幂等的:事件的重复传递(重试、更新重复、双重调用)不会产生重复 — 在应用层做去重或在 schema 中加 UNIQUE 约束。[CRIT]
[ ] B2 去重方向正确:保留当前记录,抑制旧重复记录(而非相反)。[CRIT]
[ ] B3 去重基于语义/内容键,而非仅基于"内容+来源"对 — 捕获跨来源重复。[IMP]
[ ] B4 多存储写入(消息 + 向量 + 索引)是事务性的或可补偿的:排除部分写入("消息已保存,向量未保存")。[IMP]
[ ] B5 写入失败不是静默的:记录日志、发送指标、重试并带退避策略;静默返回 False 且无可观测性是不可接受的。[CRIT]
[ ] B6 压缩表示(摘要)与原始内容一致写入;空的/失败的压缩不会替换原始内容。[CRIT]
[ ] C1 每个存储都定义限制或保留策略(最大容量、历史深度、溢出行为)。[IMP]
[ ] C2 重新索引/重建是幂等的:重复运行不会导致记录倍增。[CRIT]
[ ] C3 定义配额:单条记录大小、每个会话/来源的记录数、每个容器的总体积。[IMP]
[ ] C4 向量索引与源同步:记录的删除/抑制反映在索引中;操作顺序(清理源 → 重建索引)被定义并执行。[CRIT]
[ ] C5 缓存(内存结构、摘要缓存)有 TTL 或失效机制,并被纳入增长映射。[IMP]
[ ] C6 监控容量动态;异常(单次操作数量级增长)触发告警。[IMP]
[ ] C7 通过哈希进行多模态输入去重不会产生无限计数器增长,也不会允许通过一系列独特变体"淹没"记忆的新鲜度。[IMP]
[ ] D1 记录的静态"重要性"不能弥补低相关性:应用上下文自适应评分(重要性权重根据与查询的接近程度调整),并使用软相关性阈值,低于该阈值的记录即使重要性高也不会进入上下文。[CRIT]
[ ] D2 启发式门控("对话式查询 → 最小记忆")不会为合法查询完全禁用长期记忆;门控条件狭窄且可审计。[CRIT]
[ ] D3 重要性启发式算法能抵抗通货膨胀:用户不能通过淹没、问号、关键词或其他透明技术来提升记录的排名。[IMP]
[ ] D4 最近优先 boost 由阈值限制:新的不相关内容不会取代旧的相关内容。[IMP]
[ ] D5 检索在重启之间是确定性的:键是持久化的;不确定性的哈希/标识符不用作访问键。[CRIT]
[ ] D6 阈值、限制和检索权重外部化到配置中,而非硬编码为魔法数字。[REC]
[ ] D7 外部驱动的重要性抑制(由外部内容归档、由用户回复将会话标记为"已解决")受阈值、新鲜度保护和当前动作范围约束。[CRIT]
[ ] D8 嵌入模型与数据的语言相匹配;当模型变更时,使用嵌入的所有存储必须重新索引。[CRIT]
[ ] E1 禁止盲目截断:任何缩短都是语义摘要;不完整的句子片段不会进入提示。[CRIT]
[ ] E2 完整原始内容与压缩表示分开存储(两阶段存储:历史中的原始内容,上下文中的压缩内容)。[CRIT]
[ ] E3 压缩表示缓存在变更、恢复或重新评估源时失效;定义 TTL。[IMP]
[ ] E4 结构化块(代码、表格)被排除在压缩之外或完整保留。[IMP]
[ ] E5 为每个注入的块定义预算(字符数/token 数),包括工具结果和记忆。[IMP]
[ ] E6 用户输入在严格验证所有字段之前不进入特权提示块(优先级、系统部分、记忆头)。[CRIT]
[ ] E7 可信标记(系统前缀、工具标记、记忆源标签)不能被用户文本模仿 — 输入被过滤其格式。[CRIT]
[ ] E8 用户查询中的通配符(%、_)和元字符在 LIKE/正则记忆搜索中被转义。[IMP]
[ ] E9 从模型响应文本中提取的命令/动作(文件操作、搜索、记忆调用)经过验证:路径、权限、确认、限制。[CRIT]
[ ] E10 存在保护情感重要记录免受摘要和衰减的机制(受保护/活跃记忆);受保护记录的最大数量有上限。[REC]
[ ] E11 关键信息放在上下文窗口的开头和结尾,而非中间;对于长上下文(16K+ token),需考虑位置注意力衰减效应(参考:Liu et al., "Lost in the Middle," 2023)。[IMP]
F节. 反馈循环(FEEDBACK LOOP)
[ ] F1 模型输出(回复、报告、操作结果)在返回内存前经过过滤:元内容("对分析的分析"、服务摘要、关于上下文本身的报告)不作为常规内容写入。[CRIT]
[ ] F2 摘要器/压缩器不通过主 LLM 客户端关闭循环:调用是纯净的(无历史记录、无保存到内存)。[CRIT]
[ ] F3 摘要的摘要是不可能的(重复压缩是空操作)。[IMP]
[ ] F4 存在递归产物检测器:元响应签名、内存中模型生成内容的比例控制、增长告警。[IMP]
[ ] F5 插入到响应文本中的记忆召回结果不会在未经过滤的情况下"泄漏"回长期记忆。[CRIT]
[ ] F6 "输入错误 → 扭曲的响应 → 将扭曲写入记忆"这条路径被切断:上下文组装错误不会被伪装成有效内容。[CRIT]
G节. 隔离与信任边界(ISOLATION)
[ ] G1 隔离边界不是退化的:一个实际上总是返回相同值(单一作用域标识符)的过滤器不是边界,而是对边界的模仿。[CRIT]
[ ] G2 跨作用域转移只能通过显式受控通道(桥接、映射、允许的关联)实现,而非通过共享搜索。[IMP]
[ ] G3 回退检索分支不会为了"返回一个结果"而返回无关内容:空结果比随机填充更诚实。[IMP]
[ ] G4 外部存储(属于其他系统)通过契约连接:外部端的 schema/语义变更会被检测到,而非被静默吸收。[IMP]
[ ] G5 基于哈希去重的首次写入描述闩锁不是不可撤销的:支持描述更新和重新感知时的再描述。[IMP]
[ ] G6 域/作用域分类对改写具有鲁棒性;分类错误不意味着内容可见性的不可恢复丢失(存在恢复路径)。[IMP]
[ ] G7 长期优先级受到临时提升的压制保护:定义了最大提升生命周期和基础权重恢复机制。[IMP]
H节. 并发与迁移(CONCURRENCY)
[ ] H1 存储访问是统一的(连接池/单一网关);不存在带有互斥锁的多个独立连接。[IMP]
[ ] H2 共享可变状态(优先级、提升、缓存、会话标志)在线程/多线程异步处理中受到竞态保护。[CRIT]
[ ] H3 时间间隔(衰减、新鲜度、TTL)从单调时间源计算;系统时钟变化不会破坏逻辑。[IMP]
[ ] H4 Schema 迁移是幂等的(变更前进行存在性检查),伴随备份和试运行;排除部分应用或使其可检测。[CRIT]
[ ] H5 测试与生产存储隔离:临时/内存数据库、模拟外部 API,不对实时数据进行并发访问。[CRIT]
[ ] H6 单个事件的重复处理(系统输入层的幂等键)排除双重生成和双重写入。[IMP]
I节. 可观测性与恢复(OBSERVABILITY & RECOVERY)
[ ] I1 记忆污染监控是可操作的:模式签名、质量分数、告警阈值。[IMP]
[ ] I2 排除静默降级:每个优雅降级都伴随指标/告警,而非仅一行日志;以 stub 大规模替换记忆是可检测的。[CRIT]
[ ] I3 备份是定期的;恢复流程已在实践中验证(恢复演练),而非仅凭副本存在来判断。[IMP]
[ ] I4 数据删除是软删除:通过权重压制/归档而非 DELETE 实现;恢复路径(取消归档)已实现并经过测试。[IMP]
[ ] I5 存在健康检查:用于存活验证、存储间计数器一致性以及外部依赖可用性的现成命令。[IMP]
[ ] I6 辅助基础设施(Web 控制台、管理面板)的可用性受认证保护;它们不会对外暴露记忆。[CRIT]
[ ] I7 存在诊断对话协议——对智能体进行关于其上下文状态的结构化提问("你看到了什么?"、"什么在干扰?"、"缺少什么?"),作为外部指标的补充。[REC]
[ ] I8 自适应行为参数(人格特质、风格校准)在重启后持久化;在每次启动时验证恢复。[IMP]
J节. 变更管理(CHANGE MANAGEMENT)
[ ] J1 每次观察间隔一个逻辑变更;排除同时进行独立修改(否则回归原因不可定位)。[CRIT]
[ ] J2 变更的成功标准是可测量的:变更前捕获基线(用 token/数字,而非"肉眼"),变更后测量。[IMP]
[ ] J3 每个已解决的事件都附带回归防护测试关闭;没有测试的修复被视为不完整。[IMP]
[ ] J4 在上线测试之前进行上下文组装的本地验证("模型实际会看到什么"的快照)。[IMP]
[ ] J5 变更是可逆的:每次提交一个变更,单个步骤的回滚不会牵连相邻步骤。[IMP]
[ ] J6 维护文档循环:诊断 → 规格说明 → 评审 → 会话日志 → 报告 → 解决后模式(泛化及适用性信号);在每个新规格说明开始时检查模式的适用性。[REC]
K节. 快速诊断(问题气味)
症状 → 可能的缺陷类别。用于完整遍历前的快速导航。
审计结果协议
完成遍历后填写:
审计日期: ______
被审计系统: ______
系统映射完成: 是 / 否(若否——审计未完成)
| 节 | 条目数 | 是 | 部分 | 否 | n/a | 失败 [CRIT] |
|------|-------|-----|------|----|-----|---------------|
| 0. 映射 | 7 | | | | | |
| A. 输入验证 | 7 | | | | | |
| B. 写入完整性 | 6 | | | | | |
| C. 增长 | 7 | | | | | |
| D. 检索 | 8 | | | | | |
| E. 组装 | 11 | | | | | |
| F. 反馈循环 | 6 | | | | | |
| G. 隔离 | 7 | | | | | |
| H. 并发 | 6 | | | | | |
| I. 可观测性 | 8 | | | | | |
| J. 变更管理 | 6 | | | | | |
结论:
- 不通过:存在任何 [CRIT] 失败——列出:______
- 带警告通过:[CRIT] 无问题,存在 [IMP] 失败:______
- 符合:不存在 [CRIT]/[IMP] 失败,仅有 [REC] 备注
证据(每个失败 → 文件/查询/转储):______
优先修复顺序:______
节 0、A、B、E、F 中任何 [CRIT] 的失败意味着:当前形式的架构对于长期记忆积累是不安全的——在修复之前,数据将丢失、被污染或产生垃圾。
C、D、G、H、I 中的 [CRIT] 失败允许在补偿性控制(监控、调用方限制)和修复计划的前提下运行。
本审计在下次重大架构变更前有效;每次变更后,受影响节将重新检查(架构生成变更时进行完整遍历)。
关于标准起源的说明
本标准是通过对多年运维经验、事件及其事后分析进行泛化而得出的,涵盖具有多层记忆的真实智能体系统:自污染循环、由非确定性键引起的静默遗忘、由包含秘密的外部内容导致的长期存储中毒、因重复索引导致的存储量翻倍、因嵌入模型语言不匹配导致的检索失败、由同时变更引起的降级、重启时的人格特质丢失、以及将模型输出与用户输入一起存储导致的反馈循环。每一项都有相应类别事件的真实事件支撑;没有事件支撑的条目标注为 [REC]。
作者:Aleksandr Kossarev,Jõgeva,Estonia 标签:#ai #architecture #memory #standard