Agent 长期记忆存储选型
Agent 要不要有长期记忆,业界已经没有争议了——单会话上下文用完就丢,用户每次都要重新解释背景,体验差、成本也高。真正的分歧在于:记忆该存在哪?关于记忆该保留多久、什么时候清理,可以看 Agent 记忆保留与清理策略:该存多久、什么时候该忘;关于记忆系统的整体设计模式,参考 AI Agent 记忆系统设计:四种模式与工程实践。本文只聚焦一个问题:存储层怎么选。
一、先明确记忆要解决什么查询问题
选存储之前,先想清楚你的 Agent 需要什么样的检索能力,这直接决定技术路线:
- 语义相似检索:“用户之前问过类似的问题吗” → 向量检索
- 精确键值查找:“用户的偏好设置是什么” → KV 存储
- 关系推理:“这个用户认识的哪些人也在用这个产品” → 图数据库
- 结构化过滤 + 排序:“过去 7 天内优先级为高的未完成任务” → 传统关系型数据库
大部分生产级 Agent 记忆系统不是单一存储,而是几种的组合。先把查询场景列清楚,再谈选型,避免”因为向量数据库流行就无脑用向量数据库”。
二、四类存储方案的取舍
向量数据库
适合语义模糊匹配的场景,比如”用户历史对话里有没有提到类似的偏好”。
| 维度 | 表现 |
|---|---|
| 写入延迟 | 需要先做 embedding,有额外一次模型调用开销 |
| 查询精度 | 语义相关但不保证事实精确,容易召回”看起来像”但实际无关的内容 |
| 扩展性 | 数据量大时索引重建成本高 |
| 适用记忆类型 | 语义化的长期偏好、历史交互摘要 |
具体产品选型(Chroma/Qdrant/Milvus/pgvector)对比看 2026 向量数据库对比:Chroma/Qdrant/Milvus/pgvector,embedding 维度和成本的权衡看 Embedding 维度、速度与成本取舍。
KV 存储(Redis / DynamoDB 类)
适合结构清晰、访问模式是”按 key 精确查找”的记忆,比如用户 ID 对应的偏好设置、会话状态。
- 优点:读写延迟极低,运维简单,适合高频访问的”核心记忆”
- 缺点:不支持模糊查询和语义检索,schema 变化时需要额外迁移逻辑
- 典型用法:把”用户画像摘要”这种结构化、更新频繁的记忆放 KV,把”历史对话原文”这种非结构化记忆放别处
图数据库
适合记忆之间存在明确关系的场景——不是每个 Agent 都需要,但涉及多实体关系推理时(比如客服 Agent 要理解”这个工单关联了哪些历史工单、涉及哪些产品模块”),图数据库的多跳查询能力是向量检索替代不了的。
- 代价是运维复杂度和学习曲线更高,团队没有图数据库经验时,引入成本不小
- 判断标准:如果你的记忆查询里经常出现”和 A 相关的 B,以及 B 相关的 C”这种链式关系,才值得考虑图数据库;单纯的相似度匹配不需要
传统关系型数据库(Postgres 等)
容易被忽视,但很多场景下是最务实的选择:
- 记忆本身有清晰的结构(时间戳、类型、优先级、状态),需要精确过滤和排序
- 团队已经有成熟的 Postgres 运维经验,不想引入新组件
- pgvector 插件让 Postgres 同时具备向量检索能力,中小规模场景下可以一库多用,省去多存储同步的复杂度
三、混合架构是常态,不是妥协
生产级 Agent 记忆系统通常是分层的:
短期记忆(当前会话) → 内存/Redis,随会话结束清理
中期记忆(近期摘要) → KV 存储,结构化、快速读写
长期记忆(语义历史) → 向量数据库,支持模糊召回
关系记忆(实体关联) → 图数据库(可选,视场景需要)
关键不是选”最好”的单一存储,而是按记忆的访问模式分层,让每种存储做自己擅长的事。上下文预算怎么在这些记忆层之间分配,可参考 Agent 上下文预算分配算法。
四、选型决策的实际步骤
- 先梳理查询模式:列出 Agent 实际会问存储层的所有问题类型(精确查找?语义相似?关系推理?),不要凭空猜测
- 评估团队运维能力:图数据库和向量数据库都有不小的学习和运维成本,团队没有相关经验时,从 Postgres + pgvector 起步是更稳妥的路径
- 按记忆生命周期分层:短期记忆不要用重量级存储,长期语义记忆不要硬塞进 KV
- 预留迁移空间:早期数据量小时,单一存储(比如 Postgres)完全够用;等到规模上来出现明显的查询瓶颈,再拆分成多存储架构,不要一开始就过度设计
五、常见误区
误区一:把所有记忆都塞进向量数据库。 向量检索适合语义模糊匹配,不适合需要精确性的场景(比如用户的账户余额)。用错场景会导致召回不准,还平白增加了 embedding 调用成本。
误区二:忽视记忆的时效性管理。 存储选型只是第一步,没有配套的过期/清理策略,记忆库会无限膨胀,检索质量和成本都会恶化,这部分详见 Agent 记忆保留与清理策略。
误区三:为了”技术先进”引入图数据库。 图数据库能力强,但运维复杂,如果你的查询里从来不需要多跳关系推理,引入它只是增加系统复杂度,没有实际收益。