CompositeBackend 将特定路径路由到持久化存储,从而为深度智能体添加长期记忆。这种混合存储方式使部分文件可以跨线程持久保存,而其他文件则保持临时状态。
设置
通过使用CompositeBackend 将 /memories/ 路径路由到 StoreBackend 来配置长期记忆:
工作原理
使用CompositeBackend 时,深度智能体维护两个独立的文件系统:
1. 短期(临时)文件系统
- 存储在智能体状态中(通过
StateBackend) - 仅在单个线程内持久保存
- 线程结束后文件将丢失
- 通过标准路径访问:
/notes.txt、/workspace/draft.md
2. 长期(持久)文件系统
- 存储在 LangGraph Store 中(通过
StoreBackend) - 跨所有线程和对话持久保存
- 智能体重启后依然存在
- 通过以
/memories/为前缀的路径访问:/memories/preferences.txt
路径路由
CompositeBackend 根据路径前缀路由文件操作:
- 以
/memories/开头的路径文件存储在 Store 中(持久化) - 不含此前缀的文件保留在临时状态中
- 所有文件系统工具(
ls、read_file、write_file、edit_file)均可与两者配合使用
CompositeBackend 在存储前会去除路由前缀。例如,/memories/preferences.txt 在 StoreBackend 中存储为 /preferences.txt。智能体始终使用完整路径。详见 CompositeBackend。跨线程持久化
/memories/ 中的文件可从任意线程访问:
从外部代码访问记忆(LangSmith)
如果你在 LangSmith 上部署智能体,可以使用 Store API 从服务器端代码(智能体外部)读取或写入记忆。StoreBackend 使用命名空间 (assistant_id, "filesystem") 存储文件。
键值不包含
/memories/ 前缀,因为 CompositeBackend 在存储前会去除该前缀。详见路径路由。使用场景
用户偏好设置
存储跨会话持久保存的用户偏好:自我优化指令
智能体可以根据反馈更新自身的指令:知识库
在多次对话中积累知识:研究项目
跨会话维护研究状态:Store 实现方式
任何 LangGraphBaseStore 实现均可使用:
InMemoryStore(开发环境)
适用于测试和开发,但重启后数据将丢失:PostgresStore(生产环境)
生产环境中请使用持久化存储:FileData 模式
通过StoreBackend 存储的文件使用以下模式:
create_file_data 辅助函数创建格式正确的文件数据:
最佳实践
使用具描述性的路径
使用清晰的路径组织持久化文件:记录记忆结构
在系统提示中告知智能体各位置存储了哪些内容:清理旧数据
定期清理过时的持久化文件,以保持存储可管理性。选择合适的存储方式
- 开发环境:使用
InMemoryStore快速迭代 - 生产环境:使用
PostgresStore或其他持久化存储 - 多租户:考虑在 store 中使用基于
assistant_id的命名空间
Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

