模式白皮书/研讨会/记忆 Memory
ADPS Agent 设计模式白皮书 · 研讨会
ADPS 设计模式系列研讨会 · 记忆模块第一次研讨会
记忆系统的使用判断、工程边界、生命周期、存储形态与治理机制。
| 主持人 | 王昊奋、黄佳 |
| 核心专家 | 张颖峰、付求爱、张栋、周默、陈玉涛、李庆丰 |
2026 年 8 月 5 日,ADPS 围绕记忆模块组织了第一次专题研讨。讨论从一个基础问题开始:什么信息值得跨越一次上下文保留,什么时候才需要独立的记忆系统。由此延伸到写入准入、检索工具、版本冲突、遗忘、程序性记忆以及参数记忆。
本页按工程议题整理当天的讨论,并记录它们如何进入记忆模块总纲和 M1–M5 模式规范。
1. 先判断是否需要记忆系统
李庆丰以不同用户群体的产品选择说明了这一点。开发者能够把稳定偏好和项目规则写进 rules、项目文件或版本库时,这些文件已经承担了记忆职责。非技术用户通常不会持续整理偏好和经验,系统才需要自动抽取、调用和更新。
付求爱指出,Coding Agent 可以直接读取本地环境中的代码语言、框架和项目规范,再造一份自然语言摘要反而容易产生偏差。需要单独处理的记忆工作包括提取、检索和定期整理。
研讨会因此形成了立项前的两个问题:
- 这类信息是否需要动态写入、跨会话复用和自动召回?
- 使用者是否愿意、也有能力维护显式规则?
回答完这两问,团队再决定使用文件、数据库或独立记忆服务。
2. 记忆需要完整生命周期
王昊奋将记忆放到长期演化和组织经验复用的背景中。一个生产系统需要同时回答七个问题:记什么、何时记、怎样组织、怎样检索、怎样更新、何时遗忘、如何跨会话或组织复用。只做向量写入和相似度搜索,还不足以构成记忆系统。
讨论还确认了三条工程边界:
- 知识库保存可复用的领域材料;记忆保存某个主体、任务或系统如何使用材料,以及使用过程中发生的事。
- 数据本体定义业务世界的对象、属性和关系;记忆保存 Agent 使用这些对象时形成的经验。
- 控制平面保存当前有效的权威状态。审批结果、业务状态和不可逆动作回执由数据库、状态机或账本维护;记忆保存引用、解释和历史。
这三条边界直接进入了记忆模块总纲。
3. 写入侧和读取侧需要分开设计
张颖峰将原始文档、日志和会话转换为摘要、实体、事件、导航结构和原文指针,把这一写入侧过程概括为“知识编译”。读取侧则需要 retrieval harness:精确全文匹配、多向量搜索、导航、关联查询和原文回溯各自有用,纯向量检索无法覆盖这些访问路径。
这项讨论改写了 M2 的重点。M2 现在同时规范写入管线和读取管线,并要求检索结果带上版本、时间、作用域、来源指针和 trace。“知识编译”仍作为候选模式继续积累数据结构和评测方法。
4. 记忆写入需要准入、版本和遗忘
张栋介绍了分层保留、命中评分、离线审计和内生记忆。讨论中有一个关键修正:命中次数只表示使用频率,记忆是否正确还需要独立评分。高层记忆的在线读取与离线发布也应分开,运行期 Agent 不直接改写已发布的中长期记忆。
周默从遗忘、动态本体、群体记忆和快照展开讨论。遗忘需要根据场景配置,时间窗口、访问频率、正确性、业务风险和作用域都会影响退役决策。群体记忆需要设置共享边界、准入门槛和传播控制,防止一条错误经验扩散到更大范围。
陈玉涛将记忆区分为明文、激活状态和参数三种形态,并提出版本共存、时间标记和 Agent 与记忆层解耦。这一视角让 M1 从单一的作用域分层,扩展到作用域、功能类型和访问层级三个正交维度。
5. 程序性记忆的边界
周默还介绍了把稳定经验固化为代码的 Code Act 形态。它适合口径稳定、结果需要精确复现的有界任务。首次生成的程序必须完成验收,上游 schema、业务规则或依赖版本变化后需要重新认证。开放场景的变化空间过大,程序化成本会快速上升。
M5 因此补充了首次验收、适用范围和失效重认证,并继续保持扩展模式地位。
6. 进入白皮书的结果
本次研讨后,记忆模块完成了以下修订:
- 总纲增加记忆系统的使用判断,以及知识库、数据本体、控制平面三条边界。
- M1 增加候选池、准入、分层、版本、退役和删除证明的完整链路。
- M2 固定为“记忆 × 链式”单格,同时规范写入管线、多路索引和检索 Harness。
- M3 加强目标契约、权威状态引用、产物式 checkpoint 和恢复后的副作用去重。
- M4 区分原始失败事实、候选诊断和已验证 lesson,主动召回只读取已发布内容。
- M5 保留扩展地位,补齐首次验收、适用范围和失效重认证。
记忆准入、知识编译和版本化记忆继续作为候选机制研究,本轮不为了填满矩阵增加正式模式。
7. 还需要继续讨论的问题
- 无人评审的候选记忆,如何防止临时猜测进入长期召回?
- 明文、激活状态和参数记忆之间,怎样建立可复核的迁移和回滚路径?
- 动态本体如何接收新概念,同时保持旧任务可重现?
- 群体记忆的共享范围、写入权限和错误传播如何评测?
- 记忆评测如何同时覆盖写入、检索、使用和退役?