Agent框架演化三部曲

LangChain → LangGraph → DeepAgents 的技术跃迁与选型逻辑

AI AgentLangChainLangGraphDeepAgents技术选型

一、为什么Agent框架需要演化

大语言模型本质上是文本补全机器——给定输入,预测下一个token。但真正有用的AI助手需要的远不止"说话":它需要思考、记忆、调用工具、管理状态,在多轮交互中完成复杂任务。这就是Agent框架要解决的问题:在LLM之上构建一个完整的认知循环。

从2023到2026年,这一认知循环的实现方式经历了三次范式跃迁:

Agent框架演化时间线
2023 ── LangChain ── "万物皆链",10分钟跑通Demo
2024 ── LangGraph ── "有向图",Agent可以可靠运行
2025 ── DeepAgents ── "自治编排",Agent管理Agent

这不是"谁取代谁"的替代关系,而是层叠演进——DeepAgents构建在LangGraph之上,LangGraph构建在LangChain之上。理解这三层的设计哲学、能力边界和适用场景,是2026年做Agent技术选型的必修课。

二、第一代:LangChain——万物皆链

2.1 设计哲学

LangChain的核心理念可以概括为四个字:万物皆链。它将LLM应用的构建流程抽象为一条标准化流水线:

PromptTemplate → LLM → OutputParser
      ↓           ↓         ↓
  Chain[0]    Chain[1]  Chain[2]

核心抽象包括:Chain(多步串联执行)、AgentExecutor(循环调用LLM+工具直到完成)、Tool(外部能力接口)、Memory(多轮上下文)、Retriever(外部数据检索)。

2.2 典型实现

from langchain.agents import create_agent

def get_weather(city: str) -> str:
    """查询指定城市的天气"""
    weather_data = {"北京": "晴朗 25°C", "上海": "多云 28°C"}
    return weather_data.get(city, f"{city} 晴")

agent = create_agent(
    model="anthropic:claude-sonnet-4-6",
    tools=[get_weather],
    system_prompt="你是天气助手",
)
result = agent.invoke({"messages": [{"role": "user", "content": "北京天气?"}]})

底层执行流程:用户提问→模型推理(判断需调工具)→工具执行→生成回答。10行代码跑通一个Agent Demo——LangChain降低了Agent开发的门槛。

2.3 设计贡献

LangChain对Agent生态的最大贡献不是某个具体功能,而是三件事:标准化了LLM应用的构建模式(Prompt→LLM→Parse→Tool→Repeat);统一了工具接口(任意Python函数通过@tool装饰器变成Tool);普及了ReAct模式("思考-行动-观察"循环成为行业共识)。

2.4 局限性

局限具体表现实际影响
隐式状态AgentExecutor内部维护scratchpad,开发者看不到也控不了调试困难,无法回溯
线性执行Chain只能顺序执行,不支持条件分支和循环复杂工作流无法表达
无持久化状态存在内存中,进程崩了就丢了生产环境不可接受
无人介入没有Human-in-the-Loop机制敏感操作无法审批

这些局限决定了LangChain的范式天花板:它是原型验证阶段的利器,但当Agent进入生产环境时,需要新的架构。

三、第二代:LangGraph——显式状态 + 有向图

3.1 核心洞察

LangGraph的诞生源于一个根本性的洞察:Agent的执行流程不是链,而是图。一个真正的生产级Agent在工作时,可能需要根据条件走不同路径(条件分支),工具调用失败时回退重试(循环),在关键节点等待人工审批(中断/恢复),崩溃后从上次断点继续(持久化)。这些问题用链式结构都无法优雅表达。

3.2 设计哲学:状态是一等公民

LangGraph将状态提升为一等公民。其核心组件包括:State(TypedDict)—显式类型安全的状态对象;Node(函数)—图中的处理节点;Edge(条件/无条件)—节点间连接;Checkpointer—状态持久化(Postgres/Redis/SQLite);Interrupt—人工介入断点。

LangChain vs LangGraph 核心设计差异
维度LangChainLangGraph
状态隐藏在AgentExecutor内部显式TypedDict,每个节点都能读写
执行路径固定线性链条件分支、循环、并行
持久化内存临时状态Checkpointer持久化到DB
生命周期跑完就跑完中断、恢复、时间旅行

3.3 典型实现

from langgraph.graph import StateGraph, MessagesState, START, END

def mock_llm(state: MessagesState):
    return {"messages": [{"role": "ai", "content": "Hello from LangGraph!"}]}

graph = StateGraph(MessagesState)
graph.add_node("mock_llm", mock_llm)
graph.add_edge(START, "mock_llm")
graph.add_edge("mock_llm", END)
graph = graph.compile()

result = graph.invoke({"messages": [{"role": "user", "content": "hi!"}]})

这段代码看似比LangChain还长,但它的核心优势不在"写起来短",而在"执行起来可靠"。Checkpointer让状态持久化,Interrupt让人能在关键节点介入,Subgraph让复杂工作流可以模块化拆分。

3.4 生产验证

截至2026年,LangGraph已被LinkedIn(人才推荐Agent)、Uber(客服自动化)、Klarna(合规审批流程)、J.P.Morgan(金融服务Agent)等多家大厂在生产环境验证。v1.0已于2025年10月发布LTS版本。

四、第三代:DeepAgents——自治Agent编排

4.1 核心思路

LangGraph解决了"如何精确控制Agent"的问题,但引入了新的挑战:开发者需要手动设计图的每个节点和边。DeepAgents的核心思路是:把图的构建也交给AI。

三个范式对开发者介入的要求
LangChain: 开发者写链 → LLM在链中执行
LangGraph: 开发者画图 → LLM在图中执行
DeepAgents: 开发者定义目标 → LLM自己画图、自己执行

