给AI装上“手和脚”:LangChain与Dify实战,让智能体自主调用工具完成复杂任务
从“聊天机器人”到“能干活的人工”就差这一步大家好今天咱们聊一个特别实在的话题怎么让AI真正“动起来”。不知道你有没有这种体验——跟ChatGPT聊了半天它说得头头是道但一到要它帮你干点实事比如查个天气、算个账、查个数据库它就傻眼了。为啥因为大模型本质上就是个“嘴强王者”它懂再多也没法直接触碰外面的世界。工具调用Tool Calling就是来解决这个问题的。它让AI模型能够调用外部函数或API来完成特定任务相当于给AI装上了手和脚。今天我就用LangChain和Dify两个主流框架手把手带大家给AI装上这双手脚。一、先搞懂原理工具调用到底是怎么回事说白了工具调用的核心就三步AI“想”用户提了个需求大模型推理后决定——这事儿我得找外援AI“喊”模型发出一个工具调用请求告诉系统“我要用XX工具参数是XXX”系统“干”执行工具把结果返回给模型模型再整合成最终答案一个关键原则是模型根据输入的相关性决定是否调用工具。如果用户只是随便聊聊天模型不会没事找事去调工具。好原理懂了咱们直接上代码。二、LangChain实战用代码给AI“安胳膊”LangChain是当前生态规模最大的大模型应用开发框架。它提供了tool装饰器和create_tool_calling_agent等工具让你能快速地把业务函数包装成AI可调用的工具。第一步安装依赖pipinstalllangchain langchain-openai python-dotenv第二步定义工具假设我们要让AI能算数、能查天气模拟、能查股票模拟。用tool装饰器一包装普通函数秒变AI工具fromlangchain.toolsimporttoolfromlangchain_openaiimportChatOpenAIfromlangchain.agentsimportcreate_tool_calling_agent,AgentExecutorfromlangchain.promptsimportChatPromptTemplatefromdotenvimportload_dotenvimportrandom load_dotenv()# 工具1加法计算器tooldefadd(a:int,b:int)-int:将两个数字相加。 Args: a: 第一个数字 b: 第二个数字 returnab# 工具2乘法计算器tooldefmultiply(a:int,b:int)-int:将两个数字相乘。 Args: a: 第一个数字 b: 第二个数字 returna*b# 工具3模拟天气查询tooldefget_weather(city:str)-str:查询指定城市的天气情况。 Args: city: 城市名称 weathers[晴天☀️ 28°C,多云☁️ 22°C,小雨️ 18°C,大雪❄️ -5°C]returnf{city}的天气{random.choice(weathers)}# 工具4模拟股票查询tooldefget_stock_price(symbol:str)-str:查询指定股票代码的当前价格。 Args: symbol: 股票代码如 AAPL, TSLA prices{AAPL:188.50,TSLA:245.30,GOOGL:141.80,MSFT:378.90}returnf{symbol}当前价格${prices.get(symbol.upper(),100.00)}看到了吗每个工具函数的文档字符串docstring特别重要——它就是AI理解“这个工具是干嘛的、什么时候该用”的唯一依据。描述写得越清楚AI选工具就越准。第三步创建智能体# 初始化模型选支持工具调用的模型llmChatOpenAI(modelgpt-3.5-turbo,temperature0)# 把所有工具打包tools[add,multiply,get_weather,get_stock_price]# 写提示词模板promptChatPromptTemplate.from_messages([(system,你是一个智能助手可以根据用户需求自主调用合适的工具来完成任务。),(human,{input}),(placeholder,{agent_scratchpad}),])# 创建智能体agentcreate_tool_calling_agent(llm,tools,prompt)# 创建执行器真正跑起来的东西agent_executorAgentExecutor(agentagent,toolstools,verboseTrue)create_tool_calling_agent是LangChain官方推荐的新范式基于函数调用机制效率更高适合生产环境。第四步跑起来看看# 测试1纯计算resultagent_executor.invoke({input:帮我算一下 123 乘以 456 等于多少})print(result[output])# 测试2查天气resultagent_executor.invoke({input:北京今天天气怎么样})print(result[output])# 测试3混合任务resultagent_executor.invoke({input:查一下苹果公司的股票价格然后告诉我如果买100股需要多少钱})print(result[output])运行效果大概是这样开启verboseTrue可以看到完整推理过程 Entering new AgentExecutor chain... Invoking: multiply with {a: 123, b: 456} responded: 123乘以456等于56088。 Invoking: get_weather with {city: 北京} responded: 北京的天气晴天☀️ 28°C Invoking: get_stock_price with {symbol: AAPL} responded: AAPL 当前价格$188.50 计算得出100股需要 $18,850。AI真的自己判断该用哪个工具、怎么组合使用了。这就是工具调用的魅力——不需要你写一堆if/elseAI自己决定走哪条路。三、LangChain进阶多工具协同与踩坑指南1. 工具越多越要写好描述当你给AI挂了十几个工具时工具的名称和描述就成了AI选对工具的关键。描述要具体比如tooldefcalculate_compound_interest(principal:float,rate:float,years:int)-float:计算复利收益。适用于投资回报计算场景。 Args: principal: 本金金额 rate: 年利率如 0.05 表示5% years: 投资年数 returnprincipal*(1rate)**years2. 工具调用失败怎么办真实生产中工具调用失败太常见了——API超时、参数格式不对、网络波动……LangGraph的tool node会捕获异常并返回ToolMessage。你可以在AgentExecutor中配置handle_parsing_errorsTrue来优雅处理。3. 别忘了设置迭代上限agent_executorAgentExecutor(agentagent,toolstools,max_iterations5,# 最多迭代5次防止死循环verboseTrue)四、Dify实战不写代码也能给AI装“手脚”如果说LangChain是“自己造轮子”那Dify就是“直接开4S店提车”。Dify是一个集LLMOps和可视化工作流于一体的AI应用开发平台。它的Agent节点让你无需编码通过可视化界面就能让AI自主调用工具。第一步创建Agent应用登录Dify点击“创建空白应用”选择应用类型为“Agent”起个名字比如“全能小助手”第二步配置模型在“模型供应商”中配置你的API密钥。建议选择支持函数调用的模型如GPT-4、Claude 3.5 Sonnet等。第三步添加工具Dify提供了两种工具类型第一方工具Dify生态内置的开箱即用如谷歌搜索、科学计算等自定义工具支持OpenAPI/Swagger和OpenAI Plugin规范导入配置工具时每个工具需要授权API密钥等凭据描述清楚说明工具的作用和适用场景这点和LangChain一样重要参数必填和可选输入第四步写指令Prompt在“指令”框中定义Agent的角色和目标。比如你是一个全能智能助手可以调用工具来帮助用户完成各种任务。 - 遇到计算问题使用计算器工具 - 需要实时信息使用搜索工具 - 查询数据使用数据库工具 请根据用户需求自主选择合适的工具。第五步设置执行控制最大迭代次数防止无限循环简单任务3-5次复杂任务10-15次记忆窗口控制Agent记住多少历史消息第六步开跑配置完成后直接对话测试。你只需要在对话框中谈及需要调用的工具名字Agent就会自动调用。整个过程零代码从配置到上线可能只需要十分钟。五、LangChain vs Dify我该怎么选维度LangChainDify定位编程框架 / 工具库完整解决方案 / 低代码平台灵活性⭐⭐⭐⭐⭐ 极高想怎么改就怎么改⭐⭐⭐ 中等受限于平台能力上手难度⭐⭐⭐⭐ 需要Python基础和工程能力⭐⭐ 可视化操作门槛极低适用场景复杂定制化业务、深度集成快速原型验证、企业内部工具工具生态极其丰富社区最活跃插件市场持续扩展中一句话建议你是开发者需要深度定制、和现有系统紧密集成 → 选LangChain你是产品/业务人员想快速验证想法、低门槛上线 → 选Dify两者也不是非此即彼——很多团队用Dify做快速原型验证通过后用LangChain做工程化落地。六、写在最后工具调用这件事本质上是让AI从“只会说”变成“既能说又能干”。LangChain给了你一把手术刀精细、强大但需要你自己动手Dify给了你一台全自动机器人省心、快速但定制空间有限。不管选哪条路核心就一句话把业务能力包装成工具让AI自己决定什么时候用、怎么用。一旦打通了这一步AI就不再是“聊天玩具”而是真正能帮你干活的“数字员工”。如果你也在折腾AI工具调用欢迎在评论区交流踩坑经验。下期见本文代码基于 LangChain v0.3.x、Dify v1.16.0 测试通过。

