【LangChain V1.0学习】第三课:工具调用初识

发布时间:2026/8/5 22:10:38

【LangChain V1.0学习】第三课:工具调用初识
经过前两节课我们已经学会了如何调用API搭建自己的聊天助手下面我们将继续深入学习LangChain的核心功能—工具调用。一、前期准备1、方法介绍LangChain 1.0 中的工具调用使用的是核心模块langchain.tools它为大型语言模型提供了与现实世界交互的接口。通过工具Tools模型能够执行搜索、计算、数据查询等具体操作从而突破其自身知识库与能力的限制。一个工具主要由以下几部分组成它们共同作用让大语言模型LLM知道“什么时候用”以及“怎么用”名称工具的标识符方便代理Agent快速识别。描述说明工具功能的文本。这是最关键的部分LLM会根据描述判断一个用户请求是否应该调用此工具。参数模式定义了工具输入参数的JSON结构。清晰的模式有助于LLM生成正确的调用参数。执行函数工具被调用时实际运行的核心逻辑代码。返回策略决定工具执行后的结果是直接返回给用户还是继续交给LLM处理。看完简单的理论介绍接下来让我们进入实操阶段。2、工具创建工具创建有三种方式由简到难分别是tool装饰器、使用StructuredTool.from_function方法和继承BaseTool类。特性tool装饰器StructuredTool.from_function继承 BaseTool 类易用性⭐⭐⭐⭐⭐最简单⭐⭐⭐⭐灵活配置⭐⭐最复杂代码量多灵活性⭐⭐⭐基础功能⭐⭐⭐⭐支持异步等⭐⭐⭐⭐⭐完全控制适用场景快速将简单函数转换为工具需要配置异步方法或更多参数需要高度自定义或复杂逻辑方式一tool装饰器创建这是最快速的方法特别适合将现有函数包装成工具。工具的描述默认来自函数的文档字符串docstring因此写好文档字符串非常重要。fromlangchain.toolsimporttooltooldefsearch_database(a:int,b:int)-int:#文档字符串 将两个数字相乘。 Args: a: 第一个数字。 b: 第二个数字。 # 直接返回结果returna*b方式二StructuredTool.from_function方法创建当需要更多控制比如同时定义同步和异步执行方法时这种方式比装饰器更合适。fromlangchain_core.toolsimportStructuredTooldefmultiply(a:int,b:int)-int: 将两个数字相乘。 returna*b# 从函数创建结构化工具multiply_toolStructuredTool.from_function(funcmultiply,nameCalculator,description用于乘法计算)方式三继承 BaseTool 类这种方式提供了最大的控制权允许你完全自定义工具的行为适合构建复杂工具。fromlangchain_core.toolsimportBaseToolfrompydanticimportBaseModel,Field#构建标准化输入 这里的description要写清楚参数的定义描述classCalculatorInput(BaseModel):a:intField(description第一个数字)b:intField(description第二个数字)classCustomCalculatorTool(BaseTool):nameCalculatordescription用于乘法计算args_schemaCalculatorInput return_directTrue# 结果直接返回用户def_run(self,a:int,b:int)-int: 执行工具逻辑 returna*b# 使用工具toolCustomCalculatorTool()resulttool.invoke({a:2,b:3})# 输出 6我们也可以调用官方提供的第三方方法参考此网站 langchain工具我们将在下一届智能体创建中来进行实操的演示

相关新闻

无U盘安装Ubuntu双系统:基于UEFI与GRUB2的本地硬盘引导方案

无U盘安装Ubuntu双系统:基于UEFI与GRUB2的本地硬盘引导方案

2026/8/5 22:10:38

1. 项目概述:告别U盘,解锁双系统安装新姿势 每次想给电脑装个Ubuntu和Windows组成双系统,第一反应是不是找U盘、下载镜像、用Rufus或者Ventoy制作启动盘?这套流程确实经典,但麻烦也不少:手边不一定有闲置的…

HarmonyOS 7 / API 26 包体积治理实战:资源重复、无用文件和构建产物对比一次验清

HarmonyOS 7 / API 26 包体积治理实战:资源重复、无用文件和构建产物对比一次验清

2026/8/5 22:10:38

包体积问题通常不是某一次提交突然造成的,而是每次迭代都多一点资源、多一点依赖、多一点无用文件,最后安装包变得越来越重。上架前才发现包太大,再回头清理就很被动。 这篇按 HarmonyOS 7 / API 26 工程来拆包体积治理。重点不是“删文件”…

cpp-sort实战案例:处理复杂数据排序的10种解决方案

cpp-sort实战案例:处理复杂数据排序的10种解决方案

2026/8/5 22:00:38

