Agent记忆压缩方法
Agent记忆压缩方法
目录
一、Agent记忆压缩的本质
1.1 核心定义
Agent记忆压缩是在有限上下文窗口(context window)约束下,实现信息表达效率最大化,同时尽可能保留关键语义与推理能力。
1.2 关键矛盾
- 上下文窗口有限 📏
- 信息持续增长 📈
- 推理依赖历史信息 🧩
因此需要在以下三者之间做权衡:
- 信息完整性 🧠
- token成本 💰
- 检索与推理效率 ⚡
二、工业级Agent记忆分层架构
2.1 三层记忆体系
1 | 短期记忆(ST) → 中期记忆(MT) → 长期记忆(LT) |
- 🟡 短期记忆:当前对话窗口(原始信息)
- 🔵 中期记忆:摘要后的历史信息
- 🟣 长期记忆:向量数据库中的语义记忆
2.2 Memory Controller(核心大脑)
Memory Controller 是整个系统的调度中心,负责:
- 🎯 选择需要注入Prompt的记忆
- 🧹 控制压缩策略
- 🔍 决定检索范围
- ⚖️ 平衡信息 vs token成本
1 | User Query → Memory Controller → ST/MT/LT → Prompt构建 → LLM |
三、记忆压缩的五种核心方法
3.1 摘要压缩(Summarization)
3.1.1 基本原理
用LLM将长文本压缩为语义密度更高的短文本。
3.1.2 工业优化方向
- 🧾 结构化摘要(Structured Summary)
- 🎯 任务导向摘要(Task-aware)
- 🔄 增量式摘要(Incremental)
3.1.3 示例
1 | { |
👉 核心理解:
❌ 不是变短
✅ 是变“更有用” 🧠
3.2 向量压缩(Embedding Compression)
3.2.1 核心思想
文本 → 向量 → 检索替代存储
3.2.2 关键技术点
- ✂️ 语义切分(Semantic Chunking)
- 📌 向量索引(Vector Index)
- 🔎 Top-K检索
- 🔁 Re-ranking
3.2.3 本质理解
👉 不是“压缩文本”,而是“用检索替代记忆”
3.3 重要性筛选(Memory Selection)
3.3.1 核心思想
👉 不是所有记忆都值得保留
3.3.2 评分函数
1 | Score = relevance + recency + importance + task_match |
3.3.3 工业增强
- 🧠 LLM判断重要性
- 🔥 Attention机制模拟
- ⚙️ 动态权重调整
3.3.4 风险
- ❌ 误删关键长期信息
- ❌ 偏向“近期偏见”
3.4 结构化记忆(Structured Memory)
3.4.1 核心思想
把非结构化文本 → 结构化数据
3.4.2 示例
1 | { |
3.4.3 优势
- 💡 信息密度极高
- ⚡ 可直接拼Prompt
- 🔍 易检索
3.4.4 局限
- 🧩 schema设计成本高
- 🪫 表达能力有限
3.5 事件抽象(Event Abstraction)
3.5.1 核心思想
👉 从“文本记忆” → “事件记忆”
3.5.2 示例
1 | [Event] |
3.5.3 优势
- 🧠 更接近人类记忆
- 🔮 支持长期推理
- 🤝 适合多Agent共享
3.5.4 难点
- 🧠 抽象误差
- 🛠️ 实现复杂
四、Multi-Agent记忆压缩设计
| 方法 | 优点 | 缺点 |
|---|---|---|
| ✂️ 摘要压缩 | 简单易用 | 信息损失 |
| 📦 向量压缩 | 可扩展 | 依赖检索 |
| 🗂️ 结构化 | 高精度 | 设计复杂 |
| 🎯 重要性筛选 | 控制成本 | 易误删 |
| 🧩 事件抽象 | 高语义层 | 实现难 |
五、面试级总结
Agent记忆压缩本质是解决上下文窗口有限的问题,其核心目标是在尽可能降低token消耗的同时保留关键语义信息 🧠。
工业界通常采用分层记忆架构,包括:
- 短期记忆(ST)
- 中期摘要记忆(MT)
- 长期向量记忆(LT)
在压缩方法上主要包括五类:
- ✂️ 摘要压缩:将历史信息转换为任务导向或结构化摘要
- 📦 向量压缩:通过embedding检索替代原始文本输入
- 🎯 重要性筛选:基于相关性与时效性筛选关键记忆
- 🗂️ 结构化记忆:通过KV或知识图谱提升信息密度
- 🧩 事件抽象:将对话抽象为高层语义事件用于长期推理
在Multi-Agent场景中,通常引入 🧠 Memory Hub 或 💡 记忆蒸馏机制,以解决信息冗余与一致性问题。