Agent记忆压缩方法

目录


一、Agent记忆压缩的本质

1.1 核心定义

Agent记忆压缩是在有限上下文窗口(context window)约束下,实现信息表达效率最大化,同时尽可能保留关键语义与推理能力。

1.2 关键矛盾

  • 上下文窗口有限 📏
  • 信息持续增长 📈
  • 推理依赖历史信息 🧩

因此需要在以下三者之间做权衡:

  • 信息完整性 🧠
  • token成本 💰
  • 检索与推理效率 ⚡

二、工业级Agent记忆分层架构

2.1 三层记忆体系

id
1
短期记忆(ST) → 中期记忆(MT) → 长期记忆(LT)
  • 🟡 短期记忆:当前对话窗口(原始信息)
  • 🔵 中期记忆:摘要后的历史信息
  • 🟣 长期记忆:向量数据库中的语义记忆

2.2 Memory Controller(核心大脑)

Memory Controller 是整个系统的调度中心,负责:

  • 🎯 选择需要注入Prompt的记忆
  • 🧹 控制压缩策略
  • 🔍 决定检索范围
  • ⚖️ 平衡信息 vs token成本
id
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 示例

id
1
2
3
4
5
{
"user_goal": "后端实习",
"tech_stack": ["Java", "Spring"],
"problem": "八股文记忆困难"
}

👉 核心理解:

❌ 不是变短
✅ 是变“更有用” 🧠

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 评分函数

id
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 示例

id
1
2
3
4
5
{
"career_goal": "backend engineer",
"skills": ["Java", "Spring", "MySQL"],
"weakness": ["八股文"]
}

3.4.3 优势

  • 💡 信息密度极高
  • ⚡ 可直接拼Prompt
  • 🔍 易检索

3.4.4 局限

  • 🧩 schema设计成本高
  • 🪫 表达能力有限

3.5 事件抽象(Event Abstraction)

3.5.1 核心思想

👉 从“文本记忆” → “事件记忆”

3.5.2 示例

id
1
2
3
4
5
[Event]
Actor: User
Intent: 找后端实习
Action: 学习Java八股
Status: 进行中

3.5.3 优势

  • 🧠 更接近人类记忆
  • 🔮 支持长期推理
  • 🤝 适合多Agent共享

3.5.4 难点

  • 🧠 抽象误差
  • 🛠️ 实现复杂

四、Multi-Agent记忆压缩设计

方法 优点 缺点
✂️ 摘要压缩 简单易用 信息损失
📦 向量压缩 可扩展 依赖检索
🗂️ 结构化 高精度 设计复杂
🎯 重要性筛选 控制成本 易误删
🧩 事件抽象 高语义层 实现难

五、面试级总结

Agent记忆压缩本质是解决上下文窗口有限的问题,其核心目标是在尽可能降低token消耗的同时保留关键语义信息 🧠。

工业界通常采用分层记忆架构,包括:

  • 短期记忆(ST)
  • 中期摘要记忆(MT)
  • 长期向量记忆(LT)

在压缩方法上主要包括五类:

  1. ✂️ 摘要压缩:将历史信息转换为任务导向或结构化摘要
  2. 📦 向量压缩:通过embedding检索替代原始文本输入
  3. 🎯 重要性筛选:基于相关性与时效性筛选关键记忆
  4. 🗂️ 结构化记忆:通过KV或知识图谱提升信息密度
  5. 🧩 事件抽象:将对话抽象为高层语义事件用于长期推理

在Multi-Agent场景中,通常引入 🧠 Memory Hub 或 💡 记忆蒸馏机制,以解决信息冗余与一致性问题。