LangGraph 把 Agent 从 Demo 变成服务:一条完整的落地路径

双非入局AI Agent开发:LangGraph+RAG+私有化部署落地路线 AI Agent正成为大模型落地业务系统的核心形态,其本质不是参数竞赛,而是将模型能力接入真实工程链路的能力。理解Agent的“感知-规划-工具调用-记忆”循环原理,掌握LangGraph进行图状态编排,是构建可控智能体的第一步。RAG(检索增强生成)通过文档解析、切块、向量化与重排,让模型在私有知识库上生成有据可依的回答,是解决数据安全与事实幻觉的关键技术。私有化部署则借助llama.cpp、vLLM与FastAPI,将模型服务封装为OpenAI兼容API,满足企业内网与离线场景的刚性需求。从知识库问答、 阅读详情

LangGraph 把 Agent 从 Demo 变成服务:一条完整的落地路径

用 LangChain 写 Agent,Demo 阶段很爽,一上生产就露馅。

原因不是模型不行,是链是线性的,Agent 是循环的。

链只能 A→B→C 走到底;而 Agent 必须「想一想、调个工具、看看结果、再想一想」,这个「再」字,链表达不了。

LangGraph 就是为这个「再」字生的。

在这里插入图片描述

一、整个框架只有三样东西

别看文档长,核心就三个概念,理解了这三个,剩下的都是配置。

State —— 整个图共享的一份数据。用 TypedDict 定义,所有节点读它、改它。

from typing import Annotated, TypedDict
from langgraph.graph.message import add_messages

class AgentState(TypedDict):
    messages: Annotated[list, add_messages]   # 追加,不是覆盖
    steps: int

那个 Annotated[list, add_messages] 是新手最容易漏的地方。它的意思是:这个字段用 add_messages 这个 reducer 来合并——每个节点返回新消息时是追加,不是替换整个列表。写成普通的 list,你会看到历史消息莫名其妙消失。

Node —— 一个函数,输入 State,输出 State 的增量。

def agent_node(state: AgentState):
    resp = llm.invoke(state["messages"])
    return {"messages": [resp], "steps": state["steps"] + 1}

注意返回值:只返回要改的字段,不需要把整个 State 吐回来。

Edge —— 节点之间的跳转。普通边是「下一步」,条件边是「看情况」。

from langgraph.graph import StateGraph, END

g = StateGraph(AgentState)
g.add_node("agent", agent_node)
g.add_node("tools", tool_node)

g.set_entry_point("agent")

# 条件边:根据最后一条消息决定去哪
g.add_conditional_edges("agent", should_continue, {"tools": "tools", END: END})
g.add_edge("tools", "agent")     # 工具执行完,回到 agent

app = g.compile(checkpointer=MemorySaver())

add_edge("tools", "agent") 这一行,就是「循环」的来源——工具执行完必须回到思考节点,否则 Agent 只会调一次工具就结束。

二、循环必须有个刹车

上面那段代码有个隐患:如果模型一直觉得「还得再调一个工具」,图会无限转下去。

两个刹车,建议都加:

app = g.compile(checkpointer=MemorySaver())

result = app.invoke(
    {"messages": [("user", "帮我查下订单 12345 的物流")]},
    config={"recursion_limit": 25},        # 刹车一:最大步数
)

刹车二是节点里的显式判断:

def should_continue(state: AgentState):
    if state["steps"] >= 10:
        return END
    last = state["messages"][-1]
    return "tools" if getattr(last, "tool_calls", None) else END

recursion_limit 是兜底,节点判断是业务逻辑。只加一个都不够——前者会抛异常,后者可能因为模型输出格式怪而失效。

三、Checkpointer: Agent 最值钱的功能

这是 LangGraph 相比手写 while 循环最大的优势:它把每一步状态都存下来了。

from langgraph.checkpoint.memory import MemorySaver

app = g.compile(checkpointer=MemorySaver())

config = {"configurable": {"thread_id": "user-42-session-1"}}
app.invoke({"messages": [("user", "帮我订明天去上海的机票")]}, config)

有了 thread_id,能力就出来了:

断点续跑。 用户第二天回来接着聊,从上次的状态继续,不用重放历史。

人工介入。 涉及付款、删数据这类操作,可以在图里插一个 interrupt,等人工确认后再继续:

from langgraph.types import interrupt

def confirm_node(state):
    decision = interrupt({"ask": "确认下单?", "order": state["draft"]})
    return {"approved": decision == "yes"}

