LangChain大模型学习指南:小白也能轻松掌握,收藏必备!
2026/7/28 15:56:05 网站建设 项目流程

本文从LangChain生态的顶层抽象出发,详细介绍了LangChain的核心概念、API以及与LangGraph的对比。通过实例演示如何使用create_agent()一行代码启动Agent,并探讨了中间件、结构化输出等高级功能。文章还提供了判断何时应从LangChain转向LangGraph的实用指南,适合想要快速入门大模型开发的程序员和小白学习。

一、概念:LangChain 在生态中的定位


1. 四层生态,自上而下

┌─────────────────────────────────────┐│ LangChain ← 高层抽象(本篇) │ create_agent() 一行起 Agent├─────────────────────────────────────┤│ LangGraph ← 图编排(下一篇) │ 状态机 + 节点 + 边├─────────────────────────────────────┤│ Deep Agents ← 生产级封装(第 3 篇) │ Harness + SKILL.md├─────────────────────────────────────┤│ LangSmith ← 可观测性(第 4 篇) │ Trace / Eval / Deploy└─────────────────────────────────────┘

越往上越简单,越往下越灵活。LangChain 在最顶层,目标是让开发者用最少的代码起一个 Agent。

2. 核心定位

LangChain 包本身不是"整个生态",而是生态中的最高层抽象——位于 LangGraph 之上,把图编排的复杂性封装成一个函数调用。

对比LangChainLangGraph
核心 APIcreate_agent()StateGraph+ 节点 + 边
心智模型“配一个 Agent”“画一张状态机图”
代码量几行几十行起步
灵活性受限于预设模式完全自由
适用场景标准 ReAct Agent复杂分支/循环/并行

3. 核心 API:create_agent()

create_agent()是 LangChain 的灵魂——一个函数,编译出一个完整的 Agent:

from langchain.agents import create_agentagent = create_agent( model="deepseek:deepseek-chat", tools=[...], middleware=[...],)

一行代码,背后是一个完整的 ReAct 循环图。

一句话总结:LangChain 是 LangGraph 之上的高层语法糖——用create_agent()一行代码替代手动编排状态机。

二、价值:为什么需要这一层?


1. 相比直接用 LangGraph:少写 80% 的样板代码

用 LangGraph 手动搭一个 ReAct Agent,你需要:

# LangGraph 方式:手动定义from langgraph.graph import StateGraph, ENDgraph = StateGraph(AgentState)graph.add_node("model", call_model)graph.add_node("tools", execute_tools)graph.add_edge("model", "tools") # 模型调用工具后 → 执行工具graph.add_conditional_edges("tools", should_continue, { True: "model", # 继续循环 False: END, # 结束})graph.set_entry_point("model")agent = graph.compile()

同样的 Agent,用 LangChain:

from langchain.agents import create_agentagent = create_agent( model="deepseek:deepseek-chat", tools=[...],)# 完了。状态机、边、节点全帮你生成。

省掉了:定义状态类、添加节点、添加边、条件边、入口点、编译。当你只需要标准 ReAct 模式时,这些全是样板代码。

2. 相比直接调 SDK:统一接口 + 中间件生态

裸调 OpenAI / DeepSeek SDK:

# 裸 SDK 方式import openaimessages = [{"role": "user", "content": "..."}]while True: response = openai.chat.completions.create( model="deepseek-chat", messages=messages, tools=tool_schemas, ) msg = response.choices[0].message if msg.tool_calls: for tc in msg.tool_calls: result = execute_tool(tc) messages.append({"role": "tool", ...}) else: break

问题:

  • 循环逻辑自己写——而且容易写错(并发 tool_calls、空响应、截断……)
  • 没有中间件——想加 HITL?加 Guardrails?自己实现
  • 没有持久化——对话状态自己管理
  • 没有可观测性——想看 trace?自己埋点

LangChain 给你:

  • 统一的 Agent 接口(换模型只改一行)
  • 中间件生态(HITL / Guardrails / 结构化输出 开箱即用)
  • 自动对接 LangSmith(trace 免费拿)

3. 什么场景选 LangChain?

场景选 LangChain选 LangGraph
标准 ReAct Agent杀鸡用牛刀
需要加工具 + 中间件✅ 几行搞定手动在图中插钩子
复杂分支(if-else 多层嵌套)
并行执行多个子任务
自定义循环逻辑
多 Agent 协作简单协作可复杂编排 ✅

核心判断:你的 Agent 是"一个主循环 + 工具"还是"多分支状态机"?前者选 LangChain,后者选 LangGraph。

核心价值:LangChain 让 80% 的标准 Agent 场景用 20% 的代码搞定,把精力从"搭框架"转移到"写业务逻辑"。


