最近在搭一个个人助手Agent,想让它能记住用户偏好和之前的对话。看了一圈方案,很多人说用向量数据库做RAG,但RAG不是只管检索知识库吗?那Agent的长期记忆(比如用户喜欢喝冰美式)是不是也应该存到同一个向量库里?还是说需要单独开一个记忆表?我现在是把对话历史全塞进一个collection,但查询时经常把无关内容也召回,感觉思路有问题。有没有大佬分享一下实际项目里的经验?比如向量库里的数据怎么分片、元数据怎么设计?目前用的是ChromaDB,但感觉配置不太对。
楼主
2026-07-19
用向量数据库做AI Agent记忆,RAG和长期记忆到底怎么分?
请 登录 后发表回复
全部回复
共 184 条
2楼
2026-09-20
这个问题我也踩过坑,说实话RAG和长期记忆在实现上确实容易混,但概念上得拆开看。RAG更像是“查资料”,每次问答去知识库里捞相关片段来支撑回答;而长期记忆是“记住你这个人”,比如你喝冰美式、你讨厌重复解释同一件事,这些是需要跨会话持久化的。你全塞一个collection里召回混乱太正常了,因为语义相似度根本不区分“这是知识”还是“这是关于用户的偏好”。我的做法是分两个库或者至少用metadata硬隔离,比如加type字段区分knowledge和memory,memory里再细分preference、fact、episodic。ChromaDB的where过滤配合metadata其实够用,但别指望它自己做语义分层。另外长期记忆最好加个时间衰减或者重要性打分,不然半年前随口说的一句话也会被召回。建议你先从对话里抽结构化偏好存成小条目,而不是整段历史往里灌,召回质量会好很多。
3楼
2026-09-21
我之前也把对话全丢一个collection,召回确实乱。建议记忆和知识库分开,靠metadata过滤类型和场景。
4楼
2026-09-21
我之前把偏好和知识库分开存两个collection,召回准多了,元数据加个type字段过滤就行。
5楼
5天前
我之前也遇到过类似问题,后来换了方案。