- Zed IoT
-
2026年6月2日 -
下午1:47 -
0 评论

LangGraph 的价值不在于让 AI Agent 看起来更复杂,而在于把复杂 Agent 的状态、分支、循环、人工审批和恢复路径变成可设计、可追踪、可维护的工程结构。如果一个 AI 项目只是一次性问答、固定 API 调用或线性自动化流程,LangGraph 往往不是第一选择;如果项目需要多步骤推理、跨工具状态、人工确认、失败恢复和审计记录,LangGraph 才开始体现明显价值。
本文回答一个实际选型问题:企业 AI Agent 项目什么时候适合用 LangGraph,什么时候不该用,以及它和普通 Chain、Function Calling、低代码 Workflow 的边界在哪里。
决策块
当 Agent 必须在多个步骤之间保留状态、允许循环、等待人工输入、从中断点恢复,并把每次工具调用和决策路径留给后续排查时,LangGraph 是合理选择。反过来,如果流程没有显式状态、没有审批或恢复要求,只是把模型回答接到一个 API,先用普通函数调用或轻量 Workflow 更稳。
1. 先判断问题是不是“有状态工作流”
LangGraph 的核心对象不是“聊天机器人”,而是一个可以按状态推进的图。官方文档把 LangGraph 定位为面向长期运行、有状态 Agent 的编排框架,重点能力包括 durable execution、human-in-the-loop、memory 和可调试性。换成项目判断语言,就是:它更适合把 Agent 当成一个可恢复的业务流程,而不是一次模型调用。
| 项目问题 | 是否适合 LangGraph | 判断原因 |
|---|---|---|
| 用户问一个问题,模型回答即可 | 不优先 | 没有跨步骤状态,也不需要恢复或审批 |
| 模型调用一个固定工具并返回结果 | 通常不优先 | Function Calling + 后端校验已经够用 |
| Agent 要在检索、计划、工具调用和复核之间循环 | 适合 | 图结构能表达循环、分支和终止条件 |
| 需要人工审批后再继续执行 | 适合 | 人工节点可以成为流程状态的一部分 |
| 失败后要从 checkpoint 继续 | 适合 | 状态持久化和恢复是关键收益 |
| 业务部门希望拖拽搭建简单流程 | 不一定 | 低代码 Workflow 可能更合适,除非需要可编程状态逻辑 |
这张表的意思是:LangGraph 解决的是 Agent 流程控制问题,不是所有 AI 应用开发问题。 只有当状态、分支、循环、审批和恢复成为核心需求时,引入它才值得。
2. LangGraph 和普通 Chain 的分界
普通 Chain 更像一条固定路线:输入进来,按顺序经过 prompt、模型、解析器、工具,再输出结果。它适合清晰、短路径、低分支的任务。例如把一段客户邮件分类、从文档中抽取字段、生成一段摘要。
LangGraph 更像一个显式状态机:当前状态决定下一步节点,节点可以读写状态,流程可以循环、暂停、恢复或走不同分支。它适合不确定路径的任务。例如一个企业采购助手需要先理解需求,再查询库存、比较供应商、判断预算、请求审批、生成采购单,并在审批失败后回到修订节点。
判断句很直接:如果流程图能画成一条线,普通 Chain 通常够用;如果流程图需要回路、人工节点、失败分支和状态恢复,LangGraph 更合适。
3. 哪些企业 Agent 场景最适合 LangGraph
3.1 多步骤业务处理
典型场景包括销售线索跟进、工单分诊、采购审批、售后诊断、设备告警处理和合规文档审核。它们共同特点是:每一步都影响下一步,且中途可能要查询多个系统、等待人工判断或回滚到前一步。
在这种场景下,Agent 的核心不是“会不会回答”,而是“能不能按业务状态推进”。LangGraph 可以把 intake、classify、retrieve_context、call_tool、human_review、execute、audit 这些节点显式化,避免把流程控制藏在一大段提示词里。
3.2 需要人工确认的人机协同
企业项目里,很多动作不能由模型直接完成:退款、调价、设备重启、权限变更、合同条款修改都需要审批。LangGraph 适合把人工审批建成流程节点,而不是把“请人工确认”写成一句模型回复。
更稳的做法是:Agent 先准备建议和证据,系统进入 pending_review 状态,审批人确认后再进入执行节点。这样审批、参数、时间、操作者和后续结果都能进入审计链路。
3.3 需要中断恢复和可观测性的流程
生产 Agent 经常会遇到网络失败、工具超时、用户离开、审批延迟或第三方系统异常。如果流程只能依赖一次运行中的内存状态,失败后就很难恢复。
LangGraph 的 checkpoint / persistence 能力适合这类场景:系统可以保存当前状态,让流程从中断点继续,而不是从头再跑。对于客户服务、工单、财务、IoT 运维这类长流程,这个能力比“多调用几个工具”更重要。

