横评:选型与取舍

Agent Memory 方案选型

Agent 记忆方案的选择直接影响 Agent 的能力上限和运维成本。选错了,要么 Agent "太笨"(记不住东西),要么成本失控(向量数据库 + 嵌入费用)。本文从实际场景出发,帮你选对记忆方案。

来源: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 爆炸,成本飙升 超过阈值自动摘要
所有记忆放一个存储 检索效率低、成本高 分层存储(热门/冷门)
不做记忆清理 无效信息积累 定期清理过时和低价值记忆
忽略隐私 敏感数据泄露 分级存储、用户可控