- 通过RAG记忆,可以记住用户的历史对话、用户配置以及一些信息等等,并在下一次回答可以合理利用这些信息
- 无记忆的问题
RAG 记忆主要解决
记忆如何处理
- 短期记忆主要是当前会话上下文,可以直接放在 Prompt 提示词里
- 长期记忆不会保存所有聊天记录,通过模型来进行对记忆抽取、判断哪些信息有长期价值,比如用户偏好、项目背景、业务状态、历史决策等,再进行结构化存储或向量化存储
记忆如何存储
- 在存储上,一般不会只依赖向量数据库。像用户语言、角色、配置、业务状态这类明确字段,更适合存在业务数据库中,如 MySQL或 Redis 中, 而历史对话摘要、文档片段这些语义化的内容,更适合放在向量数据库
记忆如何更新
- 记忆不是只新增,还要支持更新、删除等等
- 记忆还需要支持更新和删除。比如用户偏好变化时,新记忆要覆盖旧记忆;相似记忆要合并;过期记忆要降权或清理;用户明确要求删除时要立即删除。这样可以避免记忆冲突
| 操作 | 说明 |
| ---------- | ------------ |
| 新增 | 发现新的长期信息 |
| 合并 | 相似记忆合并成一条 |
| 更新 | 用户偏好变化后覆盖旧值 |
| 删除 | 用户要求删除或信息过期 |
| 降权 | 长时间不用的记忆降低权重 |
| 过期 | 临时记忆自动失效 |
相关问题
- 为什么不把所有对话记录都存向量库?
- 只需要存储会话中的核心信息即可
- 历史对话怎么存?
- 先让大模型进行摘要和抽取,把核心有价值的信息整理, 在转换成向量来存储
- 记忆冲突如何处理?
- 优先新记忆、对记忆进行版本管理*
- 如何避免错误记忆?
- 可以通过人工确认、来源记录检查
- 如何保护隐私?
- 记忆太多如何处理?
- 对记忆分类、过期的记忆删除、记忆摘要压缩