4. 一个可落地的 LangGraph 架构边界
flowchart LR
A("User request"):::slate --> B("State intake"):::blue
B --> C("Planner node"):::violet
C --> D{"Need tool data?"}:::amber
D -->|Yes| E("Tool / API node"):::green
E --> F("State update + checkpoint"):::blue
F --> C
D -->|No| G{"Needs human approval?"}:::amber
G -->|Yes| H("Human review node"):::orange
H --> I("Execute approved action"):::green
G -->|No| I
I --> J("Audit + final response"):::slate
classDef blue fill:#EAF4FF,stroke:#3B82F6,color:#16324F,stroke-width:2px;
classDef violet fill:#F4EDFF,stroke:#8B5CF6,color:#4C1D95,stroke-width:2px;
classDef green fill:#ECFDF3,stroke:#22C55E,color:#14532D,stroke-width:2px;
classDef amber fill:#FFF7E6,stroke:#F59E0B,color:#7C3F00,stroke-width:2px;
classDef orange fill:#FFF0EB,stroke:#F97316,color:#7C2D12,stroke-width:2px;
classDef slate fill:#F8FAFC,stroke:#64748B,color:#1F2937,stroke-width:2px;这张图不是让每个项目都照抄节点名,而是强调边界:LangGraph 负责 Agent 状态与流程推进,业务后端负责权限、真实执行、数据一致性和审计落库。 不要让模型或图节点绕过业务系统直接做高风险操作。
一个健康的落地方式通常是:
- 用 LangGraph 表达 Agent 的状态、节点、分支和循环。
- 用后端服务封装真实业务动作,例如创建工单、更新 CRM、查询设备、发送通知。
- 对高风险动作加入 human-in-the-loop 节点。
- 在关键状态写 checkpoint,支持恢复和排查。
- 把工具调用、审批、执行结果和失败原因写进日志或审计系统。
5. 它不适合什么场景
LangGraph 不是“所有 Agent 项目都应该上”的默认框架。
如果你的应用只是一个知识库问答入口,先把检索质量、引用来源、权限和答案格式做好,比引入状态图更重要。没有多步骤状态时,RAG pipeline 或普通服务端编排通常更直接。
如果你的业务流程已经能用 Dify、n8n 或内部低代码平台清楚表达,并且不需要复杂循环、可编程状态或细粒度恢复,低代码 Workflow 可能交付更快。LangGraph 的优势是可编程控制,不是把所有流程都变成图。
如果团队还没有明确的工具权限、数据边界、错误处理和审计要求,先补后端工程基础。否则 LangGraph 只会把一个不清楚的控制路径包装成更复杂的形式。
不适用块
没有状态、没有分支、没有审批、没有恢复要求的 AI 功能,不应为了“Agent 架构完整”而引入 LangGraph。它会增加调试、部署和团队理解成本,却不能自动提高模型质量或业务效果。
6. 和 Function Calling、低代码 Workflow 怎么分工
| 机制 | 适合解决的问题 | 不适合替代什么 |
|---|---|---|
| Function Calling | 让模型输出结构化工具参数,由应用执行工具 | 不替代长期状态、人工审批和流程恢复 |
| 低代码 Workflow | 快速连接触发器、API、通知和简单条件分支 | 不适合复杂可编程状态机和动态循环 |
| LangGraph | 构建有状态、多节点、可恢复、可审计的 Agent 工作流 | 不替代业务后端、权限系统和真实执行服务 |
比较后的结论是:Function Calling 是动作入口,低代码 Workflow 是快速自动化,LangGraph 是可编程 Agent 流程控制层。 三者可以组合,但不应互相误用。
例如,一个客户支持 Agent 可以用 LangGraph 管理对话状态、检索、工具调用和人工升级;用 Function Calling 生成 create_ticket 或 lookup_order 的结构化参数;用后端服务真正创建工单;再用现有 Workflow 平台发送通知或同步 CRM。这样每一层都有清楚职责。
7. 建议的落地顺序
如果你准备在企业项目中引入 LangGraph,建议不要从“把所有节点画出来”开始,而是先做 5 个决定:
- 定义状态:哪些字段必须跨步骤保留,例如用户意图、证据、工具结果、审批状态、执行结果。
- 定义风险等级:哪些动作只读,哪些动作需要人工确认,哪些动作不允许由 Agent 发起。
- 定义节点边界:每个节点只做一类事,避免一个节点同时规划、调用工具、审批和执行。
- 定义恢复点:在哪些节点之后写 checkpoint,失败后从哪里继续。
- 定义审计:哪些参数、工具结果、审批人和最终动作必须落库。
这套顺序能防止团队把 LangGraph 当成“更高级的 prompt”。它真正应该承载的是工程化流程控制。
8. 结论
LangGraph 适合的不是所有 AI Agent,而是那些已经进入生产控制面的 Agent 工作流:状态要保存,路径会分支,工具调用会失败,人工审批会插入,执行结果要审计,流程要能恢复。
如果你的项目只是一次性问答、简单 RAG、固定函数调用或低风险自动化,先用更轻的方案。只有当状态机、多步骤流程、人机协同和可恢复执行成为主要矛盾时,LangGraph 才是值得引入的 Agent 编排层。
References:
典型应用介绍


