目录
一、为什么需要记忆压缩?
二、记忆压缩的分类
2.1 按照压缩方法分类
2.1.1 规则压缩类
2.1.2 智能抽取类
2.1.3 生成式摘要类
2.2 按照压缩对象分类
2.3 按照压缩触发时机分类
三、压缩质量评估指标
四、压缩选型决策矩阵
一、为什么需要记忆压缩?
Agent系统在长期运行过程中会积累大量记忆信息,这些信息如果全部保留会导致存储成本急剧上升、检索效率下降、上下文窗口污染等问题。记忆压缩与摘要是解决这些问题的核心技术,其本质是在信息保留量与存储成本之间寻求平衡。
记忆压缩的核心目标有三个层面。第一,控制存储规模。通过压缩冗余信息,将长期积累的记忆压缩到可控范围内,避免存储线性增长。第二,提升检索效率。压缩后的摘要信息更加精炼,便于快速匹配和返回,减少无效计算。第三,保持关键信息。好的压缩策略能够保留记忆的核心语义和关键细节,确保Agent决策质量不因压缩而显著下降。
二、记忆压缩的分类
2.1 按照压缩方法分类
| 分类维度 |
压缩类型 |
核心技术 |
是否依赖LLM |
实现复杂度 |
压缩效果 |
| 规则压缩 |
固定长度截断 |
条目数量限制、字符数限制 |
❌ 否 |
⭐ 低 |
适中 |
| 规则压缩 |
时间衰减压缩 |
基于时间的权重衰减 |
❌ 否 |
⭐ 低 |
一般 |
| 规则压缩 |
重要性分层 |
优先级Tag + 分层保留策略 |
❌ 否 |
⭐ 低 |
良好 |
| 抽取压缩 |
关键信息抽取 |
NER、关键词提取、事件抽取 |
⚠️ 可选 |
⭐⭐ 中 |
良好 |
| 抽取压缩 |
语义去重合并 |
向量相似度计算 + 聚类 |
⚠️ 可选 |
⭐⭐ 中 |
优秀 |
| 生成压缩 |
多粒度摘要 |
LLM生成不同长度摘要 |
✅ 是 |
⭐⭐⭐ 高 |
优秀 |
| 生成压缩 |
增量摘要 |
多记忆递归合并生成 |
✅ 是 |
⭐⭐⭐ 高 |
优秀 |
| 选择压缩 |
访问频率加权 |
统计访问频率 + 重要性计算 |
❌ 否 |
⭐⭐ 中 |
良好 |
| 选择压缩 |
检索反馈压缩 |
基于检索命中率调整 |
⚠️ 可选 |
⭐⭐⭐ 高 |
优秀 |
2.1.1 规则压缩类
| 压缩策略 |
工作原理 |
适用场景 |
优点 |
缺点 |
| 固定长度截断 |
保留最近N条或前N字符,超出部分丢弃 |
资源受限场景、简单对话系统 |
实现简单、性能稳定、可预测 |
可能丢失重要历史信息、无法智能判断价值 |
| 时间衰减压缩 |
按时间逐步降低记忆权重,超阈值后淘汰 |
需要时序追溯的系统 |
自然淘汰过期信息、与人类记忆曲线吻合 |
重要信息可能随时间被错误淘汰 |
| 重要性分层压缩 |
为记忆打Tag分层,不同层级不同压缩策略 |
知识密集型应用 |
保留核心知识、层次清晰 |
需要预先定义重要性标准 |
| LFU-K淘汰策略 |
保留频率最高的K条记忆,其余压缩 |
高频访问场景 |
保证热点记忆、简单高效 |
可能忽略新产生的临时重要信息 |
| FIFO窗口压缩 |
固定大小窗口,新进旧出 |
实时性要求高的场景 |
实现简单、内存可控 |
完全忽略历史积累 |
2.1.2 智能抽取类
| 压缩策略 |
工作原理 |
适用场景 |
优点 |
缺点 |
| 关键信息抽取 |
提取实体、事件、结论等结构化信息 |
知识密集型对话 |
保留核心语义、结构化便于检索 |
抽取质量依赖NLP模型能力 |
| 语义去重合并 |
计算记忆向量相似度,合并相似记忆 |
重复内容多的场景 |
消除冗余、保留多样性 |
计算开销大、相似度阈值难调 |
| 主题聚类压缩 |
按主题聚类后分别提取摘要 |
多话题混合记忆 |
保留话题多样性、便于按话题检索 |
主题边界可能模糊 |
| 事件链压缩 |
提取因果链条,压缩中间状态 |
任务执行过程记忆 |
保留决策逻辑、压缩率高 |
事件关系抽取复杂 |
2.1.3 生成式摘要类
| 压缩策略 |
工作原理 |
适用场景 |
优点 |
缺点 |
| 固定粒度摘要 |
按预设长度生成摘要(百字/千字) |
对话总结、报告生成 |
输出可控、质量稳定 |
无法自适应内容复杂度 |
| 自适应压缩摘要 |
动态调整压缩比直到目标比例 |
存储空间敏感的端侧设备 |
自适应压缩、空间可控 |
可能需要多次迭代 |
| 增量摘要 |
新记忆与已有摘要合并生成新摘要 |
长期对话系统 |
增量计算效率高、上下文连贯 |
误差可能累积放大 |
| 层次化摘要 |
生成多级摘要树(详细→摘要→一句话) |
多层级检索需求 |
支持多粒度回溯、按需展开 |
构建和维护成本高 |
| 查询导向摘要 |
根据潜在查询意图生成针对性摘要 |
RAG增强场景 |
检索命中率高、答案相关性强 |
需要预判查询意图 |
| 对话式压缩 |
通过问答对形式保留关键信息 |
知识传承类场景 |
问答形式便于后续回忆 |
信息可能碎片化 |
2.2 按照压缩对象分类
| 分类 |
压缩对象 |
实现策略 |
示例 |
| 内容压缩 |
文本内容本身 |
摘要生成、关键词提取 |
对话内容压缩为"用户询问退货流程,客服已发送处理链接" |
| 结构压缩 |
元数据结构 |
选择性保留字段 |
只保留时间戳、对话ID、摘要文本 |
| 频率压缩 |
重复出现的模式 |
模式抽象、模板化 |
将"用户每次打开APP都看天气"抽象为"习惯性行为" |
| 关系压缩 |
记忆间的关系 |
关系图压缩、核心实体保留 |
保留核心实体及关系,压缩冗余描述 |
| 时序压缩 |
时间序列数据 |
关键时间点提取、趋势摘要 |
将一年的每日数据压缩为月度统计 |
2.3 按照压缩触发时机分类
| 触发类型 |
触发条件 |
执行时机 |
优点 |
缺点 |
| 定时压缩 |
定时任务触发 |
每日/每周固定时间 |
可控、可预测 |
可能影响系统活跃时段 |
| 阈值触发 |
存储超限触发 |
达到存储上限时 |
存储可控 |
压缩时机不可预期 |
| 访问触发 |
访问时评估压缩 |
记忆被访问时 |
动态适应使用模式 |
实现复杂度高 |
| 对话触发 |
新对话开始时 |
开启新对话上下文 |
清理过期上下文 |
可能中断正在进行的任务 |
| 主动触发 |
用户指令触发 |
用户手动执行 |
灵活可控 |
需要用户参与 |
| 混合触发 |
多条件组合触发 |
多种条件满足时 |
综合考虑多因素 |
配置和维护复杂 |
三、压缩质量评估指标
评估压缩策略的效果需要从多个维度进行衡量。
| 评估维度 |
指标名称 |
计算方法 |
理想值 |
| 压缩效率 |
压缩比 |
原始大小 / 压缩后大小 |
越高越好 |
| 语义保留 |
语义相似度 |
Embedding余弦相似度 |
> 0.85 |
| 信息完整度 |
关键信息召回率 |
保留关键信息数 / 总关键信息数 |
> 0.8 |
| 检索效果 |
检索命中率 |
相关检索成功次数 / 总检索次数 |
不显著下降 |
| 决策质量 |
任务成功率 |
压缩后Agent任务成功率 |
不下降超过5% |
| 计算成本 |
压缩耗时 |
单次压缩平均耗时 |
越低越好 |
四、压缩选型决策矩阵
| 需求优先级 |
推荐策略类型 |
核心特点 |
典型场景 |
| 资源受限优先 |
规则压缩类 |
实现简单、计算量小 |
嵌入式设备、移动端 |
| 语义保留优先 |
生成压缩类 |
压缩质量高、语义完整 |
知识管理、RAG增强 |
| 实时性优先 |
规则压缩+增量摘要 |
响应快、增量计算 |
实时对话、在线客服 |
| 存储成本优先 |
高压缩比规则 |
压缩比高、可控性强 |
海量日志、长周期存档 |
| 检索效果优先 |
语义去重+访问加权 |
热点突出、冗余少 |
高频检索场景 |
| 任务完成优先 |
生成式层次摘要 |
多粒度支持、按需展开 |
复杂任务助手 |
| 综合平衡 |
混合策略 |
多策略组合取长补短 |
企业级Agent系统 |
所有评论(0)