LangGraph 工作流:从基础调用到稳定运行

LangChain与LangGraph技术解析:从框架到智能体工作流编排 大语言模型应用开发框架是构建AI应用的核心基础设施,它通过模块化设计连接模型、数据和工具,简化开发流程。其底层原理在于将复杂的AI能力封装为可复用的组件,通过链式调用实现任务自动化。这一技术显著降低了AI应用开发门槛,使开发者能够快速构建检索增强生成、智能对话等场景的应用。当应用逻辑涉及多步骤决策、循环执行和状态管理时,基于图的工作流编排技术成为关键解决方案。LangGraph作为LangChain生态系统中的核心库,专门用于构建有状态的复杂智能体工作流,支持条件分支和循环控制,适用于自动化决策、业务流程编 阅读详情

聊《LangGraph 工作流:从基础调用到稳定运行》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。

摘要

本文概述文章目标、核心观点和实践价值。

前阵子线上出了一个让人头疼的问题:我们的客服 Agent 在处理退款请求时,偶尔会把“部分退款”执行成“全额退款”,而且没有触发任何预警。排查日志发现,Agent 内部状态流转是线性的,一旦 LLM 判定需要退款,它就直接调用了 refund_tool,中间没有任何校验环节。

这就是典型的“脚本式 Agent”陷阱——代码写起来快,跑起来像脱缰野马。为了解决这个问题,我们重构了底层逻辑,引入了 LangGraph。今天不聊那些花哨的概念,就聊聊怎么把这个图结构真正变成生产环境里可控、可观测、可回滚的系统。

目录

  • 为什么需要图工作流
  • State 与 Node:定义系统的“记忆”
  • Edge 与条件分支:掌控流量走向
  • 人工审批节点:给 AI 装上“刹车”
  • 工程化落地:监控、版本与回滚
  • 总结

为什么需要图工作流

文章插图 1

很多开发者刚接触 LangChain 时,喜欢用 Chain 串联模块。Chain 适合简单的顺序执行,比如“检索文档 -> 组装 Prompt -> 调用 LLM”。但在复杂的业务场景下,Chain 显得力不从心:

1. 循环依赖:如果 LLM 生成的答案需要自我反思(Self-Correction),Chain 很难表达这种迭代过程。
2. 条件分支复杂:根据用户意图不同,后续调用不同的工具集,用 Chain 写一堆 if-else 会让逻辑变得难以维护。
3. 状态丢失:Chain 往往是无状态的,每一步的输出直接作为下一步的输入,难以保存整个对话的历史上下文快照。

LangGraph 的核心价值在于它将 Agent 的工作流建模为有向图(Directed Graph)。节点(Node)代表执行单元,边(Edge)代表控制流。这种抽象让我们能像画流程图一样设计 Agent,更重要的是,它支持持久化状态和人工干预。

State 与 Node:定义系统的“记忆”

文章插图 2

在 LangGraph 中,State 是整个系统的灵魂。不同于普通函数传参,State 是一个共享的字典,所有 Node 都可以读写它。

我们在项目中定义了一个 AgentState,它不仅包含用户输入和当前回复,还记录了工具调用的历史、置信度分数以及是否触发了人工审核标志。

from typing import TypedDict, Annotated
import operator

class AgentState(TypedDict):
    messages: Annotated[list, add_messages] # 消息列表,自动合并
    tool_calls: list # 待执行的工具调用
    is_human_review_needed: bool # 是否需要人工介入
    confidence_score: float # LLM 输出的置信度
    final_decision: str # 最终决策结果

def llm_node(state: AgentState) -> AgentState:
    # 模拟 LLM 推理
    response = call_llm(state['messages'])

    # 简单策略:如果涉及金钱操作且置信度低,标记需要人工审核
    needs_review = False
    if "refund" in response.content.lower() and response.confidence < 0.8:
        needs_review = True

    return {
        "messages": [response],
        "is_human_review_needed": needs_review,
        "confidence_score": response.confidence,
        "tool_calls": response.tool_calls
    }

这里有一个关键的工程取舍:State 的序列化与持久化。在生产环境中,State 必须能被序列化(如 JSON),以便存入 Redis 或数据库。这样当服务重启或迁移时,Agent 可以从断点恢复,而不是从头开始。这也是实现“可回滚”的基础。

优快云资料领取方式

Edge 与条件分支:掌控流量走向

有了 State,接下来就是定义 Edge。LangGraph 提供了两种边:

1. Conditional Edges:根据当前 State 决定下一步去哪个 Node。
2. Normal Edges:确定性地跳转到下一个 Node。

在我们的退款场景中,我们使用条件边来路由流程:

def route_after_llm(state: AgentState) -> str:
    if state['is_human_review_needed']:
        return "human_review_node"
    elif state['tool_calls']:
        return "tool_execution_node"
    else:
        return "final_response_node"

workflow.add_conditional_edges(
    "llm_node",
    route_after_llm,
    {
        "human_review_node": "human_review_node",
        "tool_execution_node": "tool_execution_node",
        "final_response_node": "end"
    }
)

这种写法比硬编码 if-else 清晰得多。如果将来我们要增加一个新的审核维度(比如风控拦截),只需要修改 route_after_llm 的判断逻辑,而不需要改动其他 Node 的内部实现。这就是关注点分离带来的工程优势。

人工审批节点:给 AI 装上“刹车”

回到最初的问题:如何防止错误的全额退款?答案就是引入人机协同(Human-in-the-loop)机制。

在 LangGraph 中,我们可以暂停图的执行,等待外部信号(如人类确认)后才继续。这对于高风险操作至关重要。

def human_review_node(state: AgentState) -> AgentState:
    # 这里通常会阻塞,直到收到人工确认
    # 实际生产中,通过 API 将请求推送到审批后台
    approval = get_human_approval()

    if not approval.approved:
        # 拒绝则生成拒绝理由,并结束或重新引导
        return {
            "messages": [AIMessage(content=f"Request denied: {approval.reason}")],
            "final_decision": "denied"
        }

    # 批准则继续执行工具
    return {
        "is_human_review_needed": False,
        "approved_by_human": True
    }

这个节点不仅仅是个开关,它还是监控的关键入口。我们记录了每次人工干预的时间、原因和操作者。这些数据事后可以反哺模型,优化置信度阈值,减少未来的误判。

工程化落地:监控、版本与回滚

代码写得好只是第一步,要让 Agent 在生产环境稳定运行,还需要解决以下工程问题:

1. 版本管理

LangGraph 的图结构应该像代码一样进行版本控制。我们使用 CompiledGraph 的序列化功能,每次发布新版本的图逻辑时,记录版本号。用户会话可以指定使用哪个版本的图执行,方便灰度发布和快速回滚。

2. 可观测性

每一个 Node 的执行耗时、输入输出、异常信息都必须上报到监控系统(如 Prometheus + Grafana)。特别是条件边的跳转频率,能直观反映模型的不确定性。如果某个分支被触发的频率异常高,说明 Prompt 或模型可能需要调整。

3. 超时与熔断

Agent 可能陷入无限循环(例如反复调用工具但无法达成共识)。必须在编译图时设置最大步数限制(Max Iterations),并在每个 Node 中加入超时熔断机制。一旦触发,立即切换到兜底策略(如转接人工客服)。

总结

从脚本到系统,LangGraph 提供的不仅是状态管理和流程控制,更是一种工程化的思维方式。它迫使我们在设计 Agent 时,先思考“数据在哪里流动”、“哪里可能出错”、“如何人工干预”,而不是仅仅关注“Prompt 怎么写”。

对于后端开发者来说,掌握 LangGraph 意味着你能构建出更健壮、更可控的 AI 应用。不要害怕引入复杂度,因为当你的 Agent 开始处理真实世界的脏数据和高频并发时,这种复杂度正是稳定性的来源。

下次当你想要用简单的 Chain 解决问题时,不妨停下来问问自己:这个流程未来会扩展吗?如果出现异常,我能回滚吗?如果不能,也许现在是时候画图了。

资料展示

下面是我整理的AI大模型学习资料和工具包预览,适合收藏后按主题逐步学习。

AI大模型资料展示 1

AI大模型资料展示 2

AI大模型资料展示 3

如果你想看完整资料目录,可以在评论区留言「资料」;也欢迎告诉我你更关注AI大模型里的哪类内容。

优快云官方大礼包

基于DeepSeek与LangGraph构建智能金融分析工作流 智能体(Agent)工作流是当前人工智能领域的重要技术范式,它通过将复杂任务分解为多个可执行的步骤,并协调不同模块协同工作,实现了从感知到决策的自动化流程。其核心原理在于利用有向图模型对任务状态和节点依赖关系进行建模,使系统能够处理分支、循环和并行等复杂逻辑。这一技术显著提升了AI系统在专业领域的应用价值,尤其在需要多步骤推理和结构化输出的场景中表现出色。在金融分析领域,传统方法往往面临信息分散、分析维度单一的问题,而智能体工作流能够整合实时数据获取、财务分析、技术面研判和舆情监控等多个环节,形成端到端的自 阅读详情

相关推荐

AI Agent工作流实战:LangGraph提升简历筛选效率40%

AI Agent工作流正成为企业自动化转型的核心技术,其基于状态机的动态决策能力远超传统脚本。以LangGraph为代表的图计算框架,通过可视化节点编排和自动状态管理,显著提升复杂业务逻辑的开发效率。在简历筛选等典型场景中,结合异步处理与LLM智能决策,可实现处理速度从4小时到9分钟的突破性优化。本文通过对比LangChain等工具链,详解Python环境配置、性能调优及生产级部署方案,为开发者提供从理论到实践的完整指南。

weixin_33892359的博客 548

langgraph之智能体工作流

随着大模型能力的不断提升,大模型应用已经逐步从提示词到RAG再到智能体Agent过渡。Agent属于大模型高阶应用,但是受限于模型能力(思考规划等),智能体的稳定性存在很大的考验。为了解决这个问题,一个方向是提高大模型能力,再一个方向是预先将智能体执行过程进行编排,即工作流。本文就是要介绍智能体工作流框架langgraph,如何通过langgraph实现一个不错的智能体应用。一、langgraph是什么?

龙井茶的Sky 2035

LangGraph生产级工具调用模式:从上下文工程到复杂工作流编排

在构建基于大语言模型(LLM)的智能应用时,工具调用(Tool Calling)是连接模型通用能力与外部系统功能的关键技术。其核心原理在于让LLM能够按需调用外部API、数据库或计算服务,从而突破自身知识静态性的限制,实现对实时数据和特定领域操作的访问。这一技术为AI应用带来了巨大的工程价值,使得构建能够处理复杂、动态业务需求的智能体(Agent)成为可能,广泛应用于智能客服、数据分析、自动化流程等场景。通过引入有状态的工作流编排框架,如LangGraph,开发者可以将离散的工具调用组织成结构化的、可条件化

weixin_38168198的博客 643

【LangGraph】LangGraph 中集成 SearxNG:构建强大的 web 搜索增强工作流

SearxNG 作为一个开源、隐私友好的元搜索引擎,能够聚合多个搜索引擎的结果,为用户提供广泛的信息视角。将 SearxNG 集成到 LangGraph 中,可以显著增强工作流的搜索能力,适用于智能助手、研究自动化和多任务处理等场景。本文详细介绍如何在 LangGraph 中集成 SearxNG,涵盖安装配置、工具集成、工作流设计和实际应用,旨在为开发者提供清晰、实用的指导。关键步骤包括:设置自托管 SearxNG 实例并启用 JSON API。使用 SearxSearchWrapper 或 load_to

彬彬侠的博客 2578

Desktop Agent:基于LangGraph的本地智能体运行时详解

智能体(Agent)是AI工程化落地的核心范式,其本质是具备状态管理、工具调用与任务编排能力的自主工作流。LangGraph作为面向有状态Agent的图编排框架,通过可序列化State和检查点机制,解决了传统无状态链式调用无法维持上下文的根本缺陷。结合FastAPI提供的标准化Agent Protocol接口与SQLite实现的零配置、可审计本地持久化,Desktop Agent构建出真正可嵌入开发者日常工作的轻量级本地运行时。它适用于本地知识库问答、自动化脚本集成、隐私敏感型AI应用等场景,是当前少有的开

mybwu_com的专栏 623

基于LangChain、LangGraph与LangSmith构建医疗问诊Agent实战指南

在大模型应用开发中,Agent(智能体)已成为处理复杂任务的核心架构,它通过整合工具调用、知识检索与状态管理,实现超越单一问答的自动化工作流。其原理在于将大语言模型(LLM)作为决策中枢,结合外部工具与数据源,通过ReAct等模式进行推理与行动。这种技术价值在于显著提升了AI系统在专业领域的可靠性与实用性。在应用场景上,Agent广泛适用于需要多步骤决策、动态交互的领域,例如智能客服、数据分析与自动化办公。本文聚焦于医疗健康这一典型场景,通过一个完整的医疗问诊Agent项目,详细演示了如何利用LangCha

weixin_33767813的博客 1864

LangGraph革命:OpenGPTs如何重塑AI工作流开发新范式

还在为构建复杂的AI应用工作流而头疼?OpenGPTs项目通过LangGraph框架,将AI工作流开发带入了一个全新的时代。本文将为你解析这一技术组合如何彻底改变AI应用开发方式。 ## 什么是OpenGPTs与LangGraph? OpenGPTs是一个开源项目,旨在提供类似OpenAI GPTs和Assistants API的体验,但给予开发者完全的控制权。项目的核心引擎正是**LangG

