记忆管理
概览
记忆管理负责让模型在多轮对话、智能体执行和长期用户服务中保持上下文连续。当前代码中已经有 PersistentChatMemoryStore、MessageWindowChatMemory 和会话消息持久化的雏形,后续可扩展为全局记忆、用户记忆、长期记忆和短期记忆四层。
text
短期记忆:当前窗口内的最近消息
长期记忆:跨会话保留的摘要、偏好、事实
用户记忆:某个用户的画像和偏好
全局记忆:系统级规则、组织知识、公共偏好当前实现
| 组件 | 说明 |
|---|---|
PersistentChatMemoryStore | 从数据库读取会话消息,并转换为 LangChain4j ChatMessage。 |
MessageWindowChatMemory | 控制短期上下文窗口,避免无限增长。 |
ChatMemoryProperties | 记忆配置项占位。 |
ChatMessageService | 管理会话消息持久化。 |
短期记忆
短期记忆适合保存当前对话窗口内的信息,例如用户刚刚上传的文件、最近几轮问题、工具返回的临时结果。
建议配置:
| 配置 | 建议 |
|---|---|
| 窗口大小 | 根据模型上下文长度和业务成本设置。 |
| 写入时机 | 用户消息、模型回复、工具观察结果。 |
| 清理策略 | 会话结束、用户手动清空、窗口溢出。 |
截图占位:会话历史和清空上下文按钮,建议放置在 /images/memory/session-memory.webp。
长期记忆
长期记忆用于跨会话保存稳定信息,例如用户偏好、项目背景、常用术语、已确认的业务事实。
预留数据结构:
| 字段 | 说明 |
|---|---|
memory_id | 主键。 |
owner_type | global、user、tenant、agent。 |
owner_id | 所属用户、租户或智能体。 |
content | 记忆内容。 |
source | 生成来源:对话、手动录入、知识库、工具。 |
confidence | 可信度。 |
expires_at | 过期时间,可为空。 |
用户记忆
用户记忆建议只保存对服务有帮助、且用户授权或可见的信息:
- 常用语言、输出格式偏好。
- 所属团队、岗位、项目背景。
- 常用知识库、常用模型、常用工作流。
- 用户显式要求记住的偏好。
WARNING
不要把敏感信息、密码、密钥、身份证号等直接写入记忆。需要保存时应先脱敏、加密,并提供删除入口。
全局记忆
全局记忆用于系统级公共规则,例如品牌术语、标准回答风格、组织级知识入口、默认安全边界。
截图占位:全局记忆管理页,建议放置在 /images/memory/global-memory.webp。
待补充
| 项目 | 说明 |
|---|---|
| 记忆抽取 | 从对话中自动识别可保存事实。 |
| 记忆召回 | 按用户、任务、相似度召回相关长期记忆。 |
| 记忆审批 | 高风险记忆写入前让用户确认。 |
| 记忆删除 | 用户可查看、编辑、删除自己的记忆。 |
