Tool Node:如何把外部工具接入 LangGraph

LangChain、LangGraph与MCP协同构建AI Agent工具调用链路 在AI大模型应用开发中,Agent的稳定执行依赖清晰的任务编排与工具集成。LangChain作为组件集成框架,统一了模型、提示词和工具的接口;LangGraph通过有向图实现有状态、可中断的流程编排,让动态循环决策可控;MCP则以标准协议打通外部工具接入壁垒。三者各司其职,共同构成Agent从模型推理到工具调用的完整链路。无论是构建智能客服、RAG应用,还是自动化运维流程,掌握它们如何协作,是落地生产级Agent的关键。本文从最小案例出发,演示基于LangGraph搭建可调用内置工具的Agent,并通过MC 阅读详情

上一篇文章里,我们讨论了 Reducer。

一个重要结论是:

多个节点更新 State 时,必须有清晰的合并规则,否则状态会乱。

但 Agent 真正变得强大,不只是会改 State。

它还要会调用工具。

比如:

查数据库
调用搜索接口
读写文件
请求内部服务
触发工作流

这就涉及 Tool Node。

这篇文章讨论:

LangGraph 里怎么把外部工具接入图流程?

为什么工具调用很重要?

如果 Agent 只能回答模型本身“记得的内容”,那它的能力就很有限。

真实业务里,很多问题都需要外部工具支持。

比如:

查订单状态
看库存
查用户资料
查知识库
生成报表
执行审批
读取文件
写入系统

Agent 的价值,很大一部分就是把这些工具串起来。

所以 Tool Node 是 Agent Workflow 的关键能力之一。

Tool Node 的基本作用

Tool Node 可以理解为图里的工具执行节点。

它通常负责:

接收工具调用请求
校验参数
执行工具
记录结果
把结果写回 State

例如:

模型决定要查订单
↓
Tool Node 调用订单服务
↓
把订单结果写回 State
↓
后续节点基于结果继续处理

这样工具就进入了图流程,而不是散落在业务代码里。

工具调用不要只看“能不能调”

很多人一开始接工具,只想着:

模型能不能调用成功?
接口能不能返回?

但工程上真正重要的是:

参数对不对
权限够不够
结果是否可信
失败怎么处理
超时怎么处理
重试怎么处理

工具调用不是简单的函数调用。

它往往涉及真实业务系统。

所以必须把它当成一个受控步骤,而不是任意执行的动作。

Tool Node 要有明确输入输出

和普通 Node 一样,Tool Node 也应该有清楚边界。

输入通常包括:

工具名称
工具参数
当前用户上下文
租户或权限信息

输出通常包括:

tool_result
tool_status
tool_error
tool_latency

这样后面的节点才能知道工具是否成功、结果是否可用、是否需要重试。

工具参数一定要校验

这是非常重要的一点。

Agent 生成的工具参数不一定可靠。

比如模型可能:

传错字段名
传错类型
漏掉必填参数
生成不存在的 ID

所以 Tool Node 必须做参数校验。

不要直接把模型输出原样丢给真实系统。

尤其是涉及:

写数据库
删除数据
发通知
执行审批
修改配置

这类高风险操作时,校验尤其重要。

工具调用要考虑失败路径

真实工具一定会失败。

常见情况包括:

超时
接口返回错误
网络失败
权限不足
参数错误
依赖服务不可用

所以 Tool Node 不能只设计成功路径。

还要设计失败后的图流程。

比如:

Tool 调用失败
↓
判断是否可重试
├─ 可重试:重试
└─ 不可重试:切换备用工具或转人工

这类设计比“调用失败就报错”更符合 Agent 场景。

工具结果应该回写到 State

Tool Node 执行完后,不只是返回一个值给下一步。

更重要的是把关键结果写回 State。

比如:

tool_result
tool_status
tool_error
attempt_count
last_tool_name

这样后面的节点可以根据状态继续判断。

如果只把结果局部传递,流程一复杂就很难追踪。

Tool Node 和权限控制有关

工具调用不是完全自由的。

有些工具只能某些角色调用。

