DeepAgents是什么?LangChain新一代复杂AI智能体框架深度解析
AIAI Summary (BLUF)
DeepAgents是LangChain最新开源的AI智能体框架,专为简化复杂多步骤任务开发而设计。它内置任务规划、虚拟文件系统和子智能体协作能力,让开发者用更少代码构建更强大、更可靠的智能体。
近期,LangChain 公司正式发布了 LangChain 1.0 及其配套的 LangGraph 1.0,标志着其通用 Agent 框架已趋于成熟。在此基础上,团队还推出了全新的开源项目 DeepAgents,旨在进一步提升 Agent 在复杂场景下的能力,用更少的代码完成更“深度”的任务。
本文将为你带来 DeepAgents 的深入解读与实战体验。
01 DeepAgents:框架定位与能力速览
我们最熟悉的一种 Agent 形态,就是让 LLM 在推理循环中调用工具,并最终完成任务。但在复杂环境下,这类 Agent 往往会显得有些“脆弱”:任务步骤不合理、工具调用错误、上下文不断膨胀、甚至遗忘任务目标;缺乏主动规划步骤、管理中间变量、以及优化上下文的能力。
如果你在 LangChain 生态中开发,可以通过 LangGraph 从底层掌控工作流,例如:什么时候由 AI 决策、什么时候固化流程;使用 ReAct 还是 Plan-then-Execute 等范式 —— 但实现复杂度相对较高。
DeepAgents正是为了解决上述痛点而诞生。其出发点可用一句话概括:让复杂、多步骤、长时间运行的Agent更容易开发与构建。
DeepAgents 是什么?
DeepAgents 是 LangChain 公司在 LangGraph 与 LangChain 之后推出的第三个独立开源 Agent 框架,与前两者形成清晰分工。
在最新的LangChain 1.0版本中,这三者开发Agent的定位是:
- LangGraph:提供持久化与可观测的Runtime,用于构建底层工作流与Agent。
- LangChain:基于 LangGraph 的高层封装,提供更简洁的 Agent 接口(
create_agent)与扩展中间件机制。 - DeepAgents:在 LangChain 的高层接口 + LangGraph 的运行时之上,进一步封装形成“深度 Agent”框架。其核心方法
create_deep_agent,其实就是在create_agent之上增加了预置的系列中间件能力。
DeepAgents 增加了哪些能力?
目前在复杂任务Agent领域最成功的有两类:编程智能体与深度研究智能体。DeepAgents也受到这一类应用的启发 — 这些“深度 Agent”通过增加任务规划工具、子Agent、文件系统、详细提示等手段,在实践中突破了传统 Agent 的局限。
DeepAgents将这些经验抽象为通用框架,开箱即用地提供任务规划、文件系统、长期记忆、分工协作等能力。
什么时候选择 DeepAgents?
理解了DeepAgents/LangChain/LangGraph三者的分层定位,这个问题可以简单的总结为:当你需要构建复杂的多步骤、长时间运行的Agent;并希望拥有任务规划、文件系统、长期记忆等能力时,考虑DeepAgents。 而对于一些简单步骤的任务,直接使用 LangChain 提供的create_agent就已经足够。
通过 DeepAgents,开发者无需从零开始设计长流程 Agent,只需提供自定义工具和任务说明等,就能快速构建一个强大的“深度 Agent”。
02 实例读懂 DeepAgents:三大核心机制
我们将从构建一个最简单的Agent开始,并逐步细化与丰富其能力。在这个过程中你将可以清晰的看到:DeepAgents是如何在LangGraph与LangChain的基础上“添砖加瓦”,以适应更复杂的任务环境。
首先设计一个简单的场景:构建一个借助于搜索与金融数据接口等工具进行股票分析的Agent。
初始版本构建
最初这个Agent看上去是一个标准的ReAct范式Agent,唯一区别在于使用create_deep_agent而不是LangChain的create_agent(前身是LangGraph中的create_react_agent):
# === 系统指令 ===
SYSTEM_PROMPT = """你是一个股票分析助手。你的任务是帮助用户分析股票,使用 search 工具搜索相关信息。..."""
main_tools = [search] # 通用网络搜索工具
# === 创建 DeepAgent===
agent = create_deep_agent(
model=f"openai:{OPENAI_MODEL}",
tools=main_tools,
system_prompt=SYSTEM_PROMPT,
debug=True
).with_config({"recursion_limit": RECURSION_LIMIT})
为了更好的观测Agent运行,通过LangGraph命令行来部署与启动:
然后在出现的LangSmith Studio界面上输入消息:请帮我分析贵州茅台这只股票。
你会发现它的运行过程与普通的Agent几乎没有区别。这是正常的,因为在没有触发“深度能力”的情况下,DeepAgents 与普通 Agent 的执行路径相同。
现在我们来触发DeepAgent的第一个特性:任务规划。
任务规划:Planning Tool
单纯依赖LLM完成复杂任务的长期规划与执行很容易发生偏离。各大模型厂商推出的“深度 Agent”(如 OpenAI Deep Research、Claude Code)背后除了训练特殊的Agent推理模型外,都采用了类似的策略:在执行前先列步骤、做计划,然后逐一跟踪执行;并在必要时做调整。
DeepAgents 中的任务规划能力是通过一个内置工具 write_todos 来实现的。它会在以下条件下触发:
- 任务目标比较复杂,特别是涉及较多的步骤
- 用户明确提示要求LLM先规划执行
- 每完成一个步骤,需要修订任务清单 - 标记状态或调整任务
现在让我们换个方式输入任务要求:请帮我详细分析贵州茅台这只股票,包括基本面、技术面和消息面。请先制定一个分析计划。
再次通过LangSmith Studio观察执行过程,你会发现,这一次的工作循环有所不同!第一次的工具调用是write_todos,它会将LLM推理出的“代办事项”写入到State中。而后续每完成一个步骤,该工具会再次被调用 - 标记状态(或修订计划)。
注意:如果你的任务过于简单,默认不会触发规划机制,以避免增加不必要的token和时间开销。
文件系统:File System
想象下,当领导交给你复杂任务时,你是不是需要一个笔记本来记录重要事项或工作成果,必要时可以翻阅?DeepAgents的另一个重要特性 - “文件系统”,就类似这样的笔记本:给Agent配备一套虚拟文件系统与读写工具,可随时记录、查询与持久化任务过程中的信息。
虚拟文件系统由可插拔、可扩展的后端(Backend)来实现,架构如下:
- StateBackend:Agent的State作为存储,仅在本次线程有效。可用来在一次对话中卸载临时的中间结果,优化上下文空间。
- FileSystemBackend:本地文件系统目录作为存储,可长期保存。比如保存AI生成的创作文档或代码文件。
- StoreBackend:Store是LangGraph实现跨线程持久记忆的机制(可以是Redis、Postgres等实现)。你可以配置Store作为虚拟文件系统。
- CompositeBackend:复合后端。比如默认使用StateBackend;但存储到
/memories/的数据则使用StoreBackend以实现跨线程持久。
此外,你可以编写自己的Backend,比如把虚拟文件系统映射到阿里云OSS;也可以扩展上述Backend,比如给FileSystemBackend增加安全检查。
现在我们继续用前面的Agent来体验该特性。
State作为Backend(默认)
首先不做任何代码修改,只对任务稍作修改:请分析贵州茅台,并将分析结果保存到 /reports/maotai_analysis.md 文件中。
观察执行过程,你将会看到write_file工具的调用。由于没做任何指定,Agent会使用默认的StateBackend:将“文件”直接保存在State的Files字段。很显然,它并不是真实的文件,仅限本次线程有效。
本地文件系统作为Backend
现在给Agent更换另一个Backend的实现:
from deepagents.backends import FilesystemBackend
agent = create_deep_agent(
...,
backend=FilesystemBackend(root_dir="./fs", virtual_mode=True)
)
相同的输入任务下,你将不会在State看到Files字段,而是生成了真实的文件。
LangGraph Store作为Backend
这是非常重要的一项能力。它可以让Deep Agents能够像访问文件系统一样,直接操作底层LangGraph的持久装置(Store),从而获得跨线程、跨会话、带向量检索能力的持续记忆能力。
关于LangGraph Store的应用,可参考LangGraph官方文档详细了解。
继续修改我们的Agent,并同时演示CompositeBackend的能力:
def create_backend(runtime):
return CompositeBackend(
default=FilesystemBackend(root_dir="./fs", virtual_mode=True),
routes={
"/memories/": StoreBackend(runtime)
}
)
agent = create_deep_agent(
model=f"openai:{OPENAI_MODEL}",
tools=main_tools,
backend=create_backend,
system_prompt=SYSTEM_PROMPT,
debug=True
).with_config({"recursion_limit": RECURSION_LIMIT})
这里创建了一个复合的Backend:默认使用本地文件系统做后端;但如果路由路径是/memories/,则使用LangGraph Store作为后端(默认类型InMemoryStore)。
接着在系统提示中增加一些指令:
- 把股票分析结果保存成`/reports`下面的Markdown文件
- 把用户分析过的股票名称保存到`/memories/my_stocks.md`中,方便下次调用
现在启动一个运行线程,并输入任务。根据以上的设置:股票分析结果会被保存到本地文件系统;但分析过的股票名称将会被路由到LangGraph的持久记忆Store。所以你会在本地看到分析结果,但无法看到这里的my_stocks.md“文件”。
为了验证my_stocks中的“记忆”,我们开启一个新的线程任务:我之前分析过哪些股票?
此时Agent会调用read_file工具来读取Store,并输出结果。实际应用中,该功能可以用来实现诸如用户偏好记忆、知识积累
常见问题(FAQ)
DeepAgents框架主要解决传统AI智能体的哪些痛点?
DeepAgents旨在解决传统智能体在复杂场景下的脆弱性问题,如任务步骤不合理、工具调用错误、上下文膨胀和遗忘目标,通过内置能力简化开发。
DeepAgents与LangChain、LangGraph之间是什么关系?
DeepAgents是LangChain推出的第三个独立开源框架,在LangGraph运行时和LangChain高层接口之上封装,通过create_deep_agent方法提供预设中间件能力。
DeepAgents为开发者提供了哪些开箱即用的核心能力?
框架抽象了编程智能体和深度研究智能体的经验,提供任务规划工具、虚拟文件系统、子智能体协作和长期记忆等内置能力,帮助构建复杂多步骤智能体。
版权与免责声明:本文仅用于信息分享与交流,不构成任何形式的法律、投资、医疗或其他专业建议,也不构成对任何结果的承诺或保证。
文中提及的商标、品牌、Logo、产品名称及相关图片/素材,其权利归各自合法权利人所有。本站内容可能基于公开资料整理,亦可能使用 AI 辅助生成或润色;我们尽力确保准确与合规,但不保证完整性、时效性与适用性,请读者自行甄别并以官方信息为准。
若本文内容或素材涉嫌侵权、隐私不当或存在错误,请相关权利人/当事人联系本站,我们将及时核实并采取删除、修正或下架等处理措施。也请勿在评论或联系信息中提交身份证号、手机号、住址等个人敏感信息。