cpp-sort实战案例:处理复杂数据排序的10种解决方案 【免费下载链接】cpp-sort Sorting algorithms & related tools for C 项目地址: https://gitcode.com/gh_mirrors/cp/cpp-sort 在C开发中,高效处理复杂数据排序是提升程序性能的关键环节。…

建设部网站首页如何优化用户体验并提升政务透明度与公众信任度:深度解析建设行业门户网站的现代化转型之路

建设部网站首页如何优化用户体验并提升政务透明度与公众信任度:深度解析建设行业门户网站的现代化转型之路

2026/8/5 23:10:40

在数字化浪潮席卷全球的今天,互联网的每一个角落都在发生着翻天覆地的变化。对于普通百姓而言,上网或许只是为了看新闻、聊微信、刷视频,但对于那些身处建筑行业一线的施工员、设计人员,以及那些急需了解政策解读、资质查询、招标信息的企业管理者来说,有一个特定的窗口显…

打破传统:两行代码实现网页AI智能翻译的革命性方案

打破传统:两行代码实现网页AI智能翻译的革命性方案

2026/8/5 23:10:40

打破传统:两行代码实现网页AI智能翻译的革命性方案 【免费下载链接】translate AI i18n, Two lines of js realize automatic html translation. No need to change the page, no language configuration file, no API key, SEO friendly! 项目地址: https://gitc…

Hotkey Detective:终极热键冲突侦探工具,快速找出谁“偷走“了你的快捷键

Hotkey Detective:终极热键冲突侦探工具,快速找出谁“偷走“了你的快捷键

2026/8/5 23:10:40

Hotkey Detective:终极热键冲突侦探工具,快速找出谁"偷走"了你的快捷键 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirr…

Godot 4风格化天空着色器:从原理到实战,打造动态日夜循环

Godot 4风格化天空着色器:从原理到实战,打造动态日夜循环

2026/8/5 23:10:40

1. 项目概述:为什么你需要一个风格化天空?如果你正在用 Godot 4 做独立游戏,尤其是那种追求艺术感而非写实感的项目,比如像素风、低多边形或者卡通渲染风格,那你肯定遇到过天空盒的难题。系统自带的 ProceduralSky 或者…

CTF密码学实战:立方体加密原理与已知明文攻击分析

CTF密码学实战:立方体加密原理与已知明文攻击分析

2026/8/5 23:10:40

1. 项目概述:从一道CTF密码题看立方体加密的实战最近在整理历年CTF比赛的密码学题目时,又翻到了UTCTF 2020里那道名为“Cube”的题。这道题当时给不少选手留下了深刻印象,它没有复杂的RSA参数,也没有花哨的编码,核心就…

DLSS Swapper完全指南:智能革命重新定义游戏性能优化

DLSS Swapper完全指南:智能革命重新定义游戏性能优化

2026/8/5 23:00:40

DLSS Swapper完全指南:智能革命重新定义游戏性能优化 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 你是否曾经因为游戏更新导致DLSS版本不兼容而陷入性能困境?是否厌倦了手动备份、替换、验证…

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

2026/8/4 15:23:37

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经从网易云音乐下载了心爱的歌曲&am…

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

2026/8/5 6:02:27

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比工程导读:本文深入讨论 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 在生产工程实践中的核心落地方案。基于 分布式架构与微服务设计 视角,剖析实际痛点、架…

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

2026/8/5 8:19:55

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhisper,…

Go + 云原生微服务架构实战:2026 企业级开发完整指南

Go + 云原生微服务架构实战:2026 企业级开发完整指南

2026/8/5 0:09:22

Go 云原生微服务架构实战:2026 企业级开发完整指南 CNCF 最新数据显示,2026 年云原生相关岗位增速同比上涨 62%。Kubernetes、Docker、Etcd、Prometheus 等云原生基础设施全部由 Go 语言编写。Go 语言凭借简洁的语法、出色的并发模型、极快的编译速度和…

LangChain项目上线就翻车?团队接手的拦路虎从来不是代码

LangChain项目上线就翻车?团队接手的拦路虎从来不是代码

2026/8/5 0:09:22

聊《一个LangChain项目上线后,最先暴露的并不是代码问题》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。 摘要 摘要:我见过太多LangChain Demo能跑的项目,一交出去就崩。不是模…

3步轻松实现音乐格式自由:ncmdump网易云NCM解密完整指南

3步轻松实现音乐格式自由:ncmdump网易云NCM解密完整指南

2026/8/5 0:09:22

3步轻松实现音乐格式自由:ncmdump网易云NCM解密完整指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾经在网易云音乐下载了心爱的歌曲,却发现只能在特定客户端播放?当你想在车载音响、…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/4 13:34:51

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/4 14:25:14

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/4 15:11:03

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…