这不是「锦上添花」的功能,这是 Agent 能不能上生产的分界线。 一个没法中断、没法恢复、出错只能从头再来的 Agent,业务方不敢用。

生产环境把 MemorySaver 换成 SqliteSaver 或 PostgresSaver,接口完全一样。

四、Tool 定义:docstring 是写给模型看的

from langchain_core.tools import tool

@tool
def query_logistics(order_id: str) -> str:
    """按订单号查询物流轨迹。

    Args:
        order_id: 订单号,纯数字,例如 1234567890
    """
    return api.get(f"/logistics/{order_id}")

@tool 装饰器做的事,是把函数签名和 docstring 转成 JSON Schema,塞进模型的工具列表。

所以那句 docstring 不是注释,是 prompt。写「查询物流」和写「按订单号查询物流轨迹,order_id 必须是纯数字」,模型的调用准确率能差出一截。

三个写法建议:

  1. 参数说明里给例子(模型会照着例子格式化参数)
  2. 明确写「什么时候不该用」,减少误调
  3. 返回结构化字符串(JSON 或 markdown 表格),别返回 str(dict)

五、从本地脚本到服务

app.invoke() 跑通,只完成了 30%。剩下 70% 是「怎么让别人调用」。

LangGraph 自带一条服务化路径:

pip install "langgraph-cli[inmem]"
langgraph dev

它会读 langgraph.json,把图注册成 HTTP 服务,同时起一个调试界面。前端直接用标准接口调,流式、状态查询、中断恢复都现成。

在这里插入图片描述

上面这张是这套课的第五章目录,从「LangGraph 是什么」到「Tool 的定义」,基本就是这条落地路径的完整顺序——先跑通本地服务,再调 API,最后才是接工具。这个顺序别颠倒,很多人一上来就写 Tool,结果连服务都起不来。

六、三个上线必踩的坑

坑一:State 里塞了不可序列化的对象。
数据库连接、模型客户端、锁对象,全都不能进 State。因为 Checkpointer 要把它序列化存库。做法是用 config 传,或者放进闭包。

坑二:工具报错直接把图打挂。
一个工具 500,整条链抛异常。正确做法是在 ToolNode 外层包一个 try,把错误信息作为工具结果返回给模型——让模型知道「这个工具挂了」,它才有机会换个方式。

坑三:流式输出接不上。
LangGraph 的流式有好几种模式(values / updates / messages),前端要的是 token 级,必须用 stream_mode="messages"。用错模式,你会看到整段结果一次性弹出来。

for chunk, meta in app.stream(inputs, config, stream_mode="messages"):
    yield chunk.content

最后

LangGraph 的心智模型其实特别朴素:

把 Agent 当成一个状态机,State 是内存,Node 是动作,Edge 是规则。

想清楚这三样,代码量比手写 while 循环还少,但多了断点、中断、可观测这些「生产才需要」的东西。

这也是为什么现在做 Agent 的项目,基本都在往这个方向迁。


这套东西我是跟着一套 LangChain + LangGraph + MCP 的实战课从头跑了一遍,七章内容,LangGraph 这一章就有九个课时,从装本地服务到工具定义全走了一遍。笔记和工程代码我都存下来了。

想要这套 LangGraph 笔记 + 可跑工程的,扫码加我,备注「LangGraph」👇
在这里插入图片描述

LangChain、LangGraph、RAG与MCP:一条链路讲透Agent应用开发 在AI应用开发中,组件化思维是降低复杂度的关键。LangChain提供标准化组件封装LLM调用、提示词与工具接口;LangGraph以图结构管理有状态、可循环的Agent流程;RAG通过外部知识检索增强模型回答的时效性与准确性;而Agentic RAG与MCP进一步推动自主决策与统一工具接入的工程化落地。理解这些技术的分层关系与协作方式,是从简单问答走向生产级多智能体应用的必经之路。本文将沿着一条真实可运行的代码链路,依次解析每个环节的核心原理、工程价值与典型应用场景,帮助开发者快速建立从检索增强到工具调用 阅读详情

相关推荐

AI Agent企业级落地指南:LangGraph、RAG与Agent Skills核心实践

AI Agent是能感知环境、自主决策并执行动作的智能体系统,其核心不是单次问答,而是由感知、规划、调用工具、检查结果构成的闭环循环。企业级落地时,Agent需要借助LangGraph这类状态编排框架来管理流程分支与循环,通过RAG知识库为模型补充业务记忆,再以Agent Skills将工具封装为可复用的能力单元,最终用Prompt工程约束模型行为边界。这些技术并非并列选项,而是分别处于流程层、知识层、工具层和表达层,协同工作才能交付稳定可运维的系统。从电商售后的技能封装到内部知识库的混合检索,Agent正

weixin_34211761的博客 322

LangGraph从零构建生产级 AI Agent 平台的递进式学习项目

本文介绍了《LangGraph 实战系列》的整体学习路线与项目规划,涵盖 LangGraph 基础、Tool Calling、Memory、Reasoning Agent、Multi-Agent 及生产级 AI Agent 平台构建,帮助开发者从原理到工程化系统掌握 AI Workflow 与 Agent 编排能力。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 3万+

Agent工具选型与上手路径:从Coze到LangGraph实战对比

Agent是由大模型驱动的智能体,它通过拆解目标、调用工具、查询知识库并编排逻辑,自主完成复杂任务。理解Agent的核心在于区分能力形态与交付方式:平台(如Coze、Dify、FastGPT)通过可视化界面降低搭建门槛,框架(如LangGraph、AgentScope、MetaGPT)则以代码提供更强的控制力。这种差异决定了工具选型必须基于任务边界——是快速交付一个带知识库的客服机器人,还是构建可编程的API服务。从零代码路径出发,Dify可快速实现RAG知识库问答;而代码路径则可通过LangGraph编写

weixin_30247307的博客 443

LangGraph核心机制与多智能体架构:从Demo到企业级Agent落地

在Agent开发中,工作流引擎与状态机是保障复杂任务可控性的基石。传统ReAct循环难以处理重试、并行与人工审批等企业级诉求,而LangGraph以图执行引擎为核心,将模型决策嵌入显式流程,使Agent具备状态传递、条件路由和故障恢复能力。通过剖析State、Node、Edge机制,对比其与LangChain的分工,并延伸到多智能体架构,阐述动态并行、共享状态隔离及企业落地的工程细节。无论你是初学者还是架构师,理解这套工作流编排思想,都能让你的Agent从Demo走向生产级系统。

weixin_33794672的博客 392

AI Agent企业落地实战:从LangGraph编排到RAG与Prompt工程

AI Agent正从概念验证走向企业生产环境,其核心不再是简单的模型调用,而是可编排、有状态、能检索、可管控的工作流系统。LangGraph作为流程编排引擎,将对话、检索、工具调用等步骤组织成状态机,实现复杂业务逻辑的确定性控制;RAG则从静态检索升级为Agentic RAG,让Agent自主决策检索方式与时机,并结合Ontology增强语义关系理解;Prompt作为Agent的“控制面”,系统提示词与运行时提示词共同定义行为边界与任务执行规范。Agent Skills进一步将原子能力封装复用,形成清晰可控

weixin_34224941的博客 396

RAG与Agent实战:Langchain/Langgraph工程落地指南

大模型应用开发正从单轮问答走向复杂任务编排。RAG通过检索增强生成,让模型在回答前先查询私有知识库,从根本上缓解了知识缺失与幻觉问题;Agent则进一步将模型封装为具备工具调用能力的决策主体,可执行多步骤操作。Langchain提供标准化的组件封装,使开发者能够快速搭建从文档加载、向量化到检索生成的链路;Langgraph则在复杂流程控制上提供图式编排能力。两者结合,构成了知识型Agent的主流技术骨架。实际落地时,初学阶段适合从RAG知识库切入,逐步掌握切块、重排、工具调用等关键工程细节,再向多工具协同、

weixin_33859231的博客 367

LangChain+LangGraph:从Demo到生产级AI Agent的完整路线图

在AI应用开发中,AI Agent正从概念验证走向生产落地,而稳定可控的流程编排成为关键挑战。以LangChain为代表的工具集解决了模型调用、Prompt管理、工具封装等基础问题,但面对多步骤、有状态、需异常恢复的复杂业务场景,传统链式结构难以胜任。LangGraph基于图执行框架引入了状态机与条件路由,让节点流转、循环重试、人工介入等能力成为原生特性,从而将Agent的“自由发挥”约束在可控边界内。这一组合广泛适用于知识库问答、自动化运维、订单处理等企业级场景,从单Agent原型到多Agent协作与人工

weixin_34074740的博客 321

LangChain与LangGraph实战:Agent+RAG企业级应用开发主线

