尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

【LangGraph】LangGraph速成手册

【LangGraph】LangGraph速成手册
📅 发布时间:2026/6/19 23:22:16

在过去的一年多里,LLM 应用开发经历了一个显著的范式转移:我们正在从构建 Chains 转向构建 Agents。如果你是 LangChain 的老用户,你可能习惯了 LangChain Expression Language那种行云流水的链式调用。然而,当你试图构建一个能自我纠错、长期记忆、甚至能模拟多人协作的复杂 Agent 时,你会发现“链”这种结构变得捉襟见肘。

实不相瞒,之前写Agents,我基本不依赖外部框架,一般直接用Python代码手写。最近接手一个其他同事的项目,是用LangGraph写的,所以就俗速成了一下,把整理的文档分享出来吧。

一、 为什么我们需要 LangGraph?

要理解 LangGraph,首先要理解 DAG(有向无环图) 的局限性。

1.1 链的困境:开弓没有回头箭

传统的 LangChain 就像一条工厂流水线。输入(原料)进去,经过步骤 A、步骤 B、步骤 C,最后输出(产品)。

  • 特点:确定性强,路径单一。
  • 缺点:一旦开始,无法回头。如果步骤 C 发现步骤 A 的结果有误,整条链无法自动跳转回 A 重做。

1.2 图的革命:引入“循环”与“状态”

真实的智能往往包含循环(Loops)。

比如写代码:写代码 -> 运行 -> 报错 -> 看错误日志 -> 修改代码 -> 再运行。这是一个循环迭代的过程,直到成功为止。

LangGraph 的核心哲学在于:

  1. 循环能力(Cyclic):允许控制流回到之前的节点。
  2. 状态主导(Stateful):不再只是传递字符串,而是维护一个全局的“状态对象”(State),所有节点都在读取和修改这个共享状态。

打个比方:

  • LangChain 是接力赛跑,棒子(数据)传给下一个人,跑完就结束。
  • LangGraph 是一个项目会议室。白板上写着项目状态(State),不同的专家(Nodes)轮流走上白板更新内容,项目经理(Edges)根据白板上的最新进展,决定下一个叫谁上来,或者是不是该打回去重做。

二、 LangGraph 的重点概念

在使用 LangGraph 之前,我们需要了解几个基本概念:

1. State(状态):应用的记忆中枢

这是图的“白板”。通常是一个 PythonTypedDict或 Pydantic 模型。它定义了在这个应用生命周期内,我们需要追踪哪些数据(聊天记录、中间结果、工具输出等)。

2. Nodes(节点):执行者

节点本质上就是 Python 函数。