三、用法:从 30 秒起 Agent 到知道何时跳船


用法 1:30 秒起一个 Agent

最简形式——不需要工具,就是一个带记忆的对话 Agent:

from langchain.agents import create_agentagent = create_agent( model="deepseek:deepseek-chat",)result = agent.invoke({"messages": [{"role": "user", "content": "你好,介绍一下自己"}]})print(result["messages"][-1].content)

没错,不需要工具也能用。Agent 本质是"模型 + 循环",工具是可选的。

用法 2:加工具

给 Agent 赋予行动能力:

from langchain.agents import create_agentfrom langchain_core.tools import tool@tooldef search_weather(city: str) -> str: """查询指定城市的天气""" # 实际实现调用天气 API return f"{city}:晴,25°C"@tooldef calculate(expression: str) -> str: """计算数学表达式""" return str(eval(expression)) # 生产环境请用安全的方式agent = create_agent( model="deepseek:deepseek-chat", tools=[search_weather, calculate],)result = agent.invoke({ "messages": [{"role": "user", "content": "北京天气怎么样?如果气温低于 20 度,帮我算 25-18"}]})

@tool 装饰器自动从函数签名和 docstring 生成工具 schema,Agent 自动决定何时调用。

用法 3:加中间件(HITL + Guardrails)

中间件是 LangChain 的杀手级特性——不用改 Agent 逻辑,插一行就行:

