2026年7月2日 周四晚上19:30,报名腾讯会议了解“如何构建自进化的动态知识库(Brain)”(限30人)
免费POC, 零成本试错
FDE知识库

FDE知识库

学习大模型的前沿技术与行业落地应用


收藏

最详细的 DeepAgents 实战拆解:一次看懂LangChain全新深度智能体框架

发布日期:2025-11-17 15:28:33 浏览次数: 5710
作者:AI大模型应用实践

微信搜一搜,关注“AI大模型应用实践”

推荐语

LangChain全新深度智能体框架DeepAgents实战解析,助你用更少代码实现复杂任务处理。

核心内容:
1. DeepAgents框架定位与三大核心能力解析
2. 实战演示:如何用DeepAgents处理复杂多步骤任务
3. 框架设计原理与未来发展方向

杨芳贤
53AI创始人/腾讯云(TVP)最具价值专家



前段时间LangChain 公司终于正式发布LangChain 1.0版本及其配套的LangGraph 1.0,标志着其通用 Agent 框架趋于成熟。在此基础上,LangChain 团队还推出了一个全新的开源项目DeepAgents,旨在进一步提升Agent 在复杂场景下的能力,用更少的代码完成更"Deep"的任务。
本文将为你带来 DeepAgents 的深入解读与实战体验。本文内容如下:
  • DeepAgents:框架定位与能力速览
  • 用实例读懂 DeepAgents:三大核心机制
  • 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领域最成功的有两类:编程智能体与深度研究智能体(也是笔者最常用的两类AI工具)。DeepAgents也受到这一类应用的启发 — 这些“深度 Agent”通过增加任务规划工具、子Agent、文件系统、详细提示等手段,在实践中突破了传统 Agent 的局限
DeepAgents将这些经验抽象为通用框架,开箱即用地提供任务规划、文件系统、长期记忆、分工协作等能力:
稍后我们将用一个完整的实例来体验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命令行来部署与启动:
> langgraph dev
然后在出现的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配备一套虚拟文件系统与读写工具,可随时记录、查询与持久化任务过程中的信息。
比如作为一个客服Agent,可以把与客户每次交互的摘要存放在这个虚拟文件系统(如:/memories/{user_id}/下),在客户下次来访可以调取。
虚拟文件系统由可插拔、可扩展的后端(Backend)来实现,架构如下:
  • StateBackend:Agent的State作为存储,仅在本次线程有效。可用来在一次对话中卸载临时的中间结果,优化上下文空间。
  • FileSystemBackend:本地文件系统目录作为存储,可长期保存。比如保存AI生成的创作文档或代码文件。
  • StoreBackend:Store是LangGraph实现跨线程持久记忆的机制(可以是Redis、Postgres等实现)。你可以配置Store作为虚拟文件系统。
  • CompositeBackend:复合后端。比如默认使用StateBackend;但存储到"/memories/"的数据则使用StoreBackend以实现跨线程持久。
此外,你可以编写自己的Backend,比如把虚拟文件系统映射到阿里云OSS;也可以扩展上述Backend,比如给FileSystemBackend增加安全检查。
现在我们继续用前面的Agent来体验该特性。

State作为Backend(默认)
首先不做任何代码修改,只对任务稍作修改:
观察执行过程,你将会看到write_file工具的调用:
由于没做任何指定,Agent会使用默认的StateBackend:将“文件”直接保存在State的Files字段。很显然,它并不是真实的文件,仅限本次线程有效。

本地文件系统作为Backend
现在给Agent更换另一个Backend的实现:
相同的输入任务下,你将不会在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) 
        }
    )

# === 创建 DeepAgent(无后端,无子智能体)===
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)。
接着在系统提示中增加一些指令:
SYSTEM_PROMPT = """你是一个股票分析助手。
...
- 把股票分析结果保存成/reports下面的Markdown文件
- 把用户分析过的股票名称保存到/memories/my_stocks.md中,方便下次调用
"""
现在启动一个运行线程,并输入任务:
观察执行过程,可以看到如下的工具调用信息:
根据以上的设置:股票分析结果会被保存到本地文件系统;但分析过的股票名称将会被路由到LangGraph的持久记忆Store。所以你会在本地看到分析结果,但无法看到这里的my_stocks.md“文件”。
为了验证my_stocks中的“记忆”,我们开启一个新的线程任务:
此时Agent会调用read_file工具来读取Store,并输出:
实际应用中,该功能可以用来实现诸如用户偏好记忆、知识积累、研究结果保存,以在不同会话中共享。
以上是DeepAgents内置的几种虚拟文件系统Backend实现。如果仍然无法满足你的需求,也可以自行实现BackendProtocol这个接口,将虚拟文件系统映射到你的OSS、数据库、向量库等。

【子智能体:Subagents】
现实中复杂项目通常由多人分工合作完成:每个角色各司其职。DeepAgents 引入的 Subagent(子代理)机制,正是让 AI Agent 也具备类似的能力:
主Agent可以根据需要派生子Agent来负责特定的子任务。
这本质上是一种多智能体系统的机制。其主要的好处是:
  • 上下文隔离:一个复杂Agent任务需要处理大量中间步骤和信息,快速膨胀的上下文很容易干扰主线思路 。而引入子Agent,主Agent可以将具体工作“外包”后接收最终结果,自身则专注主线任务。
  • 专长分离不同的子Agent可以拥有不同的专业知识、提示词与工具集,为每种任务定制一个子Agent,会比一个Agent囊括所有技能更高效。