4.2 关键能力:子Agent委派

DeepAgents解决的核心问题是上下文膨胀。当一个Agent执行复杂任务时,上下文窗口会被工具调用结果、中间推理、历史消息逐渐填满。一旦接近模型上下文窗口限制(如200K tokens),LLM的推理质量急剧下降。

子Agent的解决方案:主Agent保持精简上下文,子任务分派给隔离的子Agent独立执行,完成后只返回摘要给主Agent。每个子Agent拥有独立的上下文窗口,这样主Agent的上下文始终保持精简。

4.3 典型实现

from deepagents import create_deep_agent

def get_weather(city: str) -> str:
    return f"{city} 今日晴朗,25°C"

def search_web(query: str) -> str:
    return f"关于'{query}'的搜索结果..."

agent = create_deep_agent(
    model="anthropic:claude-sonnet-4-6",
    tools=[get_weather, search_web],
    system_prompt="你能自主规划任务并使用工具。",
)

result = agent.invoke({
    "messages": [{"role": "user",
      "content": "查北京天气,然后搜周末户外活动"}]
})

与LangGraph的关系:create_deep_agent()返回的就是一个编译好的LangGraph图,因此可以无缝使用LangGraph的所有底层能力(流式输出、Checkpointer持久化、中断/恢复等)。

4.4 代价:Token开销

DeepAgents的自动规划、子Agent通信、上下文摘要都需要额外的LLM调用。有分析指出,相比手动编排,DeepAgents的token消耗可能高达20倍。这是"便利性vs成本"的经典trade-off。

维度LangGraph(手动)DeepAgents(自动)
开发成本高(需手动设计图)低(定义目标即可)
Token成本低(精确控制)高(约20x)
控制粒度极高中等
适用场景确定性工作流探索性/自治任务

五、三层架构全景对比

5.1 定位关系

DeepAgents (Harness层)
  预置工具、自动规划、子Agent、文件系统
  ┌─────────────────────────────────────┐
  │ LangGraph (Runtime层)               │
  │ 持久化、流式、人机协同、状态管理     │
  │ ┌─────────────────────────────────┐ │
  │ │ LangChain Core (Framework层)    │ │
  │ │ 模型集成、工具抽象、Prompt管理   │ │
  │ └─────────────────────────────────┘ │
  └─────────────────────────────────────┘

5.2 能力对照

能力LangChainLangGraphDeepAgents
定位开发框架运行时驾驭框架
核心范式有向图自治编排
状态管理隐式显式TypedDict自动虚拟文件系统
持久化Checkpointer继承LangGraph
人机协同interrupt继承+interrupt_on
子Agent手动子图自动委派
自动规划write_todos
Token效率低(约20x)
学习曲线
适合阶段原型验证生产部署自治Agent

六、选型逻辑

6.1 快速决策树

是否需要Agent自主规划和分解任务?
├── 是 → DeepAgents
│   └── 对Token成本敏感?→ LangGraph手动编排
└── 否 → 需要人工审批/持久化/断点续传?
    ├── 是 → LangGraph
    └── 否 → 只是"模型+工具"简单循环?
        ├── 是 → LangChain
        └── 否 → LangGraph

6.2 推荐演进路径

实际项目中,三者不是非此即彼的选择。推荐的演化路径是:先用LangChain快速验证想法,理解Agent的基本工作模式;当Agent需要进入生产环境时,下沉到LangGraph获取可靠性和精细控制;当任务足够复杂时,升级到DeepAgents使用预置的自治能力。

最常见的是分层使用:应用层用DeepAgents(高层编排),编排层用LangGraph(关键工作流),基础层用LangChain Core(模型集成和工具抽象)。

七、对照:另一种路线的启示

本文讨论的是LangChain系的技术路线。在主流路线之外,还有另一条值得关注的Agent架构路线——以Hermes Agent(Nous Research)为代表的"指挥位"路线。Hermes Agent不依赖LangChain/LangGraph的技术栈,而是通过自进化技能、MoA混合模型、MCP双端协议和8+Profile的多Agent调度来实现类似DeepAgents的子Agent委派能力。

两条路线的核心差异在于:LangChain系追求"框架标准化"——用一套统一的抽象覆盖尽可能多的场景;Hermes系追求"架构轻量化"——用自进化机制让系统在使用中自己变强。前者适合需要标准化交付的工程团队,后者适合需要高度定制的独立开发者和小团队。

选哪条路,取决于你的场景是在"重复造轮子"还是"不需要那个轮子"。

八、总结

Agent框架的演化路径折射出AI工程化从野蛮生长走向成熟的过程。三年三次范式跃迁,环环相扣:2023年LangChain解决了"人人都能造Agent"的入门问题;2024-25年LangGraph解决了"Agent可以可靠运行"的生产问题;2025-26年DeepAgents正在解决"Agent可以管理Agent"的规模化问题。

几个关键认知:三者不是竞争关系,是层叠协作关系;AgentExecutor已死,LangGraph当立;DeepAgents的20x Token代价真实存在;没有银弹,只有合适。

未来的趋势是:Agent基础设施的标准化(持久化、审批、可观测性成为标配),多Agent协作从手动编排走向自动编排,成本优化通过更智能的上下文管理和模型路由来改善。也许不久的将来,Agent会自己决定用什么工具、走什么流程、调用哪个子Agent——而框架本身,就像操作系统一样变得透明。

让AI帮你管好企业运营

BotOS 企业智能体系统 · 企微对话即操作 · 数据不出内网

获取方案

陕西博海网络科技 · 2001年成立 · 深耕本地信息化服务