相关新闻

揭秘Stable Diffusion水彩LoRA训练全过程:从数据清洗到风格迁移,实测提升质感42%

揭秘Stable Diffusion水彩LoRA训练全过程:从数据清洗到风格迁移,实测提升质感42%

更多请点击: https://intelliparadigm.com 第一章:AI生成水彩画效果 将数字图像转化为具有手绘质感的水彩风格,已不再依赖专业美术功底。现代生成式AI模型通过学习海量水彩作品数据,能精准模拟颜料扩散、纸面纹理、干湿叠加等物理…

2026/8/1 4:07:19 阅读更多 →
模型蒸馏在推理加速中的工程实践:用小模型逼近大模型

模型蒸馏在推理加速中的工程实践:用小模型逼近大模型

模型蒸馏在推理加速中的工程实践:用小模型逼近大模型 一、大模型推理又慢又贵,蒸馏是出路之一 大模型落地,推理成本是硬约束。GPU 显存吃紧,单次推理几百毫秒起步。并发一上来,排队超时,体验崩塌。成本账…

2026/8/1 4:06:19 阅读更多 →
Deebot-4-Home-Assistant:智能家居清洁自动化的技术革命

Deebot-4-Home-Assistant:智能家居清洁自动化的技术革命

Deebot-4-Home-Assistant:智能家居清洁自动化的技术革命 【免费下载链接】Deebot-4-Home-Assistant Home Assistant integration for deebot vacuums 项目地址: https://gitcode.com/gh_mirrors/de/Deebot-4-Home-Assistant 在智能家居生态系统中&#xff0c…

