MM06:Memory Retrieval、Write Policy and Forgetting
它解决什么问题
记忆价值取决于何时读、什么能写、何时忘,而不取决于存储量。
核心定义
Read Policy 按任务与权限选择;Write Policy 决定候选、验证和归属;Forgetting 删除、降权或归档过期内容。 Memory 与 Context 的边界是:Memory 是可被保存和检索的信息,Context 是某次调用实际可见的视图。
工作原理
为每条记录定义 owner、type、source、created_at、valid_until、confidence、access_scope 和 version。写入、读取、纠正与删除分别通过策略门。
架构视图
Architecture View
Event -> write gate -> store -> retrieval gate -> context; TTL/delete
Product View
User action -> memory notice/control -> personalized work -> inspect/correct/delete
最小可运行实践
运行 examples/memory/memory_architecture.py,观察工作记忆、情节、语义、私有/共享记录和 Artifact 引用如何通过统一策略读写。
正常场景
让记忆可靠、可控且成本稳定。检索结果保留来源,并只在当前任务和主体权限匹配时进入 Context。
失败与恢复场景
模型自报内容直接写入会污染长期记忆;先分事实、偏好、推断并采用不同确认策略。
什么时候使用
当跨步骤或跨任务保留信息能带来可测成功率、连续性或恢复收益,并且可以定义所有者与生命周期时使用。
什么时候不要使用
单次任务不需长期记忆;敏感内容、未经确认推断和可从权威源实时获得的信息不应默认永久保存。
Trade-offs
更多记忆提高连续性,却增加错误固化、隐私、检索噪声与治理成本。宁可少而可解释,也不要无限积累。
产品视角
用户与业务问题
产品应明确“为什么记住、记住多久、用于什么”,而不是把 Memory 当神秘个性化。
产品价值
让记忆可靠、可控且成本稳定,并通过与无记忆基线对比验证。
用户体验
用户可查看、纠正、删除和关闭记忆;系统引用记忆影响重要结果时应给出来源或提示。
自主性边界
低风险临时状态可自动写;长期偏好、敏感事实和可执行 Skill 需要更严格验证或确认。
数据与权限
按主体、租户、角色和用途隔离;共享、外发与训练用途不得由一次任务授权自动推导。
失败与降级
检索不确定时忽略或询问;冲突时优先权威新来源;Memory 服务不可用时回到无记忆模式。
产品指标
衡量记忆命中后的成功提升、错误记忆率、纠正率、删除生效率、检索延迟和用户关闭率。
框架中的对应实现
向量库、数据库、Session Store 和文件工作区分别适合不同类型;Memory 架构不能简化为“接一个向量库”。
Related Patterns
Context Selection、Progress Ledger、Shared State、Artifact、Data Governance。
检查清单
- 记录类型、所有者和生命周期是否明确?
- 写入是否经过验证?
- 检索是否检查权限与相关性?
- 用户能否查看、纠正和删除?
- 失败时能否无记忆降级?
延伸练习与参考资料
为同一条信息设计工作、情节和语义三种表示,比较错误影响半径。