from langchain.agents import create_agentfrom langchain.agents.middleware import HumanInTheLoopMiddleware, PIIMiddlewarefrom langchain_core.tools import tool@tooldef delete_file(path: str) -> str: """删除指定文件""" import os os.remove(path) return f"已删除 {path}"agent = create_agent( model="deepseek:deepseek-chat", tools=[delete_file], middleware=[ HumanInTheLoopMiddleware(tools=["delete_file"]), # 删除前人工确认 PIIMiddleware(), # 自动脱敏 PII ],)# 执行时,delete_file 会暂停等人工审批result = agent.invoke({ "messages": [{"role": "user", "content": "帮我把 /tmp/old_log.txt 删了"}]})

执行流程:

  1. 模型决定调用delete_file("/tmp/old_log.txt")

  2. HumanInTheLoopMiddleware 拦截,暂停执行

  3. 人工确认后,继续执行

  4. PIIMiddleware 确保输入输出中没有敏感信息

用法 4:加结构化输出

让 Agent 最终返回一个结构化对象,而不是自由文本:

from langchain.agents import create_agentfrom langchain_core.tools import toolfrom pydantic import BaseModel, Fieldclass TripPlan(BaseModel): """旅行计划""" destination: str = Field(description="目的地") days: int = Field(description="天数") budget: float = Field(description="预算(元)") activities: list[str] = Field(description="推荐活动")@tooldef search_flights(destination: str) -> str: """搜索航班信息""" return f"飞往 {destination} 的航班:CZ1234,1200元"agent = create_agent( model="deepseek:deepseek-chat", tools=[search_flights], output_schema=TripPlan, # 结构化输出)result = agent.invoke({ "messages": [{"role": "user", "content": "帮我规划一个 3 天的成都之旅,预算 5000"}]})# result["structured_output"] 是一个 TripPlan 实例plan: TripPlan = result["structured_output"]print(f"目的地:{plan.destination},预算:{plan.budget}元")

Agent 内部照常调用工具、自由思考,最终输出强制按TripPlan结构化。

用法 5:何时该跳到 LangGraph

当你发现自己在create_agent()里"绕弯子"时,就是该跳的时候:

# 这些需求说明你该用 LangGraph 了:# ❌ 需要条件分支:根据用户意图走不同处理流程# if intent == "refund": go to refund flow# elif intent == "order": go to order flow# ❌ 需要并行:同时查三个数据源# parallel: [search_db, search_api, search_cache] → merge# ❌ 需要嵌套循环:审核不通过回到修改,修改完重新提交# while not approved: edit → review# ❌ 需要多 Agent 协作:reviewer 驳回后回到 writer# writer → reviewer → (rejected) → writer → reviewer → (approved) → done

判断标准:如果你的 Agent 执行路径不是"线性循环"而是"网状图",直接用 LangGraph。


四、原理:create_agent 内部发生了什么?


1. create_agent 编译成 LangGraph 图

create_agent()不是魔法——它内部帮你编译了一张 LangGraph 图:

create_agent(model, tools, middleware) ↓ 编译┌──────────────────────────────────┐│ StateGraph(AgentState) ││ ││ ┌─────────┐ ┌─────────┐ ││ │ model │───→│ tools │ ││ └────┬────┘ └────┬────┘ ││ │ │ ││ │ (no tool) │ (has) ││ ↓ ↓ ││ END back to model │└──────────────────────────────────┘

这就是经典的 ReAct 循环:

  1. model 节点:调用 LLM,决定是直接回复还是调用工具

  2. tools 节点:执行工具调用

  3. 条件边:有工具调用 → 回到 model;没有 → 结束

你用 LangChain 写的 5 行代码,等价于 LangGraph 的 30 行。

2. 中间件如何映射到图的钩子

中间件不是 LangChain 的"额外层"——它们被编译进图的节点:

middleware=[PIIMiddleware(), HITLMiddleware()]编译后:model 节点(增强版): before_model: PII 脱敏 → HITL 检查 [调用 LLM] after_model: HITL 检查 → PII 还原tools 节点(增强版): wrap_tool_call: HITL 审批 [执行工具] wrap_tool_result: PII 还原

中间件本质是图的 AOP(面向切面编程)——在不改变图结构的前提下,在节点执行前后插入逻辑。

3. LangChain 与 LangGraph 的"语法糖"关系

LangChain LangGraph───────── ─────────create_agent() = StateGraph + ReAct 模式tools 参数 = tools 节点middleware 参数 = 图节点的 before/after 钩子output_schema 参数 = 最终节点的结构化输出包装agent.invoke() = graph.invoke()

LangChain 是 LangGraph 的上层语法糖——把通用模式封装成声明式 API,让你不用碰图的原语。

这层糖的代价是:你只能在预设模式内操作。想突破预设模式,就去用 LangGraph。

什么时候不该用 LangChain?

场景为什么不该该用什么
多分支决策树create_agent()只有一条主循环路径LangGraph 条件边
并行子任务Agent 循环是串行的LangGraph 并行节点
嵌套审核循环"驳回→修改→再审"不是线性路径LangGraph 循环边
自定义状态机状态转移逻辑超出 ReAct 模式LangGraph 原生状态机
精确控制每一步你需要决定"先调 A 还是先调 B"LangGraph 显式编排

一句话:当你觉得在"对抗"框架而不是"使用"框架时,就该降一层。


小结

视角一句话
概念LangChain 是 LangGraph 之上的高层抽象,核心 API 是create_agent()——一行代码起一个 Agent
价值省掉 80% 样板代码;统一接口换模型只改一行;中间件生态开箱即用
用法30 秒起 Agent → 加工具 → 加中间件 → 加结构化输出 → 超出 ReAct 就跳 LangGraph
原理create_agent()编译成 ReAct 循环图;中间件映射到图的 AOP 钩子;是 LangGraph 的语法糖

记住一件事:LangChain 的定位是"标准 Agent 的快捷方式"——能用create_agent()搞定的就别手写状态机,搞不定的果断降层到 LangGraph。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线科技企业深耕十二载,见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事,早已在效率与薪资上形成代际优势,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我们整理出这套AI 大模型突围资料包

  • ✅ 从零到一的 AI 学习路径图
  • ✅ 大模型调优实战手册(附医疗/金融等大厂真实案例)
  • ✅ 百度/阿里专家闭门录播课
  • ✅ 大模型当下最新行业报告
  • ✅ 真实大厂面试真题
  • ✅ 2026 最新岗位需求图谱

所有资料 ⚡️ ,朋友们如果有需要《AI大模型入门+进阶学习资源包》下方扫码获取~

① 全套AI大模型应用开发视频教程

(包含提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点)

② 大模型系统化学习路线

作为学习AI大模型技术的新手,方向至关重要。 正确的学习路线可以为你节省时间,少走弯路;方向不对,努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划,带你从零基础入门到精通!

③ 大模型学习书籍&文档

学习AI大模型离不开书籍文档,我精选了一系列大模型技术的书籍和学习文档(电子版),它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。

④ AI大模型最新行业报告

2025最新行业报告,针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

⑤ 大模型项目实战&配套源码

学以致用,在项目实战中检验和巩固你所学到的知识,同时为你找工作就业和职业发展打下坚实的基础。

⑥ 大模型大厂面试真题

面试不仅是技术的较量,更需要充分的准备。在你已经掌握了大模型技术之后,就需要开始准备面试,我精心整理了一份大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余

以上资料如何领取?

为什么大家都在学大模型?

最近科技巨头英特尔宣布裁员2万人,传统岗位不断缩减,但AI相关技术岗疯狂扩招,有3-5年经验,大厂薪资就能给到50K*20薪!

不出1年,“有AI项目经验”将成为投递简历的门槛。

风口之下,与其像“温水煮青蛙”一样坐等被行业淘汰,不如先人一步,掌握AI大模型原理+应用技术+项目实操经验,“顺风”翻盘!

这些资料真的有用吗?

这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。

资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。

以上全套大模型资料如何领取?

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询