构建 AI Agent 时,开发者常会同时遇到 Deep Agents、LangChain 和 LangGraph,却不容易判断它们分别解决什么问题。三者实际处于技术栈的不同层级,在开箱即用能力、抽象程度和流程控制上各有侧重,理解这些差异是合理选型与组合使用的前提。
这篇文章发布于 2026 年 8 月 6 日,作者是 Sydney Runkle,主要解释 Deep Agents、LangChain 和 LangGraph 在整个 Agent 技术栈中的定位、区别,以及实际开发时应该如何选择。(LangChain)
LangChain 提供的 Deep Agents、LangChain 和 LangGraph,分别代表了构建 Agent(智能体)的不同方式。
本文将介绍这三个开源框架之间的核心区别,以及在什么情况下应该选择哪一个。(LangChain)
Deep Agents、LangChain 和 LangGraph 是我们开源 Agent 技术栈(agent stack)的三个层次。
它们建立在同一个理念之上:
开发者应该能够掌控 Agent 的每一个部分——包括选择什么模型、模型看到什么上下文,以及运行 Agent 的 Harness(运行与控制框架)。
三个层次承担不同的角色,也提供不同程度的控制能力:
Runtime 提供最多的控制权和最少的抽象;
Harness 则相反——提供更多开箱即用的能力,但牺牲一部分底层控制权。
更重要的是:
这三个层次并不是互相排斥的。它们完全可以组合使用,你可以在不同层次之间自由切换,而不必只能选择其中一个。 (LangChain)
Deep Agents 是一个开箱即用的 Agent Harness。
Agent Harness 的主要职责,是通过 Context Engineering(上下文工程) ,在正确的时间,把正确的上下文提供给模型。
Deep Agents 已经内置了一系列关于 Context Management(上下文管理)的最佳实践,包括:
除此之外,Deep Agents 默认还包含很多其他组件。
这些都是经过明确设计的、具有一定 Opinionated(有明确设计取向) 的 Context Management 最佳实践。
LangChain 团队会持续审视和更新这些实践。
所以,使用 Deep Agents 的一个好处是:
你可以把寻找和吸收 Agent 领域最新最佳实践这件事交给我们。
使用 create_deep_agent 就可以非常简单地创建一个 Agent:
from deepagents import create_deep_agent
agent = create_deep_agent(
model="anthropic:claude-sonnet-5",
tools=[web_search],
system_prompt="you are a research agent...",
# skills path with citation-format, source-eval
skills=["./skills/"],
)
你只需要指定:
就可以快速构建一个具备大量能力的 Agent。(LangChain)
LangChain 是 Agent Framework(智能体框架) 。
它主要负责:
Abstraction + Integrations(抽象层 + 集成层)
与 Deep Agents 不同,LangChain 提供的是一个非常精简的 Agent Harness。
Deep Agents 内置了大量 Context Management 最佳实践,而 LangChain 的 Agent Abstraction(Agent 抽象)则非常:
Minimal(精简)且 Un-opinionated(不预设具体设计方式)。
它的核心 Agent 抽象其实非常简单:
一个 LLM,不断运行一个循环,并在循环中调用 Tools。
也就是:
LLM → Tool → Result → LLM → Tool → Result → ……
这个 Loop(循环)非常简单,但也非常强大。(LangChain)
有时候,你可能希望修改这个 Agent Loop。
通常,这是为了加入一些更加 Deterministic(确定性) 的步骤。
例如:
LangChain Agent 最强大的能力之一,就是:
允许你通过 Middleware(中间件)修改这个 Loop。
LangChain Middleware 提供了一系列 Hooks(钩子) ,可以从不同角度修改 Agent Loop 的行为。(LangChain)
Deep Agents 实际上就是 LangChain Core Agent + 大量 Middleware!
也就是说,Deep Agents 并不是完全独立于 LangChain 的另一套 Agent 架构。
它是在 LangChain Agent 核心循环之上,通过 Middleware 等机制加入了:
这也是理解三者关系的一个关键。(LangChain)
你可以通过简单的 create_agent 抽象来创建 LangChain Agent:
from langchain.agents import create_agent
agent = create_agent(
model="anthropic:claude-sonnet-5",
tools=[send_email],
prompt="you are my email assistant...",
middleware=[...]
)
这里你可以自行决定:
因此,相比 Deep Agents,你可以获得更细粒度的控制。(LangChain)
LangGraph 是 Agent Runtime(智能体运行时) 。
它是一个基于 Graph(图)的框架,用于构建自定义 Agent Workflow(智能体工作流)。
同时,它背后拥有一个持久化执行引擎(durable execution engine),内置支持:
并且可以对每一步执行进行观察和控制。(LangChain)
把 Agent 看作 Graph 的一个好处是:
你可以在 Graph 中显式编码更多 Determinism(确定性),并更加精确地控制每一步发生什么。
例如:
Step A
↓
Step B
↓
判断
↙ ↘
C D
这里每个节点(Node)和边(Edge)都可以代表明确的逻辑。
因此,与完全由模型决定下一步做什么相比,Graph 能够让开发者获得更强的流程控制能力。
事实上:
LangGraph 正是 LangChain 和 Deep Agents 底层 Agent 抽象的运行基础。 (LangChain)
先从 Deep Agents 开始。
Deep Agents 是一个功能非常强大的 Agent Harness,已经包含大量开箱即用的能力。
只有当你需要:
时,才进一步考虑 LangChain 和 LangGraph。(LangChain)
当你希望:
开箱即用地获得一个能力比较完整的 Agent
时,就应该考虑 Deep Agents。
对于大多数开发者而言,这应该是一个很好的起点。
只有当你需要对 Harness 本身进行更深入的控制时,才应该进一步向下探索。
假设你正在构建一个 GTM Agent(Go-To-Market 智能体,市场/销售增长智能体) 。
它可能需要:
例如:
用于处理周期性的工作流,例如:
用于深入研究某个客户:
等信息。
这并不是一个简单的 Demo。
LangChain 团队自己就使用 deepagents 构建了 GTM Agent。
目前这个 Agent:
他们使用 LangSmith Deployments 进行部署,因此既能够处理突发流量,也能够支持定时或事件触发的后台 Agent 运行。(LangChain)
当你需要:
基础构建模块(building blocks)
或者计划:
在 LangChain 之上自己组装一个定制化 Harness
时,就应该选择 LangChain。
LangChain 的 Integrations(集成)和 Abstractions(抽象)可以在多个层次发挥作用:
create_agent;create_deep_agent。如果你希望对:
每一步到底有哪些 Tools 和 Context 能够进入模型
拥有非常细粒度的控制,那么 LangChain 也非常适合。
特别是对于:
Ultra Latency-Sensitive Applications(对延迟极度敏感的应用)
这种精细控制可能非常重要。(LangChain)
假设你正在构建一个:
RAG Docs Q&A Bot(RAG 文档问答机器人) 。
用户提出问题之后:
这种 Agent 通常并不需要:
你只需要:
create_agent 提供核心 Agent Loop。这种情况下,LangChain 就非常合适。(LangChain)
当你的 Agent:
不适合标准 Agent Loop
或者:
需要在同一个 Workflow 中混合 Deterministic Steps(确定性步骤)和 Agentic Steps(智能体步骤)
时,就应该考虑 LangGraph。(LangChain)
假设你正在构建一个 Rental Application Processing Pipeline(租房申请处理流程)。
它包含几个步骤:
从每份申请中提取:
根据房东设定的标准进行评分。
根据结果:
这里最重要的一点是:
只有第一步需要 LLM。
剩下的步骤都是固定代码。
因此,这是一个相对 Deterministic(确定性) 的 Pipeline(流程)。
LLM 在这里负责从文档中提取信息,但不会获得可以自主采取行动的 Tools。(LangChain)
这就是 LangGraph 非常适合的场景。
如果你的 LangGraph Workflow 的价值主要来自:
那么:
继续使用 LangGraph。
但如果你的 LangGraph Workflow 已经变得非常 Agentic(智能体化) :
那么你可能会从迁移到 Deep Agents 中获益。(LangChain)
这是理解整个架构时非常重要的一点:
你并不需要在三者之间做一个“非此即彼”的选择。
三个框架都是 Composable(可组合的) 。
例如,你可以:
把:
create_agent
或者:
create_deep_agent
直接放进一个更大的 LangGraph Workflow。
反过来也可以:
把一个自定义 LangGraph Workflow:
作为 Subagent(子 Agent)
放进 create_agent 或 create_deep_agent 中。(LangChain)
无论你最终使用哪个 Package(软件包):
都可以使用:
LangSmith Deployments
进行部署,并使用:
LangSmith Observability
进行可观测性分析。(LangChain)
Agent 越自主(Autonomous),通常意味着:
潜在能力越强,但可靠性也可能越低。
因此:
更适合:
而:
越高:
但与此同时:
可预测性和可靠性可能下降。 (LangChain)
可以把它们理解成这样:
LangGraph ←———— LangChain ————→ Deep Agents
从:
Determinism(确定性)
逐渐走向:
Agency(自主性)
LangGraph 可以让你直接把:
Domain Knowledge(领域知识)
编码进 Graph Topology(图的拓扑结构)中。
而不是把这些判断交给模型。
也就是说:
你决定 Agent 应该怎么走。
LangChain 的核心 Agent Loop 本身具有一定的:
Non-deterministic(非确定性)
模型会在每一步决定:
下一步应该做什么。
但你仍然可以通过 Middleware 添加确定性的步骤。(LangChain)
Deep Agents 提供最大的自主性。
它允许 Agent:
因此:
Deep Agents 更倾向于让 Agent 自己决定怎么完成任务。 (LangChain)
很多 Agent 都使用 Core Agent Loop。
但是即便如此,它们仍然可能需要几个 Deterministic Steps。
例如:
这些事情:
不应该完全交给模型决定。
Middleware 就解决了这个问题。
它允许你在 Deep Agents 和 LangChain 的 Core Loop 周围:
如果 Middleware 提供的 Hooks 仍然无法满足你的需求:
LangGraph 就是你的 Escape Hatch(逃生舱/更底层的控制出口)。
你可以在 LangGraph 中构建一个完全自定义的 Graph。
然后直接把你的 Workflow Logic(工作流逻辑)编码进 Graph 的结构里。
这样,你就拥有几乎完全的执行控制权。(LangChain)
这三个层次并不是一开始就同时存在的。
它们实际上代表了 LangChain 技术栈随着 Agent 发展逐渐演进的过程。
LangChain 于 2022 年 10 月发布。
最初的目标是:
让开发者能够尽快构建一个 LLM Application(LLM 应用)。
当时的重点是:
快速使用 LLM。
随着 Agent 越来越复杂,开发者发现:
Chain 提供的控制能力已经不够了。
因此,LangChain 团队在 2024 年 1 月推出了 LangGraph。
它提供了一个:
Graph-Based Runtime(基于图的运行时)
并将:
作为一等公民(First-Class Primitives)提供。(LangChain)
随着模型能力不断提高:
Core Agent Loop
逐渐变得足够强大,可以标准化。
一个模型:
已经足以构成一个通用 Agent 的基础。
于是:
create_agent
成为 LangChain 提供的 Minimal Harness(最小化 Harness)。
而它本身又建立在 LangGraph 之上。
原因是:
生产级 Agent 需要 Human-in-the-loop、Observability、Fault Tolerance 等底层能力。
随后,在 2025 年 7 月,LangChain 又进一步推出了 Deep Agents。
它建立在相同的 Core Loop 之上,但默认加入了:
受到 Claude Code 和 Manus 的启发,LangChain 团队认为开发者也希望拥有:
同样强大的、可以应用于自己业务场景的 Agent。
于是,他们将 deepagents 打造成了一个:
General-Purpose Agent Harness(通用型 Agent Harness)。 (LangChain)
如果你正在:
构建一个新的 Agent,或者重新设计一个已有 Agent
那么:
使用:
create_deep_agent
这是 LangChain 团队目前内部构建 Agent 时主要使用的方式,包括:
选择:
create_agent
也就是:
LangChain
它提供:
选择:
LangGraph
尤其是当你需要:
LangGraph 会更加合适。(LangChain)
可以把这三个框架理解成一个逐层向下的技术栈:
更高层 / 更强的开箱即用能力
↑
│
┌─────────────────┐
│ Deep Agents │
│ Agent Harness │
│ │
│ Context │
│ Subagents │
│ Skills │
│ Memory │
│ Filesystem │
└────────┬────────┘
│
┌────────▼────────┐
│ LangChain │
│ Agent Framework │
│ │
│ Agent Loop │
│ Tools │
│ Middleware │
│ Integrations │ (集成)
└────────┬────────┘
│
┌────────▼────────┐
│ LangGraph │
│ Agent Runtime │
│ │
│ Graph │
│ Durable Runtime │ (持久化运行时)
│ HITL │
│ Fault Tolerance │ (容错)
└─────────────────┘
│
↓
更底层 / 更强的控制能力
这个关系其实就是整篇文章最核心的内容:
Deep Agents 是 Harness,LangChain 是 Framework,LangGraph 是 Runtime。
三者不是竞争关系,而是逐层构建、彼此组合的关系。(LangChain)
如果只记住三个词:
Deep Agents = 开箱即用
LangChain = 灵活组装
LangGraph = 完全掌控
或者更准确一点:
Deep Agents 帮你把 Agent 做好;LangChain 给你 Agent 的核心积木;LangGraph 则让你掌控整个 Agent Workflow 的执行方式。
而且,这三层并非互斥——你可以在 LangGraph 中运行 Deep Agents,也可以把 LangGraph Workflow 作为 Deep Agents 的 Subagent。
这也是这篇文章最重要的架构思想。