大模型应用开发中,LangChain与LangGraph是常被提及的两大框架。LangChain负责组件生态,LangGraph负责流程编排,两者相互配合,能构建出可维护的智能体工作流。RAG通过向量检索增强模型的知识来源,Agent则赋予应用自主调用工具与决策的能力。无论是企业知识库问答、客服工单处理,还是自动化流程执行,这套技术栈都已成为落地大模型应用的核心支撑。文章从基础模型调用讲起,逐步拆解RAG完整链路、Agent设计思路、LangGraph状态图编排,以及API封装、评测监控等工程化方法,帮助开

weixin_30247781的博客 601

LangGraph工作流:小团队如何把Agent从Demo变成能上线的系统

最近接了几个小团队的Agent项目咨询,发现一个普遍问题:Demo跑通很容易,但一到生产环境就翻车。翻车的点往往不是模型能力,而是权限控制、日志追踪和流程可观测性。LangGraph作为图工作流框架,能帮我们构建可控的Agent系统,但怎么用、用到什么程度,需要结合实际资源做取舍。这篇文章复盘我最近一个项目的实践,聊聊小团队如何用LangGraph把Agent从脚本变成能上线的系统,以及哪些地方该精简、哪些地方不能省。

2601_96285276的博客 319

LangChain+LangGraph开发实战:从0到1打造企业级Agent

大模型应用正从单次问答走向复杂任务自动化,智能体(Agent)编排成为关键能力。LangChain 组件化串联提示词、检索与工具,LangGraph 以状态化图实现分支、循环和人工审批,两者结合能构建可靠的企业级 AI 流程。聚焦 RAG、多 Agent 协作、API 暴露与批量任务等实践,从最小可运行示例到完整项目架构,系统梳理状态设计、节点划分、工具注册和异常排查方法,帮助开发者避开常见陷阱,掌握可落地的 Agent 开发路径。

weixin_33798152的博客 1193

LangChain、LangGraph与MCP实战:构建有状态Agent的完整指南

在AI应用开发中,理解LangChain、LangGraph与MCP的关系是构建智能Agent的基础。LangChain提供丰富的工具组件,LangGraph通过图编排实现有状态、可恢复的工作流,而MCP则统一了外部工具的接入标准。本文从概念到原理,解析三者在Agent循环中的角色,并通过天气查询与计算工具的实战示例,展示如何组合使用它们实现工具调用、记忆管理和状态控制。无论你是初学者还是工程化开发者,都能从中获得从Demo到生产环境的清晰路径。

weixin_33912246的博客 339

RAG、Agent、LangChain是一条流水线:从入门到落地的正确学习路径

在LLM应用开发中,RAG、Agent与LangChain常被并列提及,但本质上它们构成一条完整的技术链路:RAG解决模型如何获取私有知识,Agent实现模型自主决策与工具调用,LangChain/LangGraph则负责将前两者编排成可维护的工程系统。理解这条递进关系,比盲目堆叠框架更关键。本文从RAG的基础检索增强原理出发,逐步拆解Agent的决策循环与工具定义,再对比LangChain与LangGraph的状态管理差异,最后落到实际项目中的工程化能力,如日志、评估集与异常恢复。面对铺天盖地的Agent

weixin_33965305的博客 379

LangChain与LangGraph实战:从RAG到智能体的完整开发路径

在构建AI应用时,理解核心框架的分工与协作至关重要。LangChain作为一个标准化组件库,通过提供预封装的模型接口、文档加载器和向量数据库连接器等“零件”,简化了RAG(检索增强生成)等流水线的搭建。其声明式的链式组装方式,让开发者能快速构建从文档处理到答案生成的完整流程,极大提升了开发效率。而LangGraph则专注于解决智能体(Agent)的复杂工作流问题,它通过图(Graph)和状态(State)模型,支持带循环、条件分支的动态决策流程,是实现具备长期记忆和自主决策能力智能体的关键技术。两者的结合,

weixin_34198762的博客 397

LangChain、MCP、LangGraph与Agent:从概念到实战的完整组合指南

在AI大模型应用开发中,Agent并非一个独立框架,而是一种基于模型决策与工具调用的循环工作模式。LangChain负责将模型、提示词、记忆等组件连接成可运行的应用,MCP作为标准化协议统一外部工具与数据接入方式,LangGraph则通过状态图将Agent的复杂决策流程变为可编排、可恢复的生产级流程。理解三者的层级关系,是搭建真实AI Agent项目的关键。本文从环境准备出发,依次演示最小ReAct循环、MCP服务接入、LangGraph状态编排,再到批量任务与异常排查,完整覆盖Agent从演示到落地的技术