有些工具在某些租户下不可用。

有些操作需要人工确认。

比如:

查询类工具可以直接调用
写入类工具需要审批
删除类工具必须双重确认
跨租户工具不能执行

所以 Tool Node 往往要结合权限层一起设计。

不能让模型决定一切。

工具是否可调用,应该由系统规则约束。

Tool Node 适合和 Conditional Edge 配合

工具节点通常不会单独存在。

它常常和条件边配合使用。

比如:

判断是否需要工具
├─ 不需要:直接回答
└─ 需要:进入 Tool Node
         ↓
       判断工具结果
       ├─ 成功:继续
       └─ 失败:重试或转人工

这会让工具调用和流程控制分离。

模型负责提出动作。

图结构负责控制动作是否执行、执行后去哪。

常见误区

第一个误区,是把工具当作普通函数直接暴露给模型。

这样风险太高。

第二个误区,是不做参数校验。

模型输出不能直接等于真实请求。

第三个误区,是工具调用失败后没有兜底。

真实系统必须考虑失败路径。

第四个误区,是工具结果不回写 State。

这样后续节点就没有上下文。

第五个误区,是所有工具都能被模型自由调用。

权限边界必须由系统控制。

总结

Tool Node 的价值,是把外部工具纳入 Agent Workflow。

它让模型不只是会说,还能去查、去算、去执行。

但工具调用不能失控。

必须考虑:

参数校验
权限边界
失败路径
重试策略
结果回写

只有把工具调用做成图里的受控节点,Agent 才更像一个可靠系统,而不只是一个会说话的模型。

下一篇文章,可以继续讨论 Human-in-the-loop。

因为不是所有工具调用都应该自动执行,有些操作必须留给人来确认。

LangChain、LangGraph与MCP实战:构建企业级AI Agent AI Agent作为一种软件设计模式,正逐步改变大模型应用的传统交互方式,其核心在于让模型具备自主决策与多步任务执行能力。围绕这一模式,LangChain提供了丰富的组件工具,LangGraph则引入状态化图编排机制,解决了复杂流程中的状态流转与条件路由问题。而MCP协议的出现,进一步统一了大模型应用与外部工具、数据源的连接标准,大幅降低了系统集成成本。当这三者结合时,开发者可以构建出具备工具调用、记忆持久化和长期记忆能力的稳定智能体系统,广泛应用于企业知识库查询、订单处理、智能客服等场景。本文从基础概念到 阅读详情

相关推荐

LangChain与LangGraph实战:从零构建AI Agent智能体

大语言模型应用开发正从简单的问答走向复杂智能体编排。LangChain作为主流开发框架,提供了模型调用、提示词模板等基础能力,而LangGraph以状态图为核心,支持分支、循环和条件路由,成为构建AI Agent的关键技术。本文从LangChain基础用法讲起,深入解析LangGraph的节点、边与条件边机制,并结合Python代码演示一个完整的Agent工具调用闭环。同时介绍MCP协议如何标准化外部工具接入,以及Memory记忆机制如何让智能体具备短期与长期记忆。无论你是刚入门的新手,还是想落地Agent

weixin_33912246的博客 429

LangChain+LangGraph实战:从环境配置到MCP接入与记忆管理

构建生产级AI Agent,需要将模型、工具、记忆与流程控制有机整合。LangChain作为组件库,统一了模型接入、提示词与工具调用;LangGraph作为状态工作流引擎,通过节点、边与条件路由实现任务拆解、循环与并行。MCP协议则标准化了外部工具接入,让模型能动态调用文件、数据库等能力。而Memory机制负责短期上下文与长期状态,确保多轮对话和任务恢复。理解这些技术的关系与边界,是设计稳定Agent的前提。在实际工程中,从环境配置、最小图运行到Agent循环、工具接入与排查链路,每一步都有迹可循。本文以实

weixin_32247165的博客 258

LangGraph与MCP集成:构建可控的AI Agent编排工作流

