模式矩阵 /模式白皮书/M1

M1 · Hierarchical Retention · 分层保留

字段
双轴坐标 记忆 Memory × 层级 Hierarchy(分)
成本档 ②(中等,多层存储与加载开销)
课程对应 03-02
目录归属 全集 33 模式之一 · 记忆模块 5 模式之一
一句话 把 agent 的记忆按作用域切成多层,每层独立存储、独立生命周期、独立加载策略,新会话从粗到细加载。

它解决什么问题

Agent 每次启动要"想起"的信息作用范围完全不同:公司安全政策对全员永久有效,用户偏好只跟着这个人,会话进度只在这次有效,工具结果一轮就过期。把它们全堆进同一个 prompt 会同时撞上两堵墙:token 爆掉,或者关键信息被噪声淹没。

分层保留把这些信息按作用域切成多层,每层有自己的存储位置、过期时间和加载策略。Agent 启动时从粗到细加载,需要时按层往下查。它解决的核心问题不是"存什么",而是"分什么层"——没有分层的记忆系统会随时间退化成一个翻不到东西的仓库。

为什么坐标是「记忆 × 层级」

核心机制

  1. 按作用域分层:分层的首要依据是"谁该看到这条信息",不是"内容类型"。典型四层是用户级(跨所有会话不变)、项目级(项目内共享)、会话级(当次有效)、临时级(一轮过期)。作用域决定一条信息该放哪层。
  2. 每层独立选型:每层的存储后端按访问模式单独选。用户层高频读、低频写、永久,适合带索引的关系库;项目层适合文件系统加 git 管理;会话层高频读写、有 TTL,适合 Redis;临时层就是内存字典。四层用同一个后端是新手实现的标志。
  3. 从粗到细加载:会话启动时按作用域从粗到细组装 prompt,每层有独立的 token 预算。层级化的好处之一就是会话再长也不会把用户层挤掉。
  4. 升降级与淘汰:成熟实现会按访问模式让记忆自动流动——被频繁引用的记忆升层,长期不访问的降层,过期的按 retention policy 清除。这把静态 schema 变成了动态 working set。

适合的生产场景

容易出错的地方

关键指标

最小骨架

定义层级(作用域从粗到细):
    USER    → 永久 / 高频读 / 强 schema / 关系库
    PROJECT → 永久 / 团队共享 / 文件系统 + git
    SESSION → TTL 24h / 高频读写 / Redis
    TURN    → TTL 5min / 极高频 / 内存字典

写入:按层选 backend,记 last_modified
读取:从细到粗查,内层命中即返回(内层覆盖外层)
组装:启动时从粗到细拼 prompt,每层按 token_budget 截断
淘汰:过期内容清除并记 reason log(合规 + debug)

工程落地四个要点:每层的存储后端要真做不同选型;组装时按 token budget 截断而非全量塞入;写入做"写入路由"(小模型或规则决定写哪层);eviction 必须留 reason log。

企业落地一例

某薪酬 SaaS 的执行型智能体把记忆做成三层。L1 是当前意识流——这一刻该看到的最小必要集,只放推进眼前这一步真正用得上的信息,保持极简。L2 是进行中的里程碑日志——记着任务做到哪、刚完成了什么,跨回合维持任务上下文。L3 是跨回合可复用经验——把这类任务上沉淀下来的判断和做法留作长期资产。三层各管一个时间尺度:L1 管"现在",L2 管"本任务",L3 管"跨任务"。这套分层让 agent 在长流程里既不会被无关历史淹没(L1 始终精简),又不会在回合之间失忆(L2 持续维护),还能随使用越来越熟练(L3 持续累积)。配套工程决策包括每层独立 token 预算、L1 实时拼装而非预加载、L3 写入前做信任校验避免单次偶然信息污染长期经验。

与其他模式的关系

一句话记住它

分层保留的本质不是数据库 schema 设计,而是给 agent 装一个 working set 管理器——它决定哪些记忆常驻 RAM、哪些按需 swap in、哪些长期 swap out。


本页属于 ADPS 33 模式白皮书。返回 模式矩阵与白皮书目录, 或查看配套 可运行代码目录