← 返回总览

🧠 记忆系统对比

18 个 Agent 的记忆架构:从无状态到自进化

一、记忆层级谱系

┌─────────────────────────────────────────────────────────────────────────┐ │ Agent 记忆层级谱系 │ │ │ │ Level 0: 无记忆 ─→ 每次对话独立,不保留状态 │ │ Level 1: 会话记忆 ─→ 当前会话的对话历史 │ │ Level 2: 压缩记忆 ─→ 对话历史超出时自动摘要/压缩 │ │ Level 3: 持久记忆 ─→ 跨会话的文件/数据库存储 │ │ Level 4: 向量记忆 ─→ Embedding 检索,按语义相关性召回 │ │ Level 5: 自进化记忆 ─→ 从经验中学习,自动存储成功方案 │ │ │ │ ═════════════════════════════════════════════════════════════════════ │ │ │ │ Level 0: Codex CLI, Smolagents (基础), PydanticAI │ │ Level 1: SWE-agent, Aider, Browser Use │ │ Level 2: OpenHands (Condenser), LangGraph (Checkpoint) │ │ Level 3: AutoGPT (文件), CrewAI (Entity Memory), Aider (.history.md) │ │ Level 4: AutoGPT (ChromaDB), CAMEL, GPT Researcher (RAG) │ │ Level 5: Agent Zero (hierarchical self-evolving memory) │ │ │ └─────────────────────────────────────────────────────────────────────────┘

二、记忆系统详细对比

项目记忆层级短期记忆长期记忆检索方式自进化
AiderL1-L3Chat history.aider.chat.history.md全文
SWE-agentL1Shell 输出历史N/A
OpenHandsL1-L2EventsCondenser (LLM摘要)摘要
Codex CLIL0-L1Thread + TurnN/A
GooseL1-L2Session + Auto-CompactionLLM摘要 (80%阈值)
AutoGPTL3-L4对话JSON文件 + ChromaDB/Pinecone向量检索
MetaGPTL3Environment messagesLongTermMemory时间序
Agent ZeroL5对话层次化记忆 (方案库)语义检索
AutoGenL1-L2ListChatMemory上下文变量全文
CrewAIL3-L4Short-termLong-term + Entity MemoryEmbedding
LangGraphL2State dictCheckpointing (可回溯)State key
PydanticAIL0-L1Message history❌ (用户实现)N/A
AgnoL3-L4SessionAgentMemory + KnowledgeEmbedding
Google ADKL2-L3Session stateSessionServiceState key
SmolagentsL0-L1Step historyN/A
CAMELL3-L4ChatRecordMemoryLongTermMemory + Knowledge Graph向量 + 图
Browser UseL1Step history + DOMN/A
GPT ResearcherL3-L4Research contextVector store (RAG)向量检索

三、深度分析:三种创新记忆架构

🏆 Agent Zero: 自进化记忆 (唯一 Level 5)

Agent Zero 的记忆系统是所有项目中最具创新性的:

核心机制:
1. 每次成功解决问题后,自动提取"解决方案片段"
2. 存入层次化记忆文件 (memory/目录)
3. 新任务来时: embedding 检索相关历史方案
4. 注入到上下文: "以下过去解决类似问题的方法可能有用:..."
5. 效果: Agent 越用越聪明,形成"经验库"

记忆层次:
├── 0级: 当前对话上下文 (实时)
├── 1级: 同一 session 的历史步骤 (当前任务)
├── 2级: 过去 session 的解决方案 (跨任务)
└── 3级: 提炼的通用方法论 (跨领域)

启示: 记忆不应只是"存储",而应是"学习"。Agent 应该从成功和失败中提取可复用的知识。

🔬 OpenHands: 智能压缩 (Condenser)

OpenHands 不存长期记忆,但对短期记忆的管理很精细:

Condenser 策略:
1. ObservationMaskingCondenser - 屏蔽旧的工具输出细节
2. LLMCondenser - 用 LLM 生成摘要替换旧消息
3. RecentEventsCondenser - 只保留最近 N 条

关键洞察: 工具输出通常很冗长(如 ls 输出数百行),
但 LLM 只需要知道"操作成功"或"文件列表如下"。
智能压缩可以在不丢失关键信息的情况下大幅减少 token。

📚 Aider: RepoMap 上下文工程

Aider 不用传统记忆,而是用 tree-sitter 做智能上下文选择:

RepoMap 机制:
1. tree-sitter 解析整个代码库 → 生成 AST
2. 提取所有函数/类签名 (不含实现体)
3. 根据 chat history 中提到的符号,决定哪些签名相关
4. 只注入相关的签名到系统提示词

效果: 10万行代码库,只注入 ~5000 字符的关键签名
信息密度极高,是 "记忆" 的另一种形态。
🎯 构建自己 Agent 的记忆系统建议: