本文介绍了LangGraph V1.0及其与LangChain的关系重点讲解了LangGraph的核心能力包括持久执行、人在环路、综合记忆和可视化调试等。通过一个计算器Agent的实例详细阐述了如何使用LangGraph API构建复杂Agent应用。LangGraph以其图结构清晰地描述和控制Agent执行流程特别适合构建复杂、多步骤、可恢复的Agent系统是开发者的必备工具。文中所有示例代码https://github.com/wzycoding/langchain-study一、什么是LangGraph1.1 LangGraph 和 LangChain 的关系LangGraph 是一个基于图结构的 Agent 编排框架专注于描述和控制 Agent 的执行流程。它可以独立使用也可以与 LangChain 结合用于更方便地调用模型、工具和记忆组件。通过LangGraph可以轻松构建出可靠的Agent应用。LangGraph并不依赖于LangChain但是配合LangChain使用可以发挥更好的效果。1.2 LangGraph核心能力LangGraph具有以下核心能力Durable execution持久执行能够在执行失败后恢复继续执行而无需从头开始类似文件传输的断点续传机制非常适合长时间运行、复杂的多步骤任务。Human-in-the-loop人在环路在任务执行过程中允许人工介入用于确认是否执行关键操作。Comprehensive Memory提供统一的状态与记忆管理能力通过 State 和 Checkpoint 机制支持短期上下文保留并可与 LangChain 的 Memory 或外部存储系统结合实现长期记忆能力。短期记忆可以让AI记住最近几轮对话的信息长期记忆可以让AI了解历史对话聊天的总结信息。Debugging with LangSmith可视化调试可以无缝集成LangSmith进行可视化调试和监控Production-ready Deployment在配合持久化、错误恢复和监控体系的前提下LangGraph 非常适合用于生产级 Agent 应用的构建。二、快速入门LangGraph2.1 LangGraph安装创建项目并安装 LangGraph。pip install -U langgraph在使用LangGraph时通常要调用LLM模型可以直接调用LLM也可以使用LangChain一般使用LangChain会更加便捷安装LangChain的命令如下注意这里使用LangChain的最低Python版本为3.10。pip install -U langchain安装dotenv来进行配置的读取。pip install python-dotenv2.2 LangGraph 提供的两种构建方式在LangGraph中提供了两种API来构建Agent应用LangGraph API构建一个由边和节点组成的、具有复杂条件分支结构的Agent应用Functional API通过单一函数进行构建用于构建简单的Agent应用。本专栏将会以LangGraph API为例来介绍如何使用LangGraph API构建复杂Agent应用。2.3 构建Agent基本步骤LangGraph底层采用图结构来构建Agent应用而构建图主要是构建图的节点和边使用LangGraph构建Agent主要包括以下步骤三、构建第一个LangGraph Agent下面我们要构建一个计算器Agent该Agent的图结构如下从START节点出发进入到LLM节点执行完LLM节点之后判断是否需要工具调用如果需要工具调用则进入工具节点工具调用完成后再回到LLM节点直到不需要工具调用才走到END节点。下面我们来一起动手实现这个Agent。3.1 前置准备工作首先在.env文件中配置 OpenAI模型的密钥。OPENAI_API_KEYsk-***************************OPENAI_API_BASEhttps://****/v1在程序中对配置进行读取importdotenv dotenv.load_dotenv()定义LLM 对象这里使用gpt-4o-mini模型llminit_chat_model(gpt-4o-mini,temperature0)定义计算加减乘除四个工具tool def add_two_numbers(a: int, b: int)-int:两个数相加a和b.Args: a: 第一个整数 b: 第二个整数returna b tool def sub_two_numbers(a: int, b: int)-int:两个数相减a和b.Args: a: 第一个整数 b: 第二个整数returna - b tool def multi_two_numbers(a: int, b: int)-int:两个数相乘a和b.Args: a: 第一个整数 b: 第二个整数returna * b tool def divide_two_numbers(a: int, b: int)-int:两个数相除a和b.Args: a: 第一个整数 b: 第二个整数returna / b之后将工具绑定到LLM对象上# 2.将工具绑定到LLMtools[add_two_numbers, sub_two_numbers, multi_two_numbers, divide_two_numbers]llm_with_toolllm.bind_tools(tools)# 3.生成工具名称-工具对象的映射tools_by_name{tool.name: toolfortoolintools}3.2 定义图状态数据在状态数据中因为其他节点间没有其他需要共享的中间数据所以只定义了消息列表。此外在消息列表中还指定了operator.add作为归纳函数如果不指定归纳函数当节点返回消息列表时默认就会对消息列表数据进行覆盖而使用operator.add则会将节点返回的消息添加到消息列表中。# 4.定义Stateclass MessagesState(TypedDict):# 图运行的消息列表messages: Annotated[list[AnyMessage], operator.add]3.3 定义LLM节点在LangGraph中节点本质上就是一个函数入参传递图状态数据在节点内部可以对图状态数据进行读取返回需要更新的图状态数据。在LLM节点中调用LLM并传递消息列表最终将AI生成的AIMessage返回LangGraph会将消息添加到消息列表中。# 5.定义llm节点def llm_node(state: MessagesState):调用LLM节点 ai_messagellm_with_tool.invoke(state[messages])return{messages:[ai_message]}3.4 定义工具节点在工具节点内部读取消息列表的的最后一条消息因为调用完LLM节点之后才会调用工具节点所以最后一条消息一定是AIMessage。由于可能存在多个工具调用需要循环AIMessage的tool_calls属性如果存在工具调用则根据工具名称获取工具之后调用工具并传入调用参数最终将工具执行的结果构造成工具消息。最后将工具消息列表返回。# 6.定义工具节点def tool_node(state: MessagesState):工具调用 tool_messages[]fortool_callinstate[messages][-1].tool_calls: tooltools_by_name[tool_call[name]]tool_outputtool.invoke(tool_call[args])tool_messages.append(ToolMessage(contenttool_output,tool_call_idtool_call[id],nametool_call[name],))return{messages:tool_messages}3.5 定义条件边路由函数由于从 LLM 节点可能存在两条执行路径第一种是需要调用工具则会走到工具节点第二种是LLM无需调用工具则直接走到END结束节点。因此要编写一个如下的条件边路由函数在函数内部需要判断最后一条消息也就是AIMessage的tool_calls属性是否存在如果存在则返回tool表示走到工具节点否则直接走到结束节点图的执行流程结束。# 7.条件边路由函数def llm_tool_route(state: MessagesState)-Literal[tool, END]:工具调用和LLM调用的边路由ifstate[messages][-1].tool_calls:returntoolreturnEND3.6 创建图、节点、边首先我们创建一个图并向图中添加LLM节点和工具节点。接下来我们创建边来连接这些节点将图的入口设置为LLM节点并为这个LLM节点添加条件边。这些条件边需要指定一个路由函数以决定下一步执行哪个节点。最后我们添加从工具节点回到LLM节点的边这保证了工具节点执行完成后会再次执行LLM节点。graphStateGraph(MessagesState)graph.add_node(llm, llm_node)graph.add_node(tool, tool_node)graph.set_entry_point(llm)graph.add_conditional_edges(llm, llm_tool_route,[tool, END])graph.add_edge(tool,llm)3.7 编译并运行图接下来对图进行编译生成Runnable可运行组件调用该可运行组件并传入初始化的图状态数据在消息列表中插入一条人类消息调用图结束后会将最终的图状态数据返回。最终循环打印图状态数据中的消息列表并进行输出。# 9.编译并运行图agentgraph.compile()stateagent.invoke({messages:[HumanMessage(content请计算11)]})formessageinstate[messages]: message.pretty_print()执行结果如下Human Message请计算11Ai MessageTool Calls: add_two_numbers(call_cKQBhEo7nhLHNeFca1ek6x3K)Call ID: call_cKQBhEo7nhLHNeFca1ek6x3K Args: a:1b:1Tool MessageName: add_two_numbers2Ai Message11的结果是2。四、总结本文系统介绍了 LangGraph 的定位、核心能力以及最基础的使用方式并通过一个完整的示例带大家从零构建了第一个基于图结构的 Agent 应用。首先我们明确了LangGraph 与 LangChain 的关系接着重点介绍了 LangGraph 的几项核心能力这些能力决定了 LangGraph 非常适合用来构建复杂、多步骤、可恢复的 Agent 系统而不仅仅是一次性的对话调用。在实战部分我们通过一个计算器Agent的示例完整走了一遍 LangGraph 的基本开发流程通过这个例子可以看到LangGraph能够将 Agent 的执行流程清晰地描述出来。每个节点做什么、什么时候走哪条分支、是否需要循环执行整个执行Agent业务逻辑一目了然这也是 LangGraph 相比传统 Agent 封装方式的最大优势。最后对于正在迷茫择业、想转行提升或是刚入门的程序员、编程小白来说有一个问题几乎人人都在问未来10年什么领域的职业发展潜力最大答案只有一个人工智能尤其是大模型方向当下人工智能行业正处于爆发式增长期其中大模型相关岗位更是供不应求薪资待遇直接拉满——字节跳动作为AI领域的头部玩家给硕士毕业的优质AI人才含大模型相关方向开出的月基础工资高达5万—6万元即便是非“人才计划”的普通应聘者月基础工资也能稳定在4万元左右。再看阿里、腾讯两大互联网大厂非“人才计划”的AI相关岗位应聘者月基础工资也约有3万元远超其他行业同资历岗位的薪资水平对于程序员、小白来说无疑是绝佳的转型和提升赛道。对于想入局大模型、抢占未来10年行业红利的程序员和小白来说现在正是最好的学习时机行业缺口大、大厂需求旺、薪资天花板高只要找准学习方向稳步提升技能就能轻松摆脱“低薪困境”抓住AI时代的职业机遇。如果你还不知道从何开始我自己整理一套全网最全最细的大模型零基础教程我也是一路自学走过来的很清楚小白前期学习的痛楚你要是没有方向还没有好的资源根本学不到东西下面是我整理的大模型学习资源希望能帮到你。扫码免费领取全部内容最后1、大模型学习路线2、从0到进阶大模型学习视频教程从入门到进阶这里都有跟着老师学习事半功倍。3、 入门必看大模型学习书籍文档.pdf书面上的技术书籍确实太多了这些是我精选出来的还有很多不在图里4、AI大模型最新行业报告2026最新行业报告针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。5、面试试题/经验【大厂 AI 岗位面经分享107 道】【AI 大模型面试真题102 道】【LLMs 面试真题97 道】6、大模型项目实战配套源码适用人群四阶段学习规划共90天可落地执行第一阶段10天初阶应用该阶段让大家对大模型 AI有一个最前沿的认识对大模型 AI 的理解超过 95% 的人可以在相关讨论时发表高级、不跟风、又接地气的见解别人只会和 AI 聊天而你能调教 AI并能用代码将大模型和业务衔接。大模型 AI 能干什么大模型是怎样获得「智能」的用好 AI 的核心心法大模型应用业务架构大模型应用技术架构代码示例向 GPT-3.5 灌入新知识提示工程的意义和核心思想Prompt 典型构成指令调优方法论思维链和思维树Prompt 攻击和防范…第二阶段30天高阶应用该阶段我们正式进入大模型 AI 进阶实战学习学会构造私有知识库扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架抓住最新的技术进展适合 Python 和 JavaScript 程序员。为什么要做 RAG搭建一个简单的 ChatPDF检索的基础概念什么是向量表示Embeddings向量数据库与向量检索基于向量检索的 RAG搭建 RAG 系统的扩展知识混合检索与 RAG-Fusion 简介向量模型本地部署…第三阶段30天模型训练恭喜你如果学到这里你基本可以找到一份大模型 AI相关的工作自己也能训练 GPT 了通过微调训练自己的垂直大模型能独立训练开源多模态大模型掌握更多技术方案。到此为止大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗为什么要做 RAG什么是模型什么是模型训练求解器 损失函数简介小实验2手写一个简单的神经网络并训练它什么是训练/预训练/微调/轻量化微调Transformer结构简介轻量化微调实验数据集的构建…第四阶段20天商业闭环对全球大模型从性能、吞吐量、成本等方面有一定的认知可以在云端和本地等多种环境下部署大模型找到适合自己的项目/创业方向做一名被 AI 武装的产品经理。硬件选型带你了解全球大模型使用国产大模型服务搭建 OpenAI 代理热身基于阿里云 PAI 部署 Stable Diffusion在本地计算机运行大模型大模型的私有化部署基于 vLLM 部署大模型案例如何优雅地在阿里云私有部署开源大模型部署一套开源 LLM 项目内容安全互联网信息服务算法备案…扫码免费领取全部内容3、这些资料真的有用吗这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】