深入浅出LangGraph AI Agent智能体开发教程(三)—LangGraph工具调用实战

深入浅出LangGraph AI Agent智能体开发教程(三)—LangGraph工具调用实战

本系列前两篇文章:

  • 深入浅出LangGraph AI Agent智能体开发教程(一)—全面认识LangGraph
  • 深入浅出LangGraph AI Agent智能体开发教程(二)—LangGraph预构建图API快速创建Agent

通过前两篇文章的学习我们了解了LangGraph的核心原理和技术架构,利用LangGraph的预构建图高级API编写了ReAct图,并接入自定义的请求心知天气API工具函数,快速搭建了天气助手智能体。本期内容我们继续围绕LangGraph接入工具函数的案例进行讲解,让大家充分理解LangGraph接入自定义工具、接入LangChain内置工具、多工具并联串联调用和Agent工具调用次数限制等知识点,大家一起来学习吧~

本系列分享是笔者结合自己学习工作中使用LangChain&LangGraph经验倾心编写的,力求帮助大家体系化快速掌握LangChain&LangGraph AI Agent智能体开发的技能!笔者的LangChain系列教程暂时更完,后面也会实时补充工作实践中的额外知识点,建议大家在学习LangGraph分享前先学习LangChain的基本使用技巧。大家感兴趣可以关注笔者掘金账号和系列专栏。更可关注笔者同名微信公众号: 大模型真好玩, 每期分享涉及的代码均可在公众号私信: LangChain智能体开发获得。

上篇文章深入浅出LangGraph AI Agent智能体开发教程(二)—LangGraph预构建图API快速创建Agent我们直观感受到了LangGraph 预构建ReACT图 API 的强大。本小节内容我们还会学习到借助LangGraph React Agent,无需任何额外设置,即可完成多工具串联和并联的调用。

首先在上篇文章的代码中添加将指定内容写入本地文件的工具函数, 该项目代码包含和两个工具函数,分别用来查询天气和保存内容至文件。完整的项目代码如下:


测试ReAct图智能体的工具并联调用,同时查询北京和杭州的天气。从执行结果看,ReAct图智能体同时调用了工具函数分别查询北京和杭州的天气状况,执行流程如下:


2.png

2.png

测试ReAct图智能体的工具串联调用(实则是串并联调用)。在查询北京杭州天气的基础上,将查询结果写入文件中。从执行结果看,ReAct图智能体首先调用函数查询北京和杭州的天气情况,然后调用函数将内容写入文件中。执行流程如下:


5.png

4.png

5.png

对于任何全自动代理,合理控制调用次数都是至关重要的一环,对于LangGraph ReAct Agent来说,我们只需要在Agent运行时设置,即可限制智能体自主执行任务的步数。


上述代码的执行结果如下,可以看到ReAct成功执行并返回了结果:

6.png

但如果我们将参数改为2,执行结果就会报错:

7.png

这是为什么呢?原理其实非常简单,

当我们询问“北京现在的天气如何”问题后,智能体执行流程如下,共需要经过:

  1. 收集用户提示词
  2. 调用大模型确定执行逻辑
  3. 执行查询天气函数并得到结果
  4. 总结函数调用结果并生成回答

可以看到完整的流程至少需要4步,设置为2肯定无法完整执行。

7.png

对于LangGraph智能体来说,除了能够灵活自如自定义工具,还能够接入LangChain丰富的内置工具快速完成智能体的开发。

在 LangChain 框架中,工具是实现语言模型与外部世界交互的关键机制。LangChain提供了大量内置与可扩展的工具接口,使得智能体能够执行函数调用、访问 API、查询搜索引擎、调用数据库等任务,从而超越纯语言生成的能力,真正实现“能行动的智能体”。LangChain 官方文档将这些工具按照其用途进行了模块化划分,涵盖了以下主要类别:

Agent 智能体

功能类别 工具名称 简要说明 🔎 搜索工具 快速搜索实时网络信息 基于 SerpAPI 的搜索结果工具 调用 Google 可编程搜索引擎 🧠 计算工具 执行 Python 表达式并返回结果 结合 LLM 和数学推理能力 基于 Wolfram Alpha 的计算引擎 🗂 数据工具 构建 SQL 数据库查询工具集 用于在 Agent 中操作表格数据 🌐 网络/API / 执行 HTTP 请求 / 自动化网页浏览与抓取 💾 文件处理 读取本地文件内容 写入文本到指定文件中 📚 检索工具 基于向量的文档检索工具 使用 ChromaDB 的检索器 上下文压缩检索器,适合长文档 🧠 LLM 工具 / 使用 OpenAI 模型作为工具调用 Anthropic Claude 模型封装工具 🔧 自定义工具 装饰器 任意函数可封装为 Agent 可调用工具 类继承 自定义更复杂逻辑的工具实现

更具体的工具大家可参考官网python.langchain.com/docs/integr…

这里我们尝试借助LangChain内置的Tavily搜索引擎工具,搭建能够进行网络搜索的智能体。

  1. 首先需要在tavily官网进行注册并获取API-KEY:www.tavily.com/ (注意: 需要科学上网)

9.png

  1. 在我们创建的名为的虚拟环境下执行命令安装内置工具的依赖包。

8.png

  1. 编写代码,导入并快速将其封装为LangGraph智能体工具,原理也是使用api快速创建智能体。

执行结果如下,可以看到ReAct智能体成功调用了搜索引擎搜索到我们需要的内容:

10.png

本期内容分享了LangGraph ReAct智能体接入内部工具函数和自定义工具函数的方法,深入研究了LangGraph多工具的执行模式,并可通过配置项限制LangGraph 智能体的调用次数。大家有在评论区私信笔者:“感觉最近分享的LangGraph 和以前LangChain系列分享中的很相似,有没有一些LangGraph特别的技能技巧分享?”, 笔者分享的初衷是希望大家更快上手LangGraph的使用,也帮助没有看过我们LangChain系列分享的小伙伴能快速学习智能体搭建流程,不过下一期我们要分享一波硬核内容:LangGraph智能体上线部署实战,涉及到LangSmith、LangGraph Sudio、LangGraph cli等全生态应用,大家期待一下吧~ (笔者主打一个听劝)

本系列分享预计会有20节左右的规模,保证大家看完一定能够掌握LangChain&LangGraph的开发能力,大家感兴趣可关注笔者掘金账号和专栏,更可关注笔者的同名微信公众号:大模型真好玩, 本系列分享的全部代码均可在微信公众号私信笔者: LangChain智能体开发 免费获得。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/241683.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 上午12:27
下一篇 2026年3月16日 上午1:31


相关推荐

关注全栈程序员社区公众号