最近在搭一个能记住用户偏好的Agent,看了一圈Milvus和Chroma的教程,基本都在讲怎么存文档切片。但我的场景是对话历史,总不能每轮对话都塞一个向量进去吧?那检索出来全是碎片,上下文拼接也麻烦。试过按session聚合存,但用户聊着聊着换话题了,旧memory又干扰新对话。有没有大佬实际搞过这种长期记忆的?你们是存整段对话摘要,还是拆成事件/实体存?另外清理策略怎么定,总不能让向量库无限涨下去……求指条明路,或者推荐个讲这个的博客也行。
最近在搭一个能记住用户偏好的Agent,看了一圈Milvus和Chroma的教程,基本都在讲怎么存文档切片。但我的场景是对话历史,总不能每轮对话都塞一个向量进去吧?那检索出来全是碎片,上下文拼接也麻烦。试过按session聚合存,但用户聊着聊着换话题了,旧memory又干扰新对话。有没有大佬实际搞过这种长期记忆的?你们是存整段对话摘要,还是拆成事件/实体存?另外清理策略怎么定,总不能让向量库无限涨下去……求指条明路,或者推荐个讲这个的博客也行。
这问题太真实了,我之前也卡在这。文档切片那套确实不适用对话,最后我是分两层存的:长期用session摘要+用户画像(比如偏好、事实),短期才存事件和实体,检索时按触发条件加权。清理策略可以搞个时间衰减或重要性评分,隔段时间把低分向量归档到冷存储,别硬删。
建议按事件+实体双粒度存,对话摘要单独开一层做索引,检索时先粗后细能省不少事。清理就靠时间衰减加话题漂移检测,过期主动归档。