使用Subagents有两种方法:
  • 直接定义Subagent的职责、提示词、可用工具等
  • 新建或使用已有的LangGraph工作流作为Subagent
我们继续对上面的例子做增强 - 用子Agent来协助完成任务:
  1. 设置三个不同的"股票分析"专家Agent:
...
# 1. 基本面分析师 - 使用股票详细信息和财务报表工具
fundamental_analyst = {
    "name": subagents_config["fundamental_analyst"]["name"],
    "description": subagents_config["fundamental_analyst"]["description"],
    "system_prompt": subagents_config["fundamental_analyst"]["prompt"],
    "tools": [
        get_stock_detailed_info, # 公司详细信息(主营、概况、筹码、分红)
        get_financial_statements, # 财务报表(资产负债表、利润表、现金流量表)
    ],
    "model"f"openai:{OPENAI_MODEL}",
}

# 2. 技术面分析师 - 使用技术指标和股票价格工具
technical_analyst = {
    "name": subagents_config["technical_analyst"]["name"],
    "description": subagents_config["technical_analyst"]["description"],
    "system_prompt": subagents_config["technical_analyst"]["prompt"],
    "tools": [
        get_technical_indicators, # 技术指标 
        get_stock_price, # 股票历史价格数据
    ],
    "model"f"openai:{OPENAI_MODEL}",
}

# 3. 消息面分析师 - 使用新闻和研报查询工具
news_analyst = {
    "name": subagents_config["news_analyst"]["name"],
    "description": subagents_config["news_analyst"]["description"],
    "system_prompt": subagents_config["news_analyst"]["prompt"],
    "tools": [
        get_stock_news, # 个股新闻
        get_stock_research_report, # 机构研究报告
    ],
    "model"f"openai:{OPENAI_MODEL}",
}
...
这里通过subagents_config集中配置三个Subagent的提示词与工具集,这里不再通过搜索获取信息,而是借助第三方金融数据接口(具体参考源码)。
2. 对主Agent的提示词做修改。
清晰的说明如何使用Subagent来协助完成任务<略>。
3. 在创建主Agent时指定subagents参数:
...
subagents = [fundamental_analyst, technical_analyst, news_analyst]

agent = create_deep_agent(
...
    subagents=subagents
...
)
现在让Agent运行相同的任务,你将可以观察到子Agent的参与:
很显然,Subagents的内部机制是:主Agent根据需要使用名为“task”的工具,将不同的子任务派发给对应的Subagent来完成。
需要注意的是,当任务非常简单或需要全程共享上下文时,引入子Agent可能增加不必要的开销。但在多步骤复杂任务、需要不同专业知识或想保持主任务聚焦的场景下,子Agent无疑是强有力的工具。

03

DeepAgents原理总结与未来展望

在前面的示例中,我们已经体验了 DeepAgents 在复杂任务中的核心能力。那么,这些能力背后究竟依托什么机制?如果你打开 LangSmith Studio 查看 DeepAgent 的工作流图,就会发现:
DeepAgents流程似乎与普通ReAct Agent并无本质区别:其本质只是在LangChain的Agent基础上挂载了多个中间件(Middleware)扩展。

Middleware是在LangChain1.0引入的Agent扩展机制,简单理解为:

插入到Agent主循环各个阶段的“钩子”,以调整与扩展Agent的行为逻辑。比如你可以在LLM调用前后拦截消息、替换LLM请求、总结工具结果等。

而DeepAgents就是通过中间件给普通Agent插入了更多新能力:
  • TodoListMiddleware:为Agent提供任务规划能力
  • FilesystemMiddleware:给Agent增加虚拟文件系统与相关工具
  • SubAgentMiddleware:支持子Agent,增加分工协作的运行模式
这种方式让 DeepAgents 的内部清晰解耦:每个中间件关注一个功能点,通过标准接口协作。这意味着你也可以定制 DeepAgents 的行为 - 比如更换规划策略(定制TodoListMiddleware)等,而不需要修改整个Agent逻辑。
【未来展望】
DeepAgents 正处于快速迭代阶段(目前版本0.2)。官方也透露了一些未来值得期待的方向。例如:
  • 系统提示的全面可定制
  • 更灵活的多Agent协作模式
  • 更高级的记忆检索与遗忘机制
  • 与知识库和RAG技术的更深度融合等等
  • 更丰富的中间件生态
随着社区参与度提升和官方持续投入,DeepAgents 很有机会成长为下一代“复杂任务智能体”的标准化框架。

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询

扫码登录
登录即表示您同意《53AI网站服务协议》
服务协议

欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。

在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。

一、 定义

本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。

会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。

知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。

二、 账号注册与登录

登录方式:本网站支持以下登录方式,您可根据实际情况选择:

微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。

手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。

账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。

实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。

未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。

三、 服务内容与规范

知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。

服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。

禁止行为:您在使用服务时不得实施以下行为:

利用技术手段批量爬取、下载、转存知识库内容;

将知识库内容用于商业目的或未经授权地向第三方传播;

干扰本网站正常运行或侵犯其他用户合法权益;

发布违法违规信息或从事违反公序良俗的活动。

四、 知识产权声明

权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。

有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。

侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。

五、 个人信息保护

我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。

您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。

您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。

六、 免责声明

内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。

不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。

第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。

七、 违约责任

如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。

如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。

八、 法律适用与争议解决

本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。

因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。

九、 其他

本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。

本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。

我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。


已查阅