Agent的意思是代理。
AI Agent框架的诞生,本质上是LLM从"聪明聊天机器人"进化到"可靠自主代理"的过程。
在其发展过程中,有一个框架是无论如何也绕不开的,那就是 LangChain。
一、LangChain的发展历史
1.1 出道即巅峰
2022年10月,有人在Github开源了一个只有800行代码的python包,名叫 langchain。
其核心理念,就是把LLM应用拆成可组合的"Chain"(链)------ Prompt + LLM + Memory + Retriever + Tools。
这些在当前看来习以为常的概念,在当时是开拓性的标准化抽象。
一夜爆火,GitHub stars从几百冲到上万。
当时,它可谓是LLM界的React,目标也相似,快速搭建AI应用。
1.2 发展与问题暴露
2023年,LangChain主要添加了添加Agents(ReAct)、RAG、向量数据库集成 等能力。并且推出了LCEL链式写法(如 prompt | llm | parser)。
但同时,一个可能摧毁其根基的问题被暴露出来:
越来越多的人发现,LangChain的设计理念并不符合Agent发展的趋势。
因为真实的Agent开发过程中,人们发现,AI-Agent必须需要以下特性:
- 循环(思考→行动→观察→再思考)
- 动态分支
- 长期状态
- 用户随时干预
但LCEL是DAG(有向无环图),天生不支持循环和复杂控制流。
很多开发者开始反馈自己的痛点:LangChain只适合做小型项目,在大型企业级项目中有点捉襟见肘了。
1.3 LangGraph 诞生
"2023年夏天,我们收到大量负面反馈......原LangChain无法满足生产级Agent的需求。我们需要一种能处理循环、持久化、人机协作的底层框架。"
LangChain的作者Harrison Chase亲口如此说。
随机,LangGraph正式发布。
核心创新:把Agent执行过程建模成有向图(支持环)。
其概念和设计理念如下:
- Node:一个函数(LLM调用、工具、判断)。
- Edge:跳转规则(普通边 + 条件边)。
- State:共享状态(情绪、记忆、亲密度等),支持Reducer自动合并。
- Checkpoint:自动持久化(内存/SQLite/Postgres),支持崩溃恢复 + 时间旅行调试。
- Interrupt:原生Human-in-the-loop(用户中途纠正、审批、回滚)。
LangGraph解决了LangChain"线性链"无法处理的本质矛盾------Agent天生是循环 + 状态机,而非线性流水线。
1.4 成熟与生态分层
随着 LangGraph 被需多大公司用于生产,这也标志着它的逐渐稳定与成熟。
LangChain逐步把新Agent API底层切换到LangGraph。
2025年10月,LangGraph 1.0 + LangChain 1.0 同时发布(无breaking changes,稳定性承诺)。
其分层架构如下:
-
LangChain:高层、快速原型(create_agent() 一键出代理)。
-
LangGraph:底层、生产引擎(自定义图、多代理、持久化)。
2026现状:LangChain生态已成为事实标准。
- 每月下载9000万+,GitHub 10万+ stars。
- 其他框架(CrewAI、AutoGen/Microsoft Agent Framework)仍有市场,但生产级复杂Agent基本都用LangGraph。
二、目前的LangChain能使用LangGraph的全部能力吗?
结论: 99% 的情况下可以!甚至可以说是"开箱即用全部主流生产能力"。
官方曾总结如下:
"LangChain 运行在 LangGraph 的持久化运行时之上------这为代理提供了内置的持久化、回溯、检查点机制,以及人机在环(Human-in-the-loop)支持。"
"create_agent 是基于 LangGraph 构建的,你会自动获得完整的 LangGraph 运行时能力。"
所以,在目前除非有极为极端和特殊的情况,否则你并不需要去摒弃LangChain去单独使用LangGraph。
但结合使用是必须的。
三、极速上手
让我们结合官方的demo,再配合我们的高性价比deepseek模型,跑一个最简单的demo 出来。
首先,安装必要依赖:
bash
pip install langchain langchain_openai
这里分别安装了 langchain本体,以及对openai标准的大模型支持。(前面讲过,deepseek是符合openai标准的)
撰写如下代码:
python
import os
from langchain.agents import create_agent
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
# 加载环境变量
load_dotenv()
def get_weather(city: str) -> str:
"""获取给定城市的天气情况"""
return f"{city}未来10天很热,温度大概45°C"
llm = ChatOpenAI(
model="deepseek-chat",
api_key=os.getenv("DEEP_SEEK_API_KEY"),
base_url=os.getenv("DEEP_SEEK_API_URL"),
temperature=0.7
)
agent = create_agent(
model=llm,
tools=[get_weather],
system_prompt="你是一个经验丰富的天气预测员",
)
# Run the agent
response = agent.invoke(
{"messages": [{"role": "user", "content": "杭州的天气怎么样?"}]}
)
print(response["messages"][-1].content)
以上代码也已经上传到本专栏专属开源demo:github.com/zhangshichu...,可以直接去执行:
bash
python .\lesson_14\01_langchain_start.py
可以查看效果:
(注:以上天气纯属为了表达function calling效果的杜撰,请勿当真)
可以看到,这个demo我们只用了非常少的代码,就实现了 reAct 思维范式,完成了 Function Calling,并通过和LLM的对话,输出了最后的结果。
比手写代码不知道方便到哪里去了。
但是要熟练使用,仍然有很多细节和概念需要上手了解。
以上图为例,我们先介绍几个最核心的点:
3.1 默认是 reAct Agent范式
python
from langchain.agents import create_agent
你引入 create_agent 方法后并没有指定AI的思维范式,但实际体验中他会一边思考一边调用工具,事实上,它默认采用了 reAct 范式,并且不可修改。
如果你有其他的范式需求,如 plan-and-execute 这样的范式,那可能得通过指定 plan_prompt 属性来调整Agent的默认行为。
3.2 不用写Tools Schema
结合第五课《春哥的Agent通关秘籍05:工具调用 Function Calling【知识与思路篇】》的内容,可以知道,在原生的OpenAI 框架下,注册Tools是需要传入一个 tools schema的,至少需要表达以下几个含义:
- 我有哪些工具,它们叫什么
- 它们的作用分别是什么
- 它们接受哪些入参,分别是什么含义
但是,在上面demo 里,我们完全没有写这个JSON Schema。

其实真实情况是,LangChain 通过解析上面这个函数,利用python的反射能力,解析出了以上我们需要的Schema。
因此,在使用 LangChain 定义Tool时,函数的说明注释不要省略,这是为反射提供说明的必要内容。
除此之外,LangChain 也提供了 @tool 注解,可以更定制化的优化Tool 来满足复杂情况。
四、查看底层的 LangGraph 图形
前面说过,LangChain 最新版本的底层时 LangGraph。
而LangGraph的基本概念是一个有向图。
因此,官方和民间提供了各种各样的工具,可以让你查看图和节点。
其中最轻量简单的莫过于 grandalf,但功能也相对较弱。
bash
pip install grandalf
然后执行以下代码:
python
agent.get_graph().print_ascii()
你就能看到:

没错,这正是底层LangGraph的有向图的节点及连线。
如果想要看到更多细节,可能就得借助社区一些更加强大和重的工具了。
五、小结
本章,我们初步了解的 LangChain 的历史地位,发展历程,以及它和 LangGraph 之间的关系,并且结合一个 demo 初步窥见了它的便捷写法。
接下来,我们还需要更加深入地了解它的用法。
敬请期待!
