前言

随着 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 模板、输出解析              │
└─────────────────────────────────────────────────────────────┘

功能对比

维度LangChainLangGraphDeep 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. 撰写报告

总结

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

选型建议

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

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

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

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

参考资料

Logo

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

更多推荐