05
记忆系统★
让无状态模型表现得像有记忆
TERMS · 6
Short-term Memory短期记忆●
通常等于当前会话的对话历史,存活于一次任务期间。
Long-term Memory长期记忆●
外挂存储——数据库、向量库、文件,跨会话保留。
Episodic / Semantic Memory情景与语义记忆●
情景记忆="何时何地发生了什么",语义记忆="我知道的事实"。
Summarization / Compression摘要压缩●
对话太长就压缩成摘要,腾出上下文空间。
Sliding Window滑动窗口●
只保留最近 N 轮对话,老的直接丢弃——最朴素的策略。
Memory Retrieval记忆检索●
从长期记忆里挑出和当前问题相关的那一小部分塞进上下文。
面试高频问答
常见可以分为短期记忆、长期记忆和情景记忆。短期记忆通常是当前会话上下文,长期记忆存用户偏好或稳定事实,情景记忆记录过去任务经历和结果,实现上会用数据库、向量检索、摘要和事件日志组合。
- +不要把所有历史都叫记忆,不同记忆的生命周期、可信度和权限不同
- +长期记忆写入要谨慎,最好有确认、过期和删除机制
- +记忆召回后仍要判断是否和当前任务相关,不能无脑塞回上下文
先用滑动窗口保留最近上下文,再把早期重要信息压缩成摘要,必要时把长期信息沉淀到外部存储。核心不是保存全部文本,而是保留完成任务必需的状态、约束和事实。
- +摘要要结构化,比如目标、已完成、待办、用户偏好和关键决定
- +滑动窗口适合短会话,长期任务更需要状态管理和检查点
- +每次压缩都会损失细节,关键原始证据应能通过链接或 ID 找回
长期记忆通常围绕用户、任务和交互历史,回答"这个用户或这个任务过去发生过什么"。RAG 通常围绕外部知识库,回答"资料里有什么",两者都可能用向量检索,但数据来源、更新逻辑和隐私边界不同。
- +长期记忆更强调个性化和时序,RAG 更强调知识覆盖和来源引用
- +长期记忆需要用户可控的查看、删除和纠错能力
- +两者可以结合:先召回用户偏好,再检索知识库,最后生成回答
短期记忆适合存当前任务的上下文,比如用户刚说的要求、临时约束和当前步骤。长期记忆适合存跨会话稳定复用的信息,比如用户偏好、项目背景、常用格式和长期目标。
- +临时情绪、一次性口令、敏感信息不应默认写入长期记忆
- +长期记忆要有置信度和来源,避免一次误解长期污染后续回答
- +短期记忆过期快,长期记忆更新慢,二者不能用同一套策略
召回只是候选,不能等同于可用。要结合相似度、时间、来源、权限、用户身份和当前任务意图判断,必要时让模型解释这条记忆为什么相关,或直接向用户确认。
- +旧记忆可能过期,例如用户换公司、项目改名、偏好改变
- +相似但不相关的记忆会污染回答,比没记忆更危险
- +高风险建议只把记忆作为提示,不要自动执行涉及账户、财务或权限的动作
最大的问题是未经确认就长期保存敏感信息,或者在错误会话里召回了别人的记忆。记忆系统必须有用户隔离、最小化存储、可删除、可审计和敏感信息过滤。
- +PII、密钥、账号、合同信息等要默认敏感,不能随便进长期记忆
- +多租户系统必须在检索层做权限过滤,不能只靠 prompt 提醒模型
- +给用户提供"你记住了什么"的可见性,能降低误记和信任问题