ounter(line func(state) -> new_state_update

它们接收当前状态,执行逻辑(调用 LLM、查数据库、运行代码),然后返回需要更新的数据。

3. Edges(边):控制流

边决定了“下一步去哪”。

  • Normal Edge:由于 A,所以 B。
  • Conditional Edge:这是 Agent 的“大脑”。根据当前状态(例如 LLM 是否决定调用工具),动态决定跳到哪个节点。

三、 实战:构建一个会反思的 Agent

在这个 Demo 中,我们不仅让 AI 调用工具,还赋予它循环执行的能力。如果 LLM 觉得需要工具,它会进入工具节点,执行完后强制循环回到 LLM 节点,让 LLM 根据工具结果生成最终答案。

3.1 环境准备

ounter(line pip install langgraph langchain langchain-openai

3.2 代码实现

ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line import operator from typing import Annotated, TypedDict, Union, Literal from langchain_openai import ChatOpenAI from langchain_core.tools import tool from langchain_core.messages import BaseMessage, HumanMessage, AIMessage from langgraph.graph import StateGraph, START, END from langgraph.prebuilt import ToolNode # --- 1. 定义状态 (The Memory) --- # 使用 add_messages 策略:新的消息会 append 到列表末尾,而不是覆盖 from langgraph.graph.message import add_messages class AgentState(TypedDict): # Annotated 允许我们定义状态更新的策略 messages: Annotated[list, add_messages] # --- 2. 定义工具 (The Tools) --- @tool def get_weather(city: str): """获取指定城市的实时天气""" # 模拟 API 返回 if "上海" in city: return "上海今天多云,22摄氏度。" return "未知地区天气数据。" tools = [get_weather] # --- 3. 初始化模型 (The Brain) --- # 绑定工具,让 LLM 知道它有哪些能力 llm = ChatOpenAI(model="gpt-4o", temperature=0) llm_with_tools = llm.bind_tools(tools) # --- 4. 定义节点逻辑 (The Workers) --- def agent_node(state: AgentState): """ Agent 节点:负责思考和生成回复,或者发起工具调用请求 """ messages = state["messages"] response = llm_with_tools.invoke(messages) # 返回的内容会自动 merge 到 state["messages"] 中 return {"messages": [response]} # 利用 LangGraph 预构建的 ToolNode,它会自动执行 tool_calls tool_node = ToolNode(tools) # --- 5. 定义条件边逻辑 (The Router) --- def should_continue(state: AgentState) -> Literal["tools", END]: """ 决策逻辑:检查上一条消息是否包含工具调用 """ last_message = state["messages"][-1] # 如果 LLM 决定调用工具 if last_message.tool_calls: return "tools" # 否则,任务结束 return END # --- 6. 构建图 (The Graph Assembly) --- workflow = StateGraph(AgentState) # 添加节点 workflow.add_node("agent", agent_node) workflow.add_node("tools", tool_node) # 设置入口 workflow.add_edge(START, "agent") # 添加条件边:从 agent 出来后,走 should_continue 逻辑 workflow.add_conditional_edges( "agent", should_continue, ) # 关键循环:工具执行完,必须回到 agent,让 LLM 看到结果并生成最终回复 workflow.add_edge("tools", "agent") # 编译应用 app = workflow.compile() # --- 7. 运行 (Execution) --- print("=== 开始运行 Agent ===") inputs = {"messages": [HumanMessage(content="上海今天天气怎么样?")]} # stream 模式让我们能看到每一步的思考过程 for chunk in app.stream(inputs): for node_name, node_state in chunk.items(): print(f"--- 节点: {node_name} 完成执行 ---") print(f"最新消息: {node_state['messages'][-1].content}") print("-------------------------------")

四、 LangGraph 的重要特性

如果仅仅是上面的循环,普通的 Pythonwhile循环也能写。LangGraph 真正的威力在于以下两点:

1. Persistence(持久化与记忆)

LangGraph 内置了 Checkpointer 机制。它可以将图的每一步状态自动保存到数据库(Redis, Postgres 等)。

这意味着什么?

  • 长程对话:即使用户隔了三天再来,你只需提供thread_id,Agent 就能加载之前的状态(State),无缝继续。
  • 时光回溯:你可以获取 Agent 以前的某个状态,修改它,然后从那里重新分叉运行。这对于调试和“反事实推理”极其有用。

2. Human-in-the-loop

在企业级应用中,全自动的 Agent 是危险的(比如自动退款、群发邮件)。LangGraph 允许你在特定的节点前设置interrupt_before。

工作流如下:

  1. Agent 思考并决定:“我要给用户退款 1000 元”。
  2. LangGraph 检测到下一步是敏感操作,暂停运行,保存当前状态。
  3. 系统通知管理员。
  4. 管理员在后台查看:“Agent 要退款 1000 元,是否批准?”
  5. 管理员点击“批准”或“修改为 500 元”。
  6. LangGraph 恢复运行,Agent 继续执行。
ounter(lineounter(lineounter(lineounter(lineounter(lineounter(line # 简单的 Human-in-the-loop 示例 memory = MemorySaver() app = workflow.compile( checkpointer=memory, interrupt_before=["tools"] # 在执行工具前暂停 )

最后,如果你想真正掌握 LangGraph,建议从以下路径入手:

  1. 跑通上面的 Demo。
  2. 尝试添加一个checkpointer实现对话记忆。
  3. 去官网查看 Multi-Agent 的案例,学习如何让一个“写手 Agent”和一个“审核 Agent”互相配合工作。

​最后

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

我整理出这套 AI 大模型突围资料包:

  • ✅AI大模型学习路线图
  • ✅Agent行业报告
  • ✅100集大模型视频教程
  • ✅大模型书籍PDF
  • ✅DeepSeek教程
  • ✅AI产品经理入门资料

完整的大模型学习和面试资料已经上传带到CSDN的官方了,有需要的朋友可以扫描下方二维码免费领取【保证100%免费】👇👇
​​

为什么说现在普通人就业/升职加薪的首选是AI大模型?

人工智能技术的爆发式增长,正以不可逆转之势重塑就业市场版图。从DeepSeek等国产大模型引发的科技圈热议,到全国两会关于AI产业发展的政策聚焦,再到招聘会上排起的长队,AI的热度已从技术领域渗透到就业市场的每一个角落。


智联招聘的最新数据给出了最直观的印证:2025年2月,AI领域求职人数同比增幅突破200%,远超其他行业平均水平;整个人工智能行业的求职增速达到33.4%,位居各行业榜首,其中人工智能工程师岗位的求职热度更是飙升69.6%。

AI产业的快速扩张,也让人才供需矛盾愈发突出。麦肯锡报告明确预测,到2030年中国AI专业人才需求将达600万人,人才缺口可能高达400万人,这一缺口不仅存在于核心技术领域,更蔓延至产业应用的各个环节。

​​

资料包有什么?

①从入门到精通的全套视频教程⑤⑥

包含提示词工程、RAG、Agent等技术点

② AI大模型学习路线图(还有视频解说)

全过程AI大模型学习路线

③学习电子书籍和技术文档

市面上的大模型书籍确实太多了,这些是我精选出来的

④各大厂大模型面试题目详解

⑤ 这些资料真的有用吗?

这份资料由我和鲁为民博士共同整理,鲁为民博士先后获得了北京清华大学学士和美国加州理工学院博士学位,在包括IEEE Transactions等学术期刊和诸多国际会议上发表了超过50篇学术论文、取得了多项美国和中国发明专利,同时还斩获了吴文俊人工智能科学技术奖。目前我正在和鲁博士共同进行人工智能的研究。

所有的视频教程由智泊AI老师录制,且资料与智泊AI共享,相互补充。这份学习大礼包应该算是现在最全面的大模型学习资料了。

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


智泊AI始终秉持着“让每个人平等享受到优质教育资源”的育人理念‌,通过动态追踪大模型开发、数据标注伦理等前沿技术趋势‌,构建起"前沿课程+智能实训+精准就业"的高效培养体系。

课堂上不光教理论,还带着学员做了十多个真实项目。学员要亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事‌!

​​​​

如果说你是以下人群中的其中一类,都可以来智泊AI学习人工智能,找到高薪工作,一次小小的“投资”换来的是终身受益!

应届毕业生‌:无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。

零基础转型‌:非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界‌。

业务赋能 ‌突破瓶颈:传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型‌。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓**

​

相关新闻

  • AI产品经理也该懂的技术:TensorRT如何影响用户体验
  • 从研究到落地:如何用TensorRT打通大模型最后一公里?
  • C++中的list容器详解

最新新闻

  • 成本不到 5000 欧元!Matthias Plappert 公开在办公桌旁搭建机器人研究装置的研究过程
  • 三线制SPI驱动GC9306:从模拟到硬件DMA的性能跃迁
  • 2026成都空调维修实测:不制冷、漏水、异响故障诊断+平台对比 - 一步到家
  • 深入解析ColdFire调试模块:实时追踪与硬件断点实战指南
  • LangChain.js 2025终极实战指南:零代码构建企业级AI智能代理系统
  • 2026年:网站谷歌排名好却在AI搜索不见?背后原因大揭秘

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号