上下文与记忆
归纳 Agent 记忆类型与上下文压缩的常见设计取舍。
上下文与记忆
Memory
短期记忆服务于当前会话,例如最近消息、计划和工具结果;长期记忆跨会话保存偏好、事实和经验。按内容还可以分为:
- 语义记忆:是什么,例如用户明确表达的稳定偏好。
- 事件记忆:发生过什么,例如一次任务的过程与结果。
- 程序记忆:怎么做,例如可复用的规则和流程。
存储按访问需求选择:任务状态适合结构化记录,文档知识适合检索,短期消息可以放会话状态或缓存;不必为每种记忆都新建一套数据库。
关键是写入、召回、更新和删除规则:只记录值得复用的信息,保留来源,处理冲突和过期,按用户或租户隔离。向量相似不代表事实正确,也不代表用户已经掌握该知识。
上下文压缩
先为任务指令、当前输入和输出预留预算,再分配历史、检索结果和工具输出的空间。
- 最近且相关的对话保留原文,较早历史可摘要。
- 任务目标、硬约束、已确认结论和未完成事项单独保存,避免被摘要遗漏。
- 检索结果按相关性筛选、去重;工具的大 JSON 提取必要字段,原文按需读取。
不能机械地“删最早 70%”:最早的消息可能定义了关键要求。压缩后要检查事实是否失真、状态是否连贯。
具体的上下文组织流程与论文摘要示例,见 上下文工程。