LangGraph完整学习指南

张开发
2026/4/10 15:52:36 15 分钟阅读

分享文章

LangGraph完整学习指南
第一章LangGraph 概述1.1 什么是 LangGraphLangGraph 是由 LangChain 团队开发的一个开源 AI Agent 框架专门用于构建、部署和管理复杂的生成式 AI Agent 工作流。作为 LangChain 生态系统的重要组成部分LangGraph 提供了一个基于图Graph的框架使得开发者能够创建具有循环工作流和状态管理能力的 LLM 应用程序。它的设计理念是将复杂的 AI 应用拆分为相互连接的节点通过边Edges进行通信并在整个执行过程中维护统一的状态State从而实现更可控、更可靠的 Agent 行为。与传统的线性工作流不同LangGraph 允许开发者定义循环和分支逻辑这使得 Agent 能够根据上下文动态调整执行路径。例如一个智能客服 Agent 可以在无法回答用户问题时选择搜索网络或者在需要时请求人工干预。这种灵活性使得 LangGraph 成为构建生产级 AI 应用的理想选择尤其是在需要精细控制 Agent 行为的场景中。1.2 LangGraph 的核心优势LangGraph 在众多 AI Agent 框架中脱颖而出主要得益于以下几个核心优势首先是可靠性和可控性通过审核检查和人工审核来引导 Agent 操作确保 Agent 的行为符合预期其次是持久性Agent 能够在调用之间保持对话状态支持暂停、恢复和回溯操作第三是可扩展性开发者可以轻松扩展 Agent 的功能添加新的工具和能力最后是与 LangChain 生态的无缝集成可以充分利用 LangChain 提供的丰富组件和工具。1.3 LangGraph 与 LangChain 的关系LangGraph 是 LangChain 生态系统的一部分但它专注于解决特定类型的问题。LangChain 提供了构建 LLM 应用的基础组件如模型调用、提示模板、工具集成等而 LangGraph 则专注于如何将这些组件组织成复杂的工作流。可以将 LangChain 视为「零件库」而 LangGraph 则是「组装蓝图」两者相辅相成共同帮助开发者构建强大的 AI 应用。LangGraph 可以使用 LangChain 的所有组件同时增加了状态管理和流程控制的能力。第二章核心概念2.1 四大核心组件LangGraph 的架构建立在四个核心概念之上图Graph、节点Nodes、边Edges和状态State。这四个组件协同工作共同定义了 Agent 的行为和执行流程。理解这些概念是掌握 LangGraph 的关键它们就像是构建智能系统的积木让开发者能够打造出灵活多变的 AI 应用。下面我们将逐一深入探讨每个组件的设计理念和实际应用。2.1.1 状态State状态是 LangGraph 中最重要的概念之一它是一个共享的数据结构保存了应用程序在执行过程中的所有相关信息。状态可以包含对话历史、用户输入、中间结果、决策记录等任何需要在节点之间传递的数据。每个节点都可以读取和修改状态而状态的更新会触发图的下一次执行。状态的定义通常使用 Python 的 TypedDict 或 Pydantic 模型以确保类型安全和代码可读性。状态管理的核心在于「状态规约」State Reduction即当多个节点尝试更新同一状态字段时如何合并这些更新。LangGraph 提供了多种规约策略例如追加append、覆盖overwrite或自定义合并函数。正确设计状态结构对于构建可维护的 Agent 至关重要开发者需要仔细考虑哪些数据需要持久化以及如何在不同节点之间共享这些数据。2.1.2 节点Nodes节点是图中的计算单元每个节点代表一个具体的操作或功能。节点可以是一个简单的函数调用 LLM 生成回复也可以是一个复杂的模块执行网络搜索、数据库查询或调用外部 API。节点的输入是当前状态输出是状态的更新。LangGraph 中的节点设计遵循单一职责原则每个节点应该只做一件事这使得图的逻辑更加清晰也更易于调试和维护。在实际应用中常见的节点类型包括Agent 节点负责决策和生成回复、工具节点执行具体操作、路由节点决定下一步执行哪个节点、条件节点根据条件执行不同逻辑等。节点的粒度可以根据需求灵活调整可以是一个完整的功能模块也可以是模块内的一个步骤。关键是要确保每个节点的职责清晰输入输出明确。2.1.3 边Edges边定义了节点之间的连接关系决定了执行流程如何从一个节点流向另一个节点。LangGraph 支持两种类型的边普通边Normal Edges和条件边Conditional Edges。普通边表示无条件的执行流程从节点 A 完成后必然执行节点 B条件边则允许根据状态中的信息动态选择下一个执行节点这是实现复杂控制流的关键。条件边使 Agent 能够根据上下文做出决策例如在需要时调用搜索工具或在任务完成后终止执行。边的设计直接影响 Agent 的行为模式。合理的边设计可以实现循环Looping让 Agent 能够迭代执行某些操作直到满足条件也可以实现分支Branching让 Agent 根据不同情况选择不同的执行路径。通过组合循环和分支开发者可以构建出非常复杂的 Agent 行为同时保持代码的可读性和可维护性。2.1.4 图Graph图是 LangGraph 的顶层抽象它将节点和边组合成一个完整的工作流。LangGraph 提供了 StateGraph 类来构建图开发者需要先定义状态结构然后添加节点和边最后编译图以生成可执行的应用程序。图的编译过程会验证图的完整性确保所有节点都正确连接没有孤立节点或死循环。编译后的图可以重复执行每次执行都会从初始状态开始经过一系列节点最终到达结束状态。LangGraph 支持多种类型的图结构包括单 Agent 图、多 Agent 图、层次化图等。单 Agent 图是最简单的形式由一个 Agent 和其相关工具组成多 Agent 图允许多个 Agent 协作完成复杂任务每个 Agent 可以有自己的状态和工具层次化图则允许在图中嵌套子图实现更复杂的模块化设计。选择合适的图结构取决于具体的应用需求和复杂性。2.2 核心概念对比表下表总结了 LangGraph 四大核心组件的特点和用途组件定义作用State 状态共享数据结构存储和传递数据维护对话上下文Nodes 节点计算单元/函数执行具体操作处理状态并返回更新Edges 边节点间连接关系定义执行流程支持条件和循环Graph 图完整工作流结构组织和协调所有节点和边表 1LangGraph 核心组件对比第三章安装与快速入门3.1 环境准备在开始使用 LangGraph 之前需要确保开发环境已经正确配置。LangGraph 支持 Python 和 JavaScript/TypeScript 两种语言其中 Python 版本功能更为完善是官方推荐的首选。首先需要安装 Python 3.8 或更高版本建议使用虚拟环境来管理项目依赖。然后通过 pip 安装 LangGraph 及其相关依赖包包括 langgraph、langchain 以及所需的模型 SDK。安装命令如下pip install langgraph langchain langchain-openai除了基础的 LangGraph 包根据项目需求可能还需要安装其他依赖。例如如果需要使用 Anthropic 的 Claude 模型可以安装 langchain-anthropic如果需要使用搜索工具可以安装相关的搜索 API 客户端。建议在项目的 requirements.txt 或 pyproject.toml 中明确列出所有依赖以便于环境复现和团队协作。3.2 第一个 LangGraph 应用让我们通过一个简单的例子来了解 LangGraph 的基本用法。我们将创建一个简单的对话 Agent它能够与用户进行基本的问答交互。这个例子虽然简单但涵盖了 LangGraph 的所有核心概念是学习更复杂应用的基础。下面的代码展示了如何定义状态、创建节点、连接边以及编译和运行图。示例代码from typing import TypedDictfrom langgraph.graph import StateGraph, ENDfrom langchain_openai import ChatOpenAI定义状态结构class AgentState(TypedDict):messages: listuser_input: str定义节点函数def chat_node(state: AgentState):llm ChatOpenAI(model“gpt-4”)response llm.invoke(state[“messages”])return {“messages”: [response]}构建图workflow StateGraph(AgentState)workflow.add_node(“chat”, chat_node)workflow.set_entry_point(“chat”)workflow.add_edge(“chat”, END)编译并运行app workflow.compile()result app.invoke({“messages”: [(“user”, “你好”)]})3.3 代码详解上面的示例代码展示了 LangGraph 应用的基本结构让我们逐一分析每个部分的作用和实现细节。首先是状态定义使用 TypedDict 定义了一个名为 AgentState 的状态结构包含 messages 和 user_input 两个字段。这种类型化的定义方式不仅提供了代码提示支持还能在编译时进行类型检查减少运行时错误。接下来是节点函数的定义。chat_node 函数是一个简单的节点它接收当前状态作为参数调用 OpenAI 的 GPT-4 模型生成回复然后返回状态的更新。注意节点函数的返回值是一个字典包含需要更新的状态字段。LangGraph 会自动将这个返回值合并到当前状态中。最后是图的构建和编译过程。我们创建了一个 StateGraph 实例添加了节点和边设置了入口点然后调用 compile() 方法编译图。编译后的图可以多次调用每次调用都会创建一个新的执行实例。第四章实战案例4.1 构建智能客服 Agent智能客服是 LangGraph 最典型的应用场景之一。一个完整的客服 Agent 通常需要具备多种能力理解用户意图、回答常见问题、搜索知识库、必要时转接人工客服等。使用 LangGraph我们可以将这些能力组织成一个清晰的工作流让 Agent 根据具体情况选择合适的处理方式。下面我们来看一个完整的智能客服 Agent 实现。智能客服 Agent 的设计思路是首先对用户输入进行分类判断是简单问题还是复杂问题简单问题直接使用 LLM 回答复杂问题则需要调用搜索工具查找相关信息如果 Agent 认为问题超出其能力范围可以选择将对话转接给人工客服。整个流程通过条件边实现动态路由确保每个用户请求都能得到最合适的处理。4.2 Agent 工作流程设计在设计 Agent 工作流程时需要考虑以下几个关键问题首先是状态结构的设计需要包含对话历史、用户意图、搜索结果等必要信息其次是节点的划分每个节点应该有明确的职责最后是边的连接需要覆盖所有可能的执行路径。一个好的工作流程设计应该是清晰的、可预测的同时也要足够灵活以处理各种边界情况。一个典型的智能客服 Agent 工作流程包含以下步骤接收用户输入添加到对话历史分析用户意图判断问题类型根据意图选择处理路径直接回答/搜索/转人工执行选定的处理逻辑生成回复返回给用户4.3 常见工作流模式LangGraph 支持多种常见的工作流模式开发者可以根据具体需求选择合适的模式或组合多种模式。理解这些模式有助于设计出更加高效和可维护的 Agent 系统。以下是几种最常用的工作流模式及其适用场景1. 链式工作流Chain最简单的模式节点按顺序依次执行。适用于任务可以明确分解为一系列步骤的场景例如文档摘要生成读取文档 → 分析结构 → 提取要点 → 生成摘要。链式工作流的优点是逻辑清晰、易于理解和调试缺点是缺乏灵活性无法根据中间结果调整执行路径。2. 路由工作流Router根据输入或中间结果选择不同的执行路径。通过条件边实现动态路由适用于需要根据情况采取不同处理方式的场景。例如一个客服系统可以根据问题类型路由到不同的专业团队技术问题路由到技术支持订单问题路由到客服团队投诉问题路由到投诉处理部门。3. 循环工作流Loop允许重复执行某些节点直到满足退出条件。这是 LangGraph 区别于传统工作流引擎的重要特性对于需要迭代优化或持续监控的场景非常有用。例如一个代码审查 Agent 可以循环检查代码问题每次修复后重新检查直到没有问题为止或者一个研究 Agent 可以持续搜索和整理信息直到收集到足够的内容。4. 协作工作流Collaborator多个 Agent 协同工作共同完成复杂任务。每个 Agent 负责特定的领域或功能通过共享状态进行协作。例如一个内容创作系统可以包含研究 Agent、写作 Agent、编辑 Agent 和审核 Agent它们分工协作完成从选题到发布的整个流程。协作工作流的挑战在于协调多个 Agent 的执行顺序和结果合并。第五章进阶应用5.1 持久化与状态管理在实际应用中Agent 的状态持久化是一个关键问题。用户可能需要暂停对话稍后继续或者需要回溯到之前的某个状态重新执行。LangGraph 提供了完善的持久化机制支持多种存储后端包括内存存储、SQLite、PostgreSQL 等。通过配置 checkpointer可以自动保存 Agent 的执行状态实现暂停、恢复和回溯功能。状态持久化的另一个重要应用是「时间旅行」Time Travel。LangGraph 记录了每次状态变更的检查点Checkpoint开发者可以查看完整的执行历史甚至可以从任意检查点重新开始执行。这对于调试复杂 Agent、分析 Agent 行为、以及实现撤销操作等功能非常有帮助。在生产环境中合理配置持久化策略对于保证服务可靠性和用户体验至关重要。5.2 人机协作Human-in-the-Loop在许多场景下完全自动化的 Agent 并不能满足需求需要引入人工干预来提高可靠性或处理特殊情况。LangGraph 的 Human-in-the-Loop 机制允许在特定节点暂停执行等待人工审核或输入后再继续。这对于需要审批的业务流程、高风险操作的确认、以及 Agent 能力边界的处理都非常重要。实现 Human-in-the-Loop 的关键是使用 interrupt_before 或 interrupt_after 参数。当执行到指定节点时图会自动暂停并返回当前状态等待外部输入。人工审核完成后可以使用 update_state 方法更新状态然后继续执行。这种机制使得 Agent 能够在保持自动化效率的同时获得必要的人工监督和干预。5.3 多 Agent 系统随着任务复杂度的增加单一 Agent 可能难以满足需求。多 Agent 系统通过让多个专业化的 Agent 协作能够处理更加复杂的任务。LangGraph 提供了构建多 Agent 系统的完整支持包括 Agent 之间的通信、协调和结果合并。常见的多 Agent 架构包括主从架构一个协调器 Agent 分发任务给多个工作 Agent、团队架构多个平等 Agent 协作讨论、层次架构多层 Agent 组织结构。构建多 Agent 系统的关键挑战在于协调和通信。LangGraph 通过共享状态机制简化了 Agent 之间的数据交换每个 Agent 都可以读取和更新共享状态。对于更复杂的协调需求可以使用专门的协调节点来管理 Agent 之间的交互。多 Agent 系统的设计需要考虑 Agent 的分工、通信协议、冲突解决机制等因素良好的架构设计是成功的关键。5.4 流式输出与实时交互对于需要实时反馈的应用LangGraph 支持流式输出Streaming。通过 astream 或 stream 方法可以实时获取节点执行的中间结果而不需要等待整个图执行完成。这对于聊天应用尤为重要用户可以看到 LLM 的回复逐步生成而不是等待很长时间后才看到完整结果。流式输出不仅改善了用户体验也使得监控和调试更加方便。LangGraph 支持多个层面的流式输出可以流式输出单个节点的结果、流式输出 token需要 LLM 支持、以及流式输出状态更新。开发者可以根据应用需求选择合适的流式模式。在实现流式输出时需要注意处理异步逻辑和并发问题确保数据的一致性和正确性。第六章最佳实践与建议6.1 状态设计原则良好的状态设计是构建可维护 Agent 的基础。首先状态应该只包含必要的信息避免存储冗余数据。其次状态字段应该有明确的类型定义使用 TypedDict 或 Pydantic 模型。第三考虑状态的更新策略明确哪些字段是追加式的如对话历史哪些是覆盖式的如当前任务。最后对于复杂状态可以考虑使用嵌套结构或引用 ID避免状态过于庞大。6.2 节点设计原则每个节点应该遵循单一职责原则只做一件事。节点应该有明确的输入输出避免副作用。对于可能失败的操作应该在节点内部处理异常并返回有意义的状态更新。节点的粒度应该适中太细会导致图过于复杂太粗则难以复用和调试。建议将通用功能抽取为独立节点形成可复用的节点库。6.3 调试与监控LangGraph 提供了丰富的调试工具。LangSmith 是 LangChain 生态系统的可观测性平台可以追踪 Agent 的每一步执行查看状态变化和 LLM 调用详情。在开发阶段建议启用详细日志记录每个节点的输入输出。对于生产环境应该配置适当的监控和告警及时发现和处理异常情况。使用时间旅行功能可以帮助分析和复现问题。6.4 学习路径建议对于初学者建议按照以下路径循序渐进地学习 LangGraph首先掌握 LangChain 的基础概念包括 LLM 调用、提示模板、工具使用等然后学习 LangGraph 的核心概念理解状态、节点、边、图的作用接着通过官方教程和示例构建简单的 Agent 应用最后深入学习持久化、人机协作、多 Agent 等高级主题。实践是最好的学习方式建议边学边做通过实际项目加深理解。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

更多文章