weixin_34226182的博客 356

2026年AI Agent开发实战路径:LangGraph+CrewAI+AutoGen工程落地指南

AI Agent是面向复杂业务流程的智能调度系统,其核心在于状态管理、多角色协同与异步决策编排。原理上依赖Python作为胶水层与状态容器,LangGraph提供有状态工作流建模能力,CrewAI实现角色契约化协作,AutoGen支撑多Agent协商机制。技术价值体现在将SOP转化为可执行、可监控、可迭代的生产级流程,显著提升客服、售后、合规等场景的自动化深度与稳定性。典型应用场景包括电商退货自动处理、跨境SaaS定制Agent交付、金融风控联合决策等。本实践指南聚焦真实业务链路拆解、环境兼容性优化与生产级

weixin_34033624的博客 519

2026 AI Agent开发实操路径:Python+LangGraph工程落地指南

AI Agent已从概念走向生产系统,其本质是可编排、可观测、可运维的状态化工作流。理解Agent需回归基础:以Python为运行时底座,用状态机(如LangGraph)建模任务流转,通过工具调用与记忆管理实现闭环能力。技术价值在于将非结构化意图转化为确定性业务动作——如邮件解析→CRM查询→话术生成→消息推送。典型应用场景覆盖智能客服、销售线索分配、合同协同审核等企业级流程。本文聚焦真实项目验证的工程路径,深度融合Python异步编程、TypedDict状态建模、LangGraph条件路由与检查点机制,直

weixin_34284188的博客 260

AI Agent开发实战:从RAG到LangGraph的完整学习路线

大模型应用开发中,如何构建一个可落地、可验证的AI Agent是开发者关注的核心问题。Agent并非简单的对话机器人,而是具备决策循环、工具调用与状态管理的智能系统。RAG(检索增强生成)作为基础能力,让模型能够基于私有知识库生成可溯源的回答;而LangGraph通过图结构编排节点与条件路由,赋予Agent处理复杂分支和循环任务的能力。这样的系统在知识库问答、日志分析、私有化部署等场景中具有明确的工程价值。对于资源有限的开发者,借助开源技术栈和量化模型,配合规范的调优与对齐手段,完全可以在普通硬件上跑通一条

weixin_30567225的博客 400

ESP32搭配FT6236触摸屏:从芯片手册到完整I2C驱动代码的保姆级解析

本文详细解析了ESP32搭配FT6236触摸屏的I2C驱动开发过程,从芯片手册解读到完整代码实现。通过硬件架构分析、寄存器配置、I2C通信封装及触摸数据处理等步骤,提供了一套完整的驱动解决方案,帮助开发者快速掌握ESP32与触摸屏的交互技术。

weixin_29174385的博客 291

让 AI 查订单、查库存、发消息:Spring AI 自定义工具(Tool)实战与工具描述工程

本文详解Spring AI 2.0中如何将Spring Bean方法通过@Tool注解暴露为AI可调用工具,核心在于“描述工程”——工具名需见名知义,描述要具体清晰,参数须注明格式与范围。强调错误应返回结果而非抛异常,敏感操作需人工兜底。针对海量工具场景,推荐使用检索式注册。结合实战案例与踩坑指南,提供从注册、描述到容错的完整方法论,助力高效构建可信赖的AI工具链。

weixin_43128865的博客 282

从零到一:Abaqus与Matlab联合仿真的自动化流程构建指南

本文详细介绍了如何构建Abaqus与Matlab联合仿真的自动化流程,涵盖基础架构设计、关键接口技术实现、结果提取与处理技术以及高级参数化优化流程。通过Python脚本作为桥梁,实现数据传递和任务控制,帮助工程师提升仿真效率。特别强调了版本兼容性、异常处理和性能监控等实用技巧。

weixin_29090089的博客 609

测试dali协议的软件,DALI2.0和DALI1.0完美兼容同一个模块,测试每项可过协议

DALI2.0和DALI1.0完美兼容同一个模块,测试每项可过协议深圳聚积智能 夏先生 13246760327 QQ 349098308■IEC62386-102(V2.0)通过测试内容IEC62386-102/2.1/Test preambleIEC62386-102/3.1/Polarity testIEC62386-102/3.2/Maximum and minimum system v...

weixin_35343788的博客 1349
上一篇: 多模态 RAG 的真正难点:图片到底怎么进向量库
下一篇: MCP 不是「又一个插件协议」:它把工具适配从 N×M 降到了 N+M
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值