2026/8/1 4:06:19 阅读更多 →

最新新闻

Rust数据类型在Web3.0开发中的关键作用与实战技巧

Rust数据类型在Web3.0开发中的关键作用与实战技巧

1. 为什么Rust的数据类型对Web3.0开发者如此重要?在区块链和Web3.0开发领域,Rust语言正以每年超过200%的采用率增长(据2023年Stack Overflow开发者调查)。这种爆发式增长背后,数据类型系统的严谨性起到了关键作用。想象…

2026/8/1 5:24:48 阅读更多 →
GPT-5.6 Sol使用限制重置与效率提升实践指南

GPT-5.6 Sol使用限制重置与效率提升实践指南

1. 先搞清楚 GPT-5.6 Sol 到底解决了什么实际问题如果你正在处理需要大量调用语言模型的批量任务,GPT-5.6 Sol 最值得关注的点不是功能有多新,而是使用限制的调整和效率提升。这意味着在相同时间内,你能处理更多任务,或者同样的任…

2026/8/1 5:24:48 阅读更多 →
HTML 特殊字符(实体字符)详解学习博客

HTML 特殊字符(实体字符)详解学习博客

一、什么是 HTML 特殊字符&#xff1f;在 HTML 中&#xff0c;有一些字符具有特殊含义&#xff0c;不能直接写在网页中。例如&#xff1a;< 表示标签开始> 表示标签结束& 表示实体字符开始如果直接写&#xff1a;<p>3 < 5 </p>浏览器可能会误认为 <…

2026/8/1 5:24:48 阅读更多 →
Ubuntu下搭建STM32开发环境:Eclipse+GDB+OpenOCD全流程指南

Ubuntu下搭建STM32开发环境:Eclipse+GDB+OpenOCD全流程指南

1. 为什么要在Ubuntu上搭建STM32开发环境&#xff1f; 如果你和我一样&#xff0c;是个在Linux环境下工作的嵌入式开发者&#xff0c;或者单纯厌倦了Windows下Keil、IAR这类商业IDE的臃肿和许可问题&#xff0c;那么把STM32的开发环境迁移到Ubuntu上&#xff0c;绝对是一个能极…

2026/8/1 5:24:48 阅读更多 →
硬件工程师必备:电容选型实战指南与常见误区解析

硬件工程师必备:电容选型实战指南与常见误区解析

1. 从“电容”说起&#xff1a;一个被低估的电路基石 提起电容&#xff0c;很多刚入行的电子工程师或者爱好者可能会觉得它很简单——不就是两个极板中间夹着绝缘介质嘛&#xff0c;电路图上画个符号&#xff0c;选个容值焊上去就完事了。但如果你真的这么想&#xff0c;那在后…

2026/8/1 5:24:48 阅读更多 →
轻量化ACPI控制架构深度解析:G-Helper如何实现华硕笔记本硬件管理的技术革新

轻量化ACPI控制架构深度解析:G-Helper如何实现华硕笔记本硬件管理的技术革新

轻量化ACPI控制架构深度解析&#xff1a;G-Helper如何实现华硕笔记本硬件管理的技术革新 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, …

2026/8/1 5:23:48 阅读更多 →

日新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速&#xff1a;macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南&#xff1a;3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗&#xff1f;ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片&#xff1a;为英语学习 App 打造桌面级学习助手适用平台&#xff1a;HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0&#xff08;API 26 Beta&#xff09;新增了 AgentCard 智能体卡片能力&#xff0c;这是继 HMAF&#xff08;鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档&#xff0c;可以直接使用&#xff01;系统支持图片、视频、摄像头等多种方式检测裂缝&#xff0c;功能强大实用。 1数据集6000张 8各类别

2026/7/31 1:03:03 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像&#xff01; pubg绝地求生目标检测数据集 1分类&#xff1a;e_body&#xff0c;14905个标签&#xff0c;txt格式 共计14244张图&#xff0c;99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/8/1 5:19:34 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别&#xff1a; allies enemy tag图片总量&#xff1a;7247张训练集&#xff1a;5139张验证集&#xff1a;1425张测试集&#xff1a;683张标注状态&#xff1a;全部已标注&#xff0c;即拿即用数据格式&#xff1a;支持YOLO格式及其他格式&#…

2026/7/31 4:19:39 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速&#xff1a;macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南&#xff1a;3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗&#xff1f;ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片&#xff1a;为英语学习 App 打造桌面级学习助手适用平台&#xff1a;HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0&#xff08;API 26 Beta&#xff09;新增了 AgentCard 智能体卡片能力&#xff0c;这是继 HMAF&#xff08;鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →