来源:LangGraph Memory · MemGPT / Letta · Zep · Claude Code CLAUDE.md | 整理时间:2026-05-14
概述
Agent 记忆方案的选择直接影响 Agent 的能力上限和运维成本。选错了,要么 Agent "太笨"(记不住东西),要么成本失控(向量数据库 + 嵌入费用)。本文从实际场景出发,帮你选对记忆方案。
方案一览
| 方案 |
适合场景 |
复杂度 |
成本 |
持久性 |
| CLAUDE.md 文件 |
项目级知识、编码规范 |
极低 |
零 |
项目级 |
| 会话摘要 |
长对话压缩 |
低 |
低 |
会话级 |
| 结构化存储 (KV/JSON) |
用户偏好、配置 |
低 |
低 |
跨会话 |
| 向量数据库 |
大规模知识检索 |
中高 |
中 |
跨会话 |
| 完整记忆平台 |
企业级多 Agent |
高 |
高 |
全层级 |
按场景选型
场景一:代码助手(Claude Code 场景)
需求:记住项目约定、编码风格、常用模式
推荐:CLAUDE.md 文件
为什么:代码项目的知识天然适合用 Markdown 文件表达——编码规范、项目结构、测试命令。文件就是最好的数据库。
# CLAUDE.md
## 项目约定
- TypeScript strict mode
- 测试: vitest
- 不要用 any
## 架构
- API 层: src/routes/
- 业务逻辑: src/services/
- 数据层: src/db/
够用就行的信号:你的 Agent 只需要项目级知识,不需要记住"上次对话讨论了什么"。
场景二:客服 Agent
需求:记住对话历史、用户信息、常见问题
推荐:会话摘要 + 结构化存储
| 记忆类型 |
实现方式 |
存什么 |
| 短期 |
会话摘要 |
当前对话的关键信息和进展 |
| 长期 |
KV 存储 |
用户 ID、偏好、历史问题分类 |
# 简单的会话摘要实现
def summarize_conversation(messages):
"""对话超过 20 轮时,摘要旧的部分"""
if len(messages) < 20:
return messages
old = messages[:10]
recent = messages[10:]
summary = llm.summarize(old)
return [{"role": "system", "content": f"对话摘要: {summary}"}] + recent
场景三:知识库问答 Agent
需求:从大量文档中检索相关内容回答问题
推荐:向量数据库 + RAG
| 向量数据库 |
特点 |
适合 |
| Chroma |
轻量,嵌入式 |
开发和小规模部署 |
| Pinecone |
全托管 |
不想管基础设施 |
| Weaviate |
开源,功能丰富 |
需要混合搜索 |
| pgvector |
基于 PostgreSQL |
已有 PG 基础设施 |
| Qdrant |
高性能,Rust 实现 |
高并发场景 |
# RAG 记忆召回
from chromadb import Client
def recall_relevant(query: str, top_k: int = 5):
"""从知识库中召回相关文档片段"""
results = collection.query(
query_texts=[query],
n_results=top_k,
)
return results["documents"][0]
场景四:企业级多 Agent 平台
需求:多层记忆、跨 Agent 共享、审计追踪
推荐:完整记忆平台(Zep / MemGPT / 自建)
| 平台 |
核心能力 |
特点 |
| Zep |
会话记忆 + 知识图谱 + 自动摘要 |
开源,有托管版 |
| MemGPT / Letta |
虚拟上下文管理 + 分层记忆 |
学术出身,记忆管理创新 |
| LangGraph Store |
跨线程命名空间存储 + 向量搜索 |
LangGraph 原生集成 |
| 自建 |
完全自定义 |
最大灵活性,最大成本 |
选型决策树
你的 Agent 需要记忆吗?
│
├─ 不需要(一次性任务)
│ → 不用任何记忆方案
│
├─ 需要记住项目知识
│ → CLAUDE.md 或类似文件
│
├─ 需要记住对话历史
│ ├─ 对话不长(<20 轮)
│ │ → Context window 直接放
│ ├─ 对话较长(20-100 轮)
│ │ → 会话摘要压缩
│ └─ 对话很长(>100 轮)
│ → 会话摘要 + 结构化存储
│
├─ 需要检索大量文档
│ → 向量数据库 + RAG
│
└─ 多 Agent 共享记忆
→ 完整记忆平台
成本对比
| 方案 |
初始成本 |
运营成本/月 |
开发时间 |
| CLAUDE.md |
$0 |
$0 |
30 分钟 |
| 会话摘要 |
$0 |
~$5-20(LLM 调用) |
1-2 天 |
| 向量数据库(Chroma 本地) |
$0 |
$0 |
2-3 天 |
| 向量数据库(Pinecone 托管) |
$0 |
$25-100 |
2-3 天 |
| 完整记忆平台(Zep) |
$0 |
$50-200 |
1-2 周 |
| 自建 |
$0 |
取决于规模 |
2-4 周 |
常见错误
| 错误 |
后果 |
正确做法 |
| 一开始就上向量数据库 |
过度工程,浪费时间 |
先用文件和摘要,不够再升级 |
| 不压缩对话历史 |
Context 爆炸,成本飙升 |
超过阈值自动摘要 |
| 所有记忆放一个存储 |
检索效率低、成本高 |
分层存储(热门/冷门) |
| 不做记忆清理 |
无效信息积累 |
定期清理过时和低价值记忆 |
| 忽略隐私 |
敏感数据泄露 |
分级存储、用户可控 |