- 规划工具
- 用于存储上下文和长期记忆的文件系统
- 生成子代理的能力
create_deep_agent 创建一个 Deep Agent 时,我们会自动将 TodoListMiddleware、FilesystemMiddleware 和 SubAgentMiddleware 附加到您的代理。 中间件是可组合的——您可以根据需要向代理添加任意数量的中间件。您可以独立使用任何中间件。 以下部分解释了每个中间件提供的功能。规划中间件
规划是解决复杂问题的关键。如果您最近使用过 Claude Code,您会注意到它在处理复杂的、多部分任务之前会列出待办事项清单。您还会注意到,随着更多信息的传入,它可以即时调整和更新此待办事项清单。TodoListMiddleware 为您的代理提供了一个专门用于更新此待办事项清单的工具。在执行多部分任务之前和期间,代理会被提示使用 write_todos 工具来跟踪它正在做什么以及还需要做什么。文件系统中间件
上下文工程是构建有效代理的主要挑战。当使用返回可变长度结果的工具(例如,web_search 和 rag)时,这尤其困难,因为长工具结果可以很快填满您的上下文窗口。FilesystemMiddleware 提供了四个用于与短期和长期记忆交互的工具:- ls:列出文件系统中的文件
- read_file:读取整个文件或文件中指定行数的内容
- write_file:将新文件写入文件系统
- edit_file:编辑文件系统中的现有文件
短期与长期文件系统
默认情况下,这些工具将文件写入您图状态中的本地“文件系统”。如果您向代理运行时提供一个Store 对象,您还可以启用保存到长期记忆,它会跨代理的不同线程持续存在。
use_longterm_memory=True 并在代理运行时提供 Store,则任何以 /memories/ 为前缀的文件都将保存到长期记忆存储中。请注意,部署在 LangGraph 平台上的任何代理都会自动提供长期记忆存储。
子代理中间件
将任务交给子代理可以隔离上下文,使主(监督)代理的上下文窗口保持整洁,同时仍能深入处理任务。 子代理中间件允许您通过task 工具提供子代理。general-purpose 子代理。该子代理具有与主代理相同的指令以及主代理可访问的所有工具。general-purpose 子代理的主要目的是上下文隔离——主代理可以将一个复杂的任务委托给该子代理,并获得简洁的答案,而不会因中间工具调用而产生冗余信息。
以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。