前言

随着 AI Agent 技术的快速发展,LangChain 生态系统不断演进,推出了多个层次的框架和工具。很多开发者在接触时会产生困惑:LangChain、LangGraph 和 Deep Agents 到底有什么区别?我应该用哪个?

本文将从架构设计、核心能力、适用场景三个维度,深入解析这三个框架的区别,帮助你做出正确的技术选型。

背景:为什么会有三个框架?

LangChain 生态的演进路径如下:

LangChain(2022)→ LangGraph(2024)→ Deep Agents(2025)
     ↓                  ↓                    ↓
  核心构建块          编排运行时            Agent 框架
  • LangChain:最早推出的 LLM 应用开发框架,提供 Chain、Agent、Tool、Memory 等模块化组件

  • LangGraph:基于有向图的 Agent 编排运行时,解决复杂工作流的流程控制问题

  • Deep Agents:最新的 Agent 框架(harness),内置任务规划、上下文管理、子代理生成等高级能力

核心区别对比

架构层次

┌─────────────────────────────────────────────────────────────┐
│                    Deep Agents(框架层)                      │
│  内置:任务规划、文件系统、子代理、长期记忆、人类审批         │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────┐
│                    LangGraph(运行时层)                      │
│  提供:状态图、持久化、流式处理、人在回路、检查点             │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────┐
│                    LangChain(构建块层)                      │
│  提供:模型调用、工具定义、Prompt 模板、输出解析              │
└─────────────────────────────────────────────────────────────┘

功能对比

维度 LangChain LangGraph Deep Agents
定位 核心构建块框架 编排运行时 Agent 框架(harness)
架构模型 Chain(链式调用) Graph(状态图) 工具调用循环 + 内置能力
状态管理 基础 Memory 完善的 Checkpoint 文件系统 + 长期记忆
流程控制 线性链 条件分支、循环、并行 任务规划、子代理生成
人在回路 需手动实现 内置支持 内置支持
持久化 需手动实现 内置支持 内置支持
上下文管理 基础 中等 高级(压缩、摘要、文件系统)
学习曲线 中高
适用场景 简单 RAG、单轮对话 复杂工作流 复杂多步任务

代码对比

LangChain 方式
from langchain.agents import create_agent
​
def get_weather(city: str) -> str:
    """获取城市天气"""
    return f"{city} 天气晴朗!"
​
# 创建基础 Agent
agent = create_agent(
    model="openai:gpt-4",
    tools=[get_weather],
    system_prompt="你是一个有用的助手",
)
​
# 调用 Agent
result = agent.invoke(
    {"messages": [{"role": "user", "content": "北京天气怎么样?"}]}
)

特点:简单直接,适合单轮对话和简单任务。

LangGraph 方式
from langgraph.graph import StateGraph, MessagesState
from langchain_openai import ChatOpenAI
​
# 定义状态图
workflow = StateGraph(MessagesState)
​
# 添加节点
workflow.add_node("agent", call_model)
workflow.add_node("tools", tool_node)
​
# 添加边
workflow.add_edge(START, "agent")
workflow.add_conditional_edges("agent", should_continue)
workflow.add_edge("tools", "agent")
​
# 编译
app = workflow.compile()
​
# 调用
result = app.invoke({"messages": [("user", "北京天气怎么样?")]})

特点:基于状态图,支持复杂流程控制、条件分支、循环。

Deep Agents 方式
from deepagents import create_deep_agent
​
def get_weather(city: str) -> str:
    """获取城市天气"""
    return f"{city} 天气晴朗!"
​
# 创建 Deep Agent
agent = create_deep_agent(
    model="openai:gpt-4",
    tools=[get_weather],
    system_prompt="你是一个有用的助手",
)
​
# 调用 Agent(自动启用任务规划、上下文管理等)
result = agent.invoke(
    {"messages": [{"role": "user", "content": "帮我规划一次北京三日游"}]}
)

特点:内置高级能力,自动处理任务分解、上下文管理。

详细解析

1. LangChain:核心构建块

核心组件

  • Models:模型调用封装

  • Prompts:Prompt 模板管理

  • Chains:链式调用

  • Agents:工具调用 Agent

  • Memory:对话记忆

  • Tools:工具定义

优势

  • 生态丰富,集成众多 LLM 和工具

  • 学习曲线低,上手快

  • 社区活跃,文档完善

局限

  • 复杂工作流实现困难

  • 状态管理需要手动实现

  • 随着功能增多,架构变重

适用场景

  • 简单 RAG 应用

  • 单轮对话 Agent

  • 快速原型开发

2. LangGraph:编排运行时

核心特性

  • 状态图(State Graph):基于有向图的工作流定义

  • Checkpoint:内置状态持久化,支持断点续传

  • 流式处理:支持实时流式输出

  • 人在回路(Human-in-the-loop):内置人工审批机制

  • 条件分支:支持复杂的流程控制

架构设计