gitblog_00773的博客 1111

LangChain与LangGraph深度对比:从智能体构建到复杂工作流编排

在构建大语言模型应用时,智能体框架的选择直接影响系统的可维护性与扩展性。LangChain作为模块化框架,通过链式组件简化了LLM与外部工具的集成,适用于快速构建标准问答场景。然而,当应用需要处理复杂状态管理、条件分支和循环控制时,其黑盒化的执行流程便显露出局限性。相比之下,LangGraph基于图计算模型,将工作流明确定义为节点和边的有向图,实现了状态流转的完全透明与精确控制。这种显式编排方式尤其适合需要重试机制、多参与者协作和确定性流程的业务场景,例如游戏NPC对话、审批工作流等。通过对比两者在状态管理

weixin_34267123的博客 757

Finagle 服务端(Server)架构与实战:从 `Server.serve` 到服务端各模块深度解析

Finagle 是一个容错、协议无关的 RPC 系统,其服务端(Server)承担着监听端口、接收请求并快速分发的职责。本文以仓库中的 [Servers.rst](https://link.gitcode.com/i/94b7d566aa9476d9ac4c3f65fd315297) 为骨架,结合 finagle-core 的源码实现,系统讲解 Finagle 服务端的核心接口、默认模块栈(可观测

gitblog_00952的博客 898

FastAPI+LangGraph构建生产级AI工作流

AI工作流本质上是状态管理、逻辑编排与服务交付的协同问题。传统Chain模式难以应对分支判断、循环重试和跨请求上下文等工程需求,而图模型(Directed Graph)通过显式State、条件边和节点化设计,实现了AI决策逻辑的可调试、可监控与可迭代。FastAPI则补足了HTTP网关、状态持久化、安全治理与多协议适配能力,使LangGraph真正落地为高可用AI服务。本文聚焦FastAPI与LangGraph协同架构,详解状态建模、图编排、流式响应及Redis会话管理等核心实践。

weixin_30596343的博客 672

固定时间收敛的控制器设计(基础知识)

针对控制系统的有限时间收敛和固定时间收敛给出一些常用定理。

qq_40241332的博客 1万+

LangGraph编译执行与可视化:构建稳定可调试的AI工作流

在AI应用开发中,工作流引擎是连接算法模型与实际业务场景的关键组件。其核心原理在于将复杂任务拆解为可编排的节点,通过状态驱动和数据流控制实现自动化执行。这一技术价值在于提升AI系统的可靠性、可维护性和可观测性,广泛应用于智能客服、内容生成、数据分析等场景。以LangGraph为例,其编译过程将静态蓝图转化为可执行引擎,执行阶段驱动状态在节点间流转,而可视化工具则为开发者提供了直观的调试监控能力。通过掌握状态合并、条件路由等核心机制,开发者能构建出既高效又易于调试的智能体系统,这正是实现AI应用工程化的关键路

weixin_33937913的博客 305

博途 V15.1安装步骤

温馨提醒:安装此软件电脑配置至少应满足以下要求 处理器 CoreTM i5-3320M 3.3 GHz 或相当 内存 至少8G 硬盘 300 GB SSD 显示器 15.6' 宽屏显示 (1920 x 1080) 1.双击打开【Siemens v15.1】文件夹。 2.鼠标右击【STEP 7 BasicProfess...

谢谢关注“小鱼教你模数电”,各平台同号 9万+

LangGraph重试策略:构建稳定AI工作流的终极指南

在当今复杂多变的AI应用环境中,网络抖动、API限流、服务暂时不可用等问题已成为常态。LangGraph作为构建智能工作流的强大框架,其**重试策略**机制为开发者提供了构建稳定可靠AI系统的关键能力。本文将深入探讨LangGraph的重试机制,帮助您掌握如何在实际项目中实现自动恢复和容错处理。 ## 为什么AI工作流需要智能重试? 现代AI应用通常涉及多个外部服务调用,每个环节都可能面临失败

gitblog_01131的博客 191

USB3.0 Type-B连接器SSTX/SSRX信号定义常见错误与硬件设计避坑指南

本文详细解析了USB3.0 Type-B连接器中SSTX/SSRX信号的定义标准与常见设计错误。针对连接器厂商图纸可能出现的信号标识错误,提供了实用的排查方法和硬件设计避坑指南,帮助工程师避免因引脚定义颠倒导致的通信降级或故障,确保USB3.0高速传输的稳定性。

gg901的博客 1269

全球第一开源云ERP Odoo操作手册 模块安装和界面汉化指南

Odoo 的功能包含在不同的模块中, 刚创建的数据库除 Odoo 的核心模块外, 其它模块并没有被安装到系统中,你可以根据需要安装它们。本节将介绍安装模块和界面汉化的相关知识。

weixin_44793763的博客 2076

[大模型架构] LangGraph AI 工作流编排(14)

【代码】[大模型架构] LangGraph AI 工作流编排(14)

一刀7段的博客 931

Abaqus 2023 保姆级安装避坑指南:从环境变量到许可证配置,一次搞定

本文提供Abaqus 2023的详细安装指南,涵盖环境变量设置、许可证配置等关键步骤,帮助用户避开常见安装陷阱。通过系统环境检查、目录结构规划、许可证服务器安装及Java环境配置等实用技巧,确保顺利完成安装并优化软件性能。

weixin_42524276的博客 426

从零构建LangGraph智能体:基于状态与图的工作流编排实战

在构建复杂的大模型应用时,任务编排与状态管理是核心挑战。传统的单次API调用难以处理多步骤、带条件的决策流程,这催生了对智能体(Agent)框架的需求。其原理在于将业务逻辑抽象为有向图,通过节点(执行单元)和边(流转条件)来定义工作流,状态(State)则作为贯穿始终的上下文容器,记录对话历史、中间结果等信息。这种架构的技术价值在于实现了清晰的关注点分离,使复杂逻辑的构建和维护变得模块化、可视化。它广泛应用于需要多轮交互、工具调用和记忆能力的场景,如对话助手、自动化流程和复杂决策系统。本文聚焦的LangGr

weixin_34378969的博客 680

Android NDK/JNI面试题大全及参考答案(3万字长文)

是一套工具集合,它允许开发者为Android平台编写原生应用程序或者应用程序的部分模块。NDK 主要用于开发那些需要高性能计算的应用程序,例如游戏引擎、图像处理软件或音频/视频编码解码器等。通过使用 C 或 C++ 编写代码,开发者可以利用硬件加速功能,提高应用性能。NDK 提供了一系列工具来帮助开发者完成从源代码到可执行文件的整个过程,包括编译、链接、调试等功能。

大模型大数据攻城狮的专栏 1260

华为OD机试 双机位A卷 - 流量波峰 (C++ & Python & JAVA & JS & GO)

华为OD机试双机位A卷 流量波峰,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解

qq_45776114的博客 1377

LangGraph基础API解析:构建有状态AI工作流的核心概念与实践

在AI应用开发中,复杂业务流程常需处理分支、循环等逻辑,传统链式调用易导致代码混乱。有状态工作流通过维护共享上下文,使多步骤应用能根据中间结果动态调整执行路径,极大提升了复杂AI系统的可维护性与表达能力。其核心原理是将应用抽象为节点(处理单元)和边(流转逻辑)组成的有向图,通过状态对象在各节点间传递和更新数据。这一技术为构建智能体(Agent)、多轮对话系统、自动化决策流程等场景提供了工程化框架。本文以LangGraph为例,深入解析其状态管理、节点函数、条件边等基础API,并通过实战演示如何构建具备循环校

weixin_30851867的博客 427

Vue - 最新详细实现滑块拖动拼图验证,网站登录验证滑块验证功能,拖动滑块到图片缺口的位置即为成功,滑块验证安全检测(详细示例代码,一键复制运行)

您一定见过很多系统都“配备”了滑块验证、拼图验证、找不同等,本质上都是为了验证登录系统的是人还是机器(代码),如下图所示效果: 您打开项目根目录,终端执行如下命令:拼图式拖动滑块验证 验证拖动滑块验证,滑动拼图/图片点选验证 接下来,在中加入以下代码: 如下图所示: 更多配置示例和参数详见官方文档,以下便是如上效果图的代码:.........

🏆 前端领域优质创作者 1万+

AINL vs LangGraph vs Temporal:5 轴诚实对比,AI 工作流选型不再纠结

如果你正在为团队挑选 AI 工作流框架,在 LangGraph、Temporal 和 AINL 之间反复纠结,这篇 AI 工作流选型指南能帮你省下几个星期的评估时间。AINL(AI Native Lang)是一个紧凑、以图(graph)为规范形式的 AI 原生工作流语言:你只用一份极简的 `.ainl` 源文件描述工作流,即可通过严格编译校验,并"一次编译、多次运行",甚至能同时导出为 LangG

gitblog_01189的博客 391

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

上一篇: Agent 核心原理:把学习路线变成作品集
下一篇: 程序员就业:工程实践里的常见坑
Java技术那些事儿
博客等级 码龄5年 2306粉丝 2584原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值