LangChain发布深度代理:用于多步人工智能代理中规划、内存和上下文隔离的结构化运行时
大部分LLM代理在缩短工具调用循环时表现良好,但一旦任务变得多步骤、状态化和需要大量工件,就会开始出现问题。"LangChain的深度代理"正是为此而设计的。LangChain将这个项目描述为一种“代理绑定”:一个基于LangChain代理构建模块且由LangGraph运行时提供长期执行、流式传输和人机交互流程的独立库。
重要的是,深度代理并没有引入一个与LangGraph分离的新推理模型或新运行时。相反,它围绕标准工具调用循环打包了一系列默认值和内置工具。LangChain团队将其定位为开发人员的更容易的起点,这些开发者需要能够规划、管理大量上下文、委派子任务,并在对话中持久化信息,同时仍保留在需要时转移到更简单的LangChain代理或自定义LangGraph工作流程的选项。
默认包含深度代理的内容
深度代理的GitHub存储库直接列出核心组件。其中包括名为write_todos的计划工具,如文件系统工具read_file、write_file、edit_file、ls、glob和grep,通过execute访问外壳并进行沙盒操作,用于生成子代理的task工具,以及如自动摘要和将大型输出保存到文件等内置上下文管理功能。
这种框架很重要,因为许多代理系统将规划、中间存储和子任务委派留给应用程序开发者。深度代理将这些组件移动到默认运行时。
规划和任务分解
深度代理包括一个内置的write_todos工具用于规划和任务分解。其目的是明确的:代理可以将复杂任务分解为离散步骤,跟踪进度,并在出现新信息时更新计划。
没有规划层,模型倾向于从当前提示中即兴发挥每个步骤。使用write_todos后,工作流程变得更加结构化,这对于需要进行多步骤的研究任务、编码会话或分析作业更有用。
基于文件系统的上下文管理
第二个核心功能是使用文件系统工具来管理上下文。这些工具允许代理将大量上下文卸载到存储中,而不是将所有内容都保存在活动提示窗口中。LangChain团队明确指出,这有助于防止上下文窗口溢出并支持可变长度的工具结果。
这是一个比关于“记忆”的模糊声明更具体的设计选择。代理可以将笔记、生成的代码、中间报告或搜索输出写入文件,并在稍后检索它们。这使系统更适合输出本身成为工作状态一部分的长期任务。
深度代理还支持这种虚拟文件系统的多种后端类型。定制文档列出了StateBackend、FilesystemBackend、LocalShellBackend、StoreBackend和CompositeBackend。默认情况下,系统使用StateBackend,它将一个临时的文件系统存储在LangGraph状态中,以支持单个线程。
子代理和上下文隔离
深度代理还包括一个用于生成子代理的内置task工具。此工具允许主代理创建用于上下文隔离的专门子代理,这样就可以保持主线程更干净,同时让系统深入特定子任务。
这是对代理系统常见故障模式的一个更清晰的答案。一旦单个线程积累了过多的目标、工具输出和临时决策,模型的品质通常会下降。将工作分割成子代理可以减少这种过载并使编排路径更容易调试。
长期记忆和LangGraph集成
深度代理的GitHub存储库还描述了长期记忆作为一个内置功能。深度代理可以使用LangGraph的内存存储跨线程扩展持久记忆,允许代理从前一次对话中保存和检索信息。
在实现方面,深度代理完全保持在LangGraph执行模型之内。定制文档指定create_deep_agent(...)返回一个CompiledStateGraph。生成的图可用于LangGraph标准功能,如流、Studio和检查点。
深度代理不是一个阻止对运行时功能访问的并行抽象层;它是一个预构建的带有默认设置的图。
部署细节
对于部署,官方快速入门展示了最小的Python设置:安装deepagents以及类似tavily-python的搜索提供商,导出您的模型API密钥和搜索API密钥,定义一个搜索工具,然后使用工具调用模型通过create_deep_agent(...)创建代理。文档指出,深度代理需要工具调用支持,示例工作流程是用您的工具和system_prompt初始化代理,然后使用agent.invoke(...)运行它。LangChain团队还指出了适用于生产的LangGraph部署选项,这是合适的,因为深度代理运行在LangGraph运行时上,并支持内置流式传输以观察执行。
关键要点
- 深度代理是建立在LangChain和LangGraph运行时之上的代理绑定。
- 它包括通过
write_todos工具进行内置的规划,用于多步骤任务分解。 - 它使用文件系统工具来管理大量上下文并减少提示窗口压力。
- 它可以使用内置的
task工具生成子代理,以实现上下文隔离。 - 它通过LangGraph的内存存储支持跨线程的持久内存。
查看仓库和文档。还可以自由地关注我们的Twitter,并别忘了加入我们的[12万+机器学习SubReddit](https://www.reddit.com/r/machinelearningnews//)以及订阅我们的通讯。等等!你在Telegram里吗?现在你也可以加入我们的Telegram群组。
这篇名为LangChain发布深度代理:为多步骤AI代理中的规划、记忆和上下文隔离提供结构化运行时的文章首次发表于MarkTechPost。