用户输入 → Agent 节点 → 条件判断 → 工具节点 → Agent 节点 → 输出
              ↑                    ↓
              └────────────────────┘
                    (循环)

优势

  • 精细的流程控制

  • 内置持久化和恢复

  • 支持复杂多步工作流

  • 与 LangChain 完全兼容

局限

  • 学习曲线较陡

  • 需要理解状态图概念

  • 对于简单任务过于复杂

适用场景

  • 复杂多步骤工作流

  • 需要人工审批的流程

  • 需要断点续传的任务

  • 多 Agent 协作系统

3. Deep Agents:Agent 框架

内置能力

能力 说明
任务规划 内置 write_todos 工具,自动分解复杂任务
文件系统 虚拟文件系统管理上下文,支持大文件处理
子代理生成 自动创建子代理并行处理任务
长期记忆 持久化记忆存储和检索
人类审批 内置关键决策点的人工审批机制
上下文压缩 自动摘要历史消息,管理增长的上下文

架构设计

用户输入 → 任务规划 → 子代理生成 → 并行执行 → 结果聚合 → 输出
              ↑           ↓
              │      ┌────┴────┐
              │      │ 子代理1 │
              │      │ 子代理2 │
              │      │ 子代理3 │
              │      └────┬────┘
              └────────────┘

优势

  • 开箱即用的高级能力

  • 自动处理复杂任务

  • 内置最佳实践

  • 与 LangChain/LangGraph 完全兼容

局限

  • 抽象层次高,灵活性受限

  • 学习曲线较陡

  • 对于简单任务可能过于复杂

适用场景

  • 复杂多步任务

  • 需要任务分解的场景

  • 需要并行处理的场景

  • 生产级 Agent 应用

选型指南

选择 LangChain 的场景

  • ✅ 简单 RAG 应用

  • ✅ 单轮对话 Agent

  • ✅ 快速原型开发

  • ✅ 学习 Agent 基础概念

选择 LangGraph 的场景

  • ✅ 复杂多步骤工作流

  • ✅ 需要人工审批的流程

  • ✅ 需要断点续传的任务

  • ✅ 多 Agent 协作系统

  • ✅ 需要精细流程控制

选择 Deep Agents 的场景

  • ✅ 复杂多步任务(如数据分析、报告生成)

  • ✅ 需要任务分解和规划

  • ✅ 需要并行处理多个子任务

  • ✅ 生产级 Agent 应用

  • ✅ 需要长期记忆和上下文管理

实战示例

示例 1:简单天气查询(LangChain)

from langchain.agents import create_agent
​
def get_weather(city: str) -> str:
    return f"{city} 天气晴朗!"
​
agent = create_agent(
    model="openai:gpt-4",
    tools=[get_weather],
    system_prompt="你是一个有用的助手",
)
​
result = agent.invoke(
    {"messages": [{"role": "user", "content": "北京天气怎么样?"}]}
)

示例 2:多步骤研究工作流(LangGraph)

from langgraph.graph import StateGraph, MessagesState

# 定义研究工作流
workflow = StateGraph(MessagesState)

# 添加节点:搜索 → 分析 → 总结
workflow.add_node("search", search_node)
workflow.add_node("analyze", analyze_node)
workflow.add_node("summarize", summarize_node)

# 添加边
workflow.add_edge(START, "search")
workflow.add_edge("search", "analyze")
workflow.add_edge("analyze", "summarize")
workflow.add_edge("summarize", END)

# 编译并调用
app = workflow.compile()
result = app.invoke({"messages": [("user", "研究 LangChain 的最新进展")]})

示例 3:复杂数据分析任务(Deep Agents)

from deepagents import create_deep_agent

# 创建数据分析 Agent
agent = create_deep_agent(
    model="openai:gpt-4",
    tools=[read_csv, analyze_data, create_chart],
    system_prompt="你是一个数据分析专家",
)

# 自动分解任务、并行处理
result = agent.invoke(
    {"messages": [("user", "分析这份销售数据,找出趋势并生成报告")]}
)
# Deep Agents 会自动:
# 1. 规划任务步骤
# 2. 读取数据
# 3. 分析数据
# 4. 生成图表
# 5. 撰写报告

总结

框架 一句话总结 推荐指数
LangChain Agent 开发的瑞士军刀,简单任务首选 ⭐⭐⭐⭐
LangGraph 复杂工作流的精细控制,进阶开发者必备 ⭐⭐⭐⭐⭐
Deep Agents 生产级 Agent 框架,复杂任务的最佳选择 ⭐⭐⭐⭐⭐

选型建议

  • 新手入门:从 LangChain 开始,掌握基础概念

  • 进阶开发:学习 LangGraph,掌握复杂工作流

  • 生产部署:使用 Deep Agents,享受开箱即用的高级能力

三者并非互斥关系,而是层层递进:LangChain 提供构建块,LangGraph 提供编排能力,Deep Agents 提供完整框架。根据你的需求选择合适的层次即可。

参考资料

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