deep-agents-memory 是一个面向 Deep Agent 的“记忆、持久化与文件系统访问”技能说明,内容以配置方式、代码示例和常见错误为主,帮助开发者为智能体选择合适的存储后端。
一、用途 该技能在 Deep Agent 需要记忆、跨会话状态或文件读写能力时引入。它解决的核心问题是:智能体写入的文件与状态应该只在当前对话内有效,还是需要在不同线程和会话之间长期保留。
二、三种后端
- StateBackend:短期记忆,只在单个线程内持久,线程结束后丢失,是默认后端且无需额外设置。
- StoreBackend:长期记忆,可跨线程和会话持久,需要显式传入 store(示例中为 InMemoryStore,文档也提示生产环境可换用 PostgresStore)。
- CompositeBackend:混合方案,通过 routes 把不同路径路由到不同后端。例如 default 为 StateBackend,而 /memories/ 路径交给 StoreBackend,从而实现 /draft.txt 临时、/memories/user-prefs.txt 持久。路由按最长前缀匹配,如同时配置 /mem/ 和 /mem/temp/,后者更具体的路径优先生效。
此外还有 FilesystemBackend,用于直接访问本地磁盘,示例中以 root_dir 和 virtual_mode 限制访问范围。
三、文件系统工具 FilesystemMiddleware 提供 ls、read_file、write_file、edit_file、glob、grep 六个工具。tool 名称由框架固定,智能体不能自行配置。
四、使用方式 文档分别给出 Python 与 JavaScript 示例:用 create_deep_agent / createDeepAgent 创建智能体,默认使用 StateBackend;通过 backend 参数传入后端工厂函数,并同时传入 store;调用时在 config 中指定 thread_id。示例演示了在线程 1 中写入 /memories/style.txt 后,线程 2 能读取该文件(前提是正确配置了路由与 store)。FilesystemBackend 示例还展示了用 interrupt_on / interruptOn 对 write_file、edit_file 开启人工确认,并配合 checkpointer 保存状态。
五、适用场景 文档列出的场景包括:临时工作文件(StateBackend,默认无配置)、本地开发 CLI(FilesystemBackend,直接磁盘访问)、跨会话记忆(StoreBackend)、混合存储(CompositeBackend)。
六、限制与安全
- 使用 StoreBackend 时必须显式传入 store,否则配置不完整;单靠 backend 工厂函数不够。
- 若只用 StateBackend 等临时后端,线程 2 无法读取线程 1 写入的文件。
- 路径必须匹配 CompositeBackend 的路由前缀才会走持久后端。
- InMemoryStore 仅适合示例,需要真正持久时换用 PostgresStore 等。
- 文档明确警告:不要在 Web 服务器中使用 FilesystemBackend,应改用 StateBackend 或沙箱;virtual_mode 用于限制访问范围,智能体无法越过其限制访问外部文件。
- 智能体可配置的部分限于后端类型与配置、CompositeBackend 路由规则、FilesystemBackend 根目录以及文件操作的人工介入,不能自行更改工具名称或在未正确配置后端时跨线程访问文件。
该页面未提供收费、价格或平台支持等信息。