在AI Agent开发中,工作流编排与工具接入是两大核心挑战。LangGraph通过状态图建模,将Agent的每一步抽象为节点和边,实现循环、条件分支与状态管理;而MCP(模型上下文协议)则标准化了外部工具、数据源的接入方式。理解LangGraph的状态流转机制与MCP协议交互原理,有助于构建复杂、可维护的Agent应用。本文结合LangGraph与MCP,探讨如何利用LangChain生态构建ReAct Agent,实现多轮工具调用、动态路由和持久化会话记忆,并针对循环检测、人类审批、状态快照等生产场景给

weixin_33755557的博客 397

LangGraph构建你的第一个 Tool Agent:从零理解 ReAct 循环

从一个“多步工具调用”问题切入,讲解ReAct Agent核心机制:LLM如何在推理、行动、观察之间循环,直到任务完成。以LangGraph拆解create_react_agent背后的实现原理,说明为什么仅靠agent节点、tools节点和一条条件边,就能构建出可自主决策的Tool Agent。同时结合Demo展示工具定义、状态管理、ToolMessage回写、路由判断和最大迭代限制等关键细节,并总结无限循环、工具误选、消息链丢失等常见问题及工程化解决方案,帮助读者从原理到实践掌握ReAct循环。

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

LangGraph实战指南:State、Node与Edge的生产级应用

LangGraph是一种面向真实业务场景的AI Agent流程编排框架,其核心在于以状态(State)为驱动、节点(Node)为执行单元、边(Edge)为条件路由,构建可追溯、可调试、可扩展的图结构工作流。区别于线性Chain,LangGraph天然支持循环、分支、中断与状态累积,特别适用于客服分派、合规审计、跨系统协作等复杂决策场景。本文聚焦State类型化设计(如Annotated+Reducer)、Node增量更新范式、Conditional Edge动态路由机制,以及SQLite/PostgreSQ

weixin_33847182的博客 408

LangChain、LangGraph、RAG与MCP:一条链路讲透Agent应用开发

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

weixin_34372728的博客 984

利用 Tool-Calling 增强 LangGraph

我们借助 LangGraph 框架、基于 DeepSeek 模型的驱动、通过多个节点的协作,快速搭建起了一个智能编辑 Agent,并且帮我们生成了一篇完整的文章,整体流程还是比较清晰的。

xx_nm98的博客 1164

OpenBCI脑电数据处理实战:用MNE库从Raw对象到可视化分析全流程

本文提供了使用MNE-Python库处理OpenBCI脑电数据的完整实战指南。从通过BrainFlow库获取原始数据流、创建核心的Raw对象,到进行工频滤波、带通滤波等关键预处理步骤,最后实现时域信号、功率谱密度及地形图等多种专业可视化分析,手把手教你完成脑机接口数据处理的全流程。

gin88的博客 367

一文详解LangGraph工具集成,让AI Agent调用外部工具

在LangGraph中实现工具调用,主要围绕着以下三个核心概念。理解了它们,可以帮助我们掌握通过 LangGraph 实现 Agent 的工具集成。🛠️工具定义-@tool 装饰器:任何一个Python函数,只要用@tool装饰器包装,即可成为 Agent 可以调用的工具。@tool 装饰器清晰地定义了工具的名称、功能描述和输入输出,LLM会依据这些信息来决定何时以及如何使用它。🚀工具执行 ToolExecutor:可以把它想象成一个“工具箱”或者“总开关”。

m0_56255097的博客 1332

地平线旭日X3派(RDK X3)从开箱到联网:新手避坑指南

本文为地平线旭日X3派(RDK X3)新手提供从开箱到联网的完整避坑指南。详细讲解了硬件识别、系统镜像烧录、串口调试(波特率921600)、有线/无线网络配置以及SSH/VNC远程访问等关键步骤,帮助开发者快速搭建稳定的开发环境,为后续AI应用部署扫清障碍。

weixin_29174385的博客 926

Redis中什么是Big Key(大key)问题?如何解决Big Key问题?

通俗易懂的讲,Big Key就是某个key对应的value很大,占用的redis空间很大,本质上是大value问题。key往往是程序可以自行设置的,value往往不受程序控制,因此可能导致value很大。redis中这些Big Key对应的value值很大,在序列化/反序列化过程中花费的时间很大,因此当我们操作Big Key时,通常比较耗时,这就可能导致redis发生阻塞,从而降低redis性能。用几个实际的例子对大Key的特征进行描述:● 一个String类型的Key,它的值为5MB(数据过大); ● 一

weixiaohuai的博客 3万+

LangGraph 中的 Tool Calling Agent:从原理到实战

Tool Calling Agent 是一种基于大语言模型的智能体,它在推理过程中能够识别需要外部工具协助的步骤,并生成结构化的调用请求。模型根据用户输入判断是否需要调用工具;如果需要,则输出包含工具名称和参数的结构化请求;外部系统执行对应工具并返回结果;模型结合工具结果生成最终回复。LangGraph 将上述流程建模为一张有向图,节点表示“模型推理”“工具执行”等步骤,边表示状态流转,从而让开发者可以精确控制 Agent 的行为。@tool"""查询指定城市的天气情况。"""

2303_76774094的博客 170

【安装文档】TRex流量分析仪保姆级安装指南--基于VMware虚拟机(ubantu18.04@Intel 82545EM

如果之前添加了网卡,这里就可以看见有3个网卡(没添加的现在再加也行),* Active *为Linux内核正在使用的网卡,另外两张是未启用的网卡(注:未启用的网卡在终端中使用ifconfig命令是查不到的,需要先使用ip addr找出网卡,再激活,此时网卡会变为* Active *状态。

lingshengxiyou的博客 2130

LangGraph 实战:从零构建一个 Tool Calling Agent

Tool Calling Agent 是一种能够根据用户意图自主决定是否调用外部工具、并基于工具返回结果继续推理的智能体。它不同于简单的“模型生成文本”,而是形成了一个“思考—调用—观察—再思考”的循环。大语言模型(LLM):负责理解用户意图、决定调用哪个工具、解析工具结果。工具集合(Tools):对外部能力(如搜索、计算、数据库查询)的封装,每个工具都有明确的名称、描述和参数 schema。循环控制(Loop):模型在“需要调用工具”和“可以直接回答”之间反复切换,直到收敛。

li263302065的博客 350

深入解析ACS SPiiPlus运动控制器的托管API架构与实战应用

本文深入解析了ACS SPiiPlus运动控制器的托管API架构,详细介绍了其核心模块、设计哲学与实战应用。通过C#/.NET封装的托管接口,开发者能够高效实现多轴协同运动控制、EtherCAT总线集成以及事件驱动的异步编程,显著提升高精度工业自动化设备的开发效率与系统稳定性。

jwt8token的博客 861

activemq_CVE-2015-5254_漏洞复现_源码分析

ActiveMQ-CVE-2015-5254

qq_51550750的博客 939

AI Agent学习 Day14:LangGraph进阶 —— 条件分支、Tool Node与Memory持久化

A↓B表示:A执行完成后,一定进入B。Router/ \表示:根据条件选择不同节点。作用:根据状态选择不同执行路径。解决:Agent决策问题。Day14学习的是 LangGraph 从“固定流程”到“智能流程”的升级。通过:Tool NodeLoop AgentMemory持久化判断↓选择↓执行↓保存Day15:Multi-Agent多智能体系统学习:Agent之间通信多角色协作架构构建更加接近企业应用的 Agent 系统。

Dave1205的博客 260

【寄存器模型】二、前门访问与后门访问

1.后门访问可以更好的完成前门访问能够完成的事情:后门访问不消耗仿真时间,且消耗的运行时间也远小于前门访问的运行时间。 2.后门访问可以完成前门访问不能完成的事:对于某些特定的场景,如网络通信系统中的一些只读计数器,当要验证计数器进位归零的场景时,前门访问无法完成写寄存器操作,只能通过消耗仿真时间来使计数器到达特定的计数值。而后门访问可以直接对只读寄存器赋一个初值......

carrotbanana的博客 9656

LangChain/LangGraph中AI Agent工具(Tool)设计与工程落地实践

AI Agent的核心能力不在于推理,而在于与真实世界交互——这依赖于标准化的工具(Tool)机制。Tool本质是将外部系统调用契约化:通过结构化元信息(name/description/args_schema)弥合LLM文本生成与确定性执行之间的鸿沟;借助Pydantic参数校验和显式副作用声明保障安全;再经由异步封装、超时控制、重试降级与人工确认等工程策略实现高可用。它广泛应用于智能投顾、电商订单查询、库存管理、自动化运维等需连接数据库、API、本地文件或设备的业务场景。本文聚焦LangChain与La

weixin_33795806的博客 330

第10章《VTK自定义部件Widget》

是用于交互式操作 3D 场景的组件,例如移动对象、调整尺寸、创建标注等。VTK 提供了一些内置的 Widget,如。,用户可以点击鼠标,在 3D 场景中放置一个点。负责绘制一个点,并控制其颜色、大小等。,可用于 3D 标注、对象拾取等应用!等,但在某些应用中,我们需要。这样,我们就创建了一个。

yumeiguo的博客 523

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

LangGraph Node底层逻辑教程(非常详细),从入门到精通,看这篇就够了!

本章的目标,是让你像手握画笔的艺术家一样,看懂每一个节点的本质、分类与设计技巧,用最具表现力的方式构建你的智能代理。而作为一个在项目里踩过坑的开发者,我愿意分享这些经验——毕竟,代码写得越久,越需要笑声来调剂。

weixin_58753619的博客 407

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

LangGraph状态机思维:用Node与Edge构建可维护Agent

状态机是一种将复杂行为建模为‘当前状态+输入→新状态+动作’的通用计算范式,其核心在于显式管理状态流转与确定性决策。在大模型Agent开发中,LangGraph通过Node(状态处理器)和Edge(条件路由)将这一原理工程化落地,赋予Agent错误恢复、并发安全、可调试与可持久化等关键能力。相比传统链式调用,状态机思维让多轮对话、动态工具切换、异步中断恢复等高阶场景变得结构清晰、逻辑可溯、变更可控。本文以天气查询Agent为例,详解如何用LangGraph实现带降级策略的健壮状态流。

cnvdkx2837的博客 416

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Serverless Framework + Bedrock AgentCore Gateway 实战:将 Lambda 函数作为 MCP 工具接入 LangGraph JS Agent

本篇文章基于 Serverless Framework 仓库中 `bedrock-agentcore` 插件的 JavaScript 示例 [langgraph-gateway](https://link.gitcode.com/i/379d468c47728634a4a735bc623c3625),完整拆解"如何在 `serverless.yml` 中用 `ai` 顶层配置定义一个以 Lambd

gitblog_00329的博客 375

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

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

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

[ToolNode在LangGraph中的运用-02]工具调用的拦截和异常处理

为了能够在LangGraph中更有效的利用`ToolNode`,我们对它的定义做一个详细的介绍。`ToolNode`继承了`RunnableCallable`,其`name`字段表示节点名称,上面我们将它称为`tools`节点就是因为它的默认值为“tools”。

JaydenAI的博客 714

【LangGraph实战】《LangGraph实战》_22.[第2章 LangGraph框架概览] 节点(Node)详解:智能体的最小执行单元

文章摘要(150字): 本文深入剖析LangGraph中Node的核心概念与正确使用方法。Node并非普通函数,而是遵循"State输入-State补丁输出"契约的执行单元。作者从五个维度展开:1)Node作为状态机的执行契约本质;2)状态通道的共享与合并机制;3)不同封装形式(函数/Runnable/Tool)的选择;4)并发修改状态的潜在风险;5)Node设计应遵循"小而清晰"的原则。文章通过大量代码示例和流程图,揭示了新手常见误区,如错误处理State、忽略并发问题等,并提供了正确实践方案,帮助开发者

389
上一篇: Reducer 是什么?多个节点如何安全更新状态
下一篇: Human-in-the-loop:什么时候需要人工介入
沐泽百川
博客等级 码龄6年 824粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值