- 规划工具
- 用于存储上下文和长期记忆的文件系统
- 生成子智能体的能力
create_deep_agent 创建深度智能体时,系统会自动为智能体挂载 TodoListMiddleware、FilesystemMiddleware 和 SubAgentMiddleware。
中间件具备可组合性——可以按需添加或移除,单独使用亦可。下列章节逐一介绍每个中间件提供的功能。
规划中间件
规划对于解决复杂问题至关重要。如果您近期使用过 Claude Code,会注意到它在处理复杂、多步骤任务前会先写一份待办清单,并且能在获取更多信息后随时调整。TodoListMiddleware 为智能体提供了一个专门的工具来更新待办列表。在执行多步骤任务前和执行过程中,智能体会被提示使用 write_todos 工具来记录当前进度以及待完成事项。
文件系统中间件
上下文工程是构建高效智能体的核心挑战之一。特别是在使用返回长度不固定结果的工具(如web_search、rag)时,较长的工具输出很容易填满上下文窗口。
FilesystemMiddleware 提供四个工具,让智能体可以操作短期和长期记忆:
- ls:列出智能体文件系统中的所有文件
- read_file:读取智能体文件系统中的文件
- write_file:在智能体文件系统中新建文件
- edit_file:编辑智能体文件系统中的现有文件
短期 vs. 长期文件系统
默认情况下,这些工具写入图状态中的本地“文件系统”。如果在运行时提供Store 对象,就可以启用长期记忆,使内容在智能体的不同线程之间持久存在。
use_longterm_memory=True 并提供 Store 时,所有以 /memories/ 为前缀的文件都会写入长期记忆。部署在 LangGraph Platform 的智能体默认已经具备长期记忆存储能力。
子智能体中间件
将任务交由子智能体处理,可以隔离上下文,保持主(监督者)智能体的上下文窗口干净,同时深入处理具体任务。 子智能体中间件允许通过task 工具向主智能体提供子智能体。
general-purpose(通用)子智能体。该子智能体与主智能体共享相同的指令及工具权限,主要用于上下文隔离——主智能体可以将复杂任务委派给它,获得简洁答案,从而避免中间工具调用带来的上下文膨胀。