Store 并设置 use_longterm_memory=True 来扩展深度代理的长期记忆。这使得持久存储能够在线程和对话之间保留。设置
工作原理
启用长期记忆后,深度代理维护两个独立的文件系统1. 短期(瞬时)文件系统
- 存储在代理的状态中
- 仅在单个线程内持久化
- 线程结束时文件丢失
- 通过标准路径访问:
/notes.txt
2. 长期(持久)文件系统
- 存储在 LangGraph Store 中
- 跨所有线程和对话持久化
- 文件无限期保留
- 通过特殊前缀访问:
/memories/notes.txt
“/memories/” 路径约定
长期记忆的关键是/memories/ 路径前缀
- 以
/memories/开头的文件存储在 Store 中(持久) - 没有此前缀的文件保留在瞬时状态中
- 所有文件系统工具(
ls、read_file、write_file、edit_file)都适用于两者
跨线程持久性
/memories/ 中的文件可以从任何线程访问
用例
用户偏好设置
存储跨会话保留的用户偏好设置自我完善指令
代理可以根据反馈更新自己的指令知识库
通过多次对话积累知识研究项目
在会话之间维护研究状态存储实现
任何 LangGraphBaseStore 实现都适用
InMemoryStore(开发)
适用于测试和开发,但数据在重启时会丢失PostgresStore(生产)
对于生产环境,请使用持久存储最佳实践
使用描述性路径
使用清晰、分层的路径组织长期文件记录持久化内容
在系统提示中,阐明何时使用长期存储与短期存储按助手 ID 隔离存储
对于多租户应用程序,提供assistant_id 以隔离存储
在生产中使用持久存储
列出文件
ls 工具显示来自两个文件系统的文件
/memories/ 为前缀。
限制
需要存储
启用长期记忆时必须提供 Store代理必须使用正确的路径
代理必须学会使用/memories/ 前缀进行持久化。系统提示会教导这一点,但代理必须遵循指令。
无自动清理
长期文件无限期保留。没有内置的 TTL 或自动清理。如果需要,您需要实施清理策略。以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。