发布时间:2026/8/7 6:47:20
自定义工具开发实战:把任意Python函数变成AI Agent可用的工具 自定义工具开发把任意Python函数变成Agent工具内置工具只能解决通用问题。真正做项目的时候你肯定需要写自己的工具。比如对接公司内部的API操作特定的业务系统调用内部的数据库。这些都得自己写。好消息是在LangChain里写自定义工具特别简单。把一个普通的Python函数装饰一下Agent就能调用了。这一篇我们从最简单的开始一步步讲怎么写工具、怎么写好工具描述、怎么处理异常以及实际项目里的一些经验。最简单的写法用tool装饰器是最简单的方式。fromlangchain.toolsimporttooltooldefadd_numbers(a:int,b:int)-str:把两个数字相加返回相加的结果。returnf结果是{ab}就这么简单。一个普通的函数加上tool装饰器就变成了Agent能用的工具。函数名就是工具名。函数的文档字符串就是工具的描述。函数的参数类型注解就是参数的类型说明。这三样东西都很重要。Agent靠它们来理解这个工具是干什么的、什么时候该用、参数怎么传。写的时候注意几点。函数名要直观。一看就知道这个工具做什么的。别起太抽象的名字。文档字符串要写详细。别只写一句话。说清楚功能、参数含义、什么时候用、举个例子。后面会专门讲怎么写好描述。参数类型要标清楚。int、str、float这些基本类型直接写就行。复杂类型用Pydantic模型。用Pydantic定义输入参数简单的时候直接写类型注解就行。参数多了或者参数有嵌套结构最好用Pydantic模型来定义。fromlangchain.toolsimporttoolfrompydanticimportBaseModel,FieldclassWeatherInput(BaseModel):city:strField(description城市名称比如北京、上海、广州)date:strField(description查询的日期格式为YYYY-MM-DD比如2026-08-06)tool(args_schemaWeatherInput)defget_weather(city:str,date:str)-str:查询指定城市指定日期的天气情况。 返回天气状况、温度、湿度、风力等信息。 例如用户问明天北京天气怎么样的时候可以调用这个工具。 # 实际项目中这里调用天气APIreturnf{city}{date}的天气是晴25度。用Pydantic的好处是你可以给每个参数加description还可以加校验规则。Agent能更准确地理解参数的含义参数传错的概率会降低。参数超过两个的时候我建议都用Pydantic来定义。多写几行代码省很多调试的时间。工具描述怎么写才好用工具能不能用好描述占了八成。描述写得好Agent用得准。描述写得烂Agent经常选错工具、填错参数。我自己总结了几个写工具描述的经验。第一说清楚能做什么也说清楚不能做什么。边界清楚了Agent才知道什么时候该调用、什么时候不该调用。第二举例子。在描述里加一两个使用场景的例子。比如当用户问’某某城市天气怎么样’的时候可以调用这个工具。例子对大模型特别有效。第三参数说明要具体。每个参数是什么意思、什么格式、有什么限制都写清楚。有可选值就列出来。日期格式、数字范围、单位都说明白。第四说明返回值的格式。告诉Agent工具会返回什么样的结果它拿到结果以后知道怎么处理。举个反例和正例对比一下。反面教材。tooldefsearch(query:str)-str:搜索工具。...这种描述等于没写。Agent根本不知道什么时候该用、参数怎么传。正面教材。tooldefsearch(query:str)-str:通过搜索引擎查询互联网上的最新信息。 当你需要回答以下类型的问题时使用这个工具 - 实时新闻和热点事件 - 最新的产品价格、发布日期 - 不确定的知识或者你的训练数据里可能没有的信息 - 具体的事实核查 参数说明 query: 搜索关键词。用中文或英文都可以。不要太长20个字以内效果最好。 返回搜索结果的摘要包含标题、摘要和链接。 ...这样写Agent就很清楚什么时候该调用、怎么传参数。处理异常和错误工具调用总会出错。网络断了API限流了参数不对数据库连不上。各种情况都可能发生。出错了怎么办。两个原则。第一工具内部要捕获异常不要直接抛出去。Agent拿到异常信息也不知道怎么处理。第二返回给Agent的错误信息要有意义。告诉它哪里错了、可能的原因、建议的处理方式。它才能决定是重试、换个方式还是告诉用户。比如这样。tooldefget_weather(city:str)-str:查询城市天气。try:resultcall_weather_api(city)returnresultexceptNetworkError:return网络连接失败无法查询天气。请稍后再试。exceptCityNotFoundError:returnf找不到{city}的天气数据。请确认城市名称是否正确或者换一个城市试试。exceptExceptionase:returnf查询天气时出现未知错误{e}。不同的错误返回不同的提示。Agent能根据提示决定下一步怎么做。城市找不到就换个名字网络错了就重试。如果只返回出错了三个字Agent也不知道该怎么办任务就卡住了。同步和异步默认的工具是同步的。如果你的工具里有IO操作比如网络请求、数据库查询可以写成异步的性能更好。toolasyncdefasync_get_weather(city:str)-str:异步查询天气。resultawaitasync_weather_api(city)returnresult用的时候调用ainvoke而不是invoke。简单的工具无所谓同步异步。IO密集型的工具做成异步的并发调用的时候速度会快很多。完整示例最后给一个完整的自定义工具例子你可以照着写。fromlangchain.toolsimporttoolfrompydanticimportBaseModel,FieldimportrequestsclassTranslateInput(BaseModel):text:strField(description要翻译的文本可以是中文或英文)target_lang:strField(description目标语言可选值zh中文、en英文、ja日文,)tool(args_schemaTranslateInput)deftranslate(text:str,target_lang:str)-str:文本翻译工具。支持中文、英文、日文互译。 当用户要求翻译文本或者用户说的语言和默认语言不同时可以使用这个工具。 例如用户说把这句话翻译成英文、这个日语是什么意思的时候。 参数说明 text: 要翻译的原文内容长度不超过5000字 target_lang: 翻译后的目标语言代码 返回翻译后的文本内容。 try:# 这里替换成实际的翻译API调用responserequests.post(https://api.translation.example.com/translate,json{text:text,target:target_lang},timeout10,)response.raise_for_status()resultresponse.json()returnf翻译结果{result[translated_text]}exceptrequests.Timeout:return翻译服务超时了请稍后重试。exceptrequests.HTTPErrorase:ife.response.status_code429:return翻译请求太频繁了等一下再试。returnf翻译服务出错了状态码{e.response.status_code}。exceptExceptionase:returnf翻译时出现未知错误{e}。这个例子包含了Pydantic参数定义、详细的工具描述、异常处理。可以作为你写自定义工具的模板。下一篇我们讲搜索引擎接入。搜索是Agent最重要的能力之一我们深入讲一讲怎么接、怎么用好。

相关新闻

2026/8/7 6:47:20

基于 Flask Web 框架与 llama.cpp 推理引擎构建的本地 AI 智能对话助手

基于 Flask Web 框架与 llama.cpp 推理引擎构建的本地 AI 智能对话助手 智能助手采用 Qwen3.5-2B GGUF 量化模型,通过 llama-cpp-python 实现纯 CPU 环境下的大语言模型推理,无需依赖云端服务即可完成文本生成、多轮对话等任务。系统以 Flask 提供 Web 服务接口,实现模型加…

2026/8/7 6:47:20

跨界AI项目部署实战:从F1×Rosé看高性能风格化应用落地

这次我们来看一个名为“F1Ros”的项目。从名称上看,它结合了“F1”和“Ros”两个元素,这通常指向一个跨界或融合性的技术应用。在技术领域,这类项目往往涉及将一种领域的技术或模型(例如,F1可能指代一种高性能、低延迟…

2026/8/7 6:47:20

基于机器学习思路的 用户购物行为预测与可视化大屏 全栈项目——智购先知 · 用户购物行为预测分析系统

智购先知 用户购物行为预测分析系统 基于机器学习思路的 用户购物行为预测与可视化大屏 全栈项目。面向电商运营、数据分析、课程设计与毕设演示场景,提供登录鉴权、三维交互大屏、全球四级地图下钻、多维 ECharts 图表、购买意向智能预测、数据与用户管理等完整能…

2026/8/7 7:37:24

零代码AI技能开发实战:从QClaw到微信生态的“恋爱大师”

1. 从“技术玩具”到“情感助手”的意外转型 去年年底,我偶然接触到了QClaw这个低代码AI技能开发平台。当时的心态很纯粹,就是想找个周末项目练练手,看看能不能把一些天马行空的想法快速落地。作为一个在技术圈摸爬滚打多年的“老油条”&…

2026/8/7 7:37:24

AI大模型流式输出:SSE协议为何优于WebSocket与WebRTC?

1. 项目概述:AI大模型实时通信的技术选型之争最近在设计和实现几个AI大模型应用的后端服务时,我反复被一个看似基础、实则关键的问题所困扰:如何为AI大模型的实时文本流输出选择最合适的通信协议?无论是构建一个类ChatGPT的对话应…

2026/8/7 7:37:24

Spring Boot SSE实战:解决连接中断、超时与资源泄漏的完整方案

1. 从一次线上告警说起:SSE连接为何突然中断? 那天下午,我正在处理一个实时数据看板的项目,突然收到一连串的告警通知。用户反馈说,看板上的数据流“卡住”了,不再更新。我立刻登录服务器查看日志&#xff…

2026/8/7 7:37:24

从PCIe到USB3.0:协议转换桥的硬件设计与系统驱动实战

1. 项目概述:从PCIe到USB3.0的桥梁搭建最近在折腾一个嵌入式项目,需要在一块只有PCIe接口的工控主板上扩展出高速USB3.0接口,用来连接一些高带宽的外设,比如工业相机或者高速存储设备。市面上虽然有成品的PCIe转USB3.0扩展卡&…

2026/8/7 7:37:24

从 Vibe Coding 到 LangGraph:AI 时代编程范式的演进与重构

当「写代码」这件事本身被 AI 重新定义,开发者真正需要的,是让自己从「逐行敲代码」升级为「定义目标、驾驭流程」。 开篇:编程范式正在被重写 2025 年初,OpenAI 前研究科学家、Tesla AI 前负责人 Andrej Karpathy 在社交媒体上抛…

2026/8/7 7:32:23

无剪辑拆卡视频制作全攻略:从设备到实战的完整流程

1. 背景与核心概念在当今的社交媒体和内容创作领域,拆箱、开箱类视频因其直观、解压的特性而广受欢迎。然而,对于许多刚入门的创作者而言,如何高效、高质量地制作这类视频,尤其是如何实现“无剪辑”的流畅效果,是一个不…

2026/8/5 3:13:11

如何用免费工具突破游戏窗口限制:SRWE完整使用指南

如何用免费工具突破游戏窗口限制:SRWE完整使用指南 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 你是否遇到过这样的困扰?想为心爱的游戏截图,却发现游戏不支持自定义分辨率…

2026/8/7 0:01:55

CAD图库管理:从文件归档到设计资产管理的效率革命

你肯定遇到过这种情况:打开一个老项目,想找某个特定的图块——比如一个标准的门、一个特定的设备符号,或者一个公司logo。你记得它就在某个DWG文件里,或者曾经从某个同事那里拷来过。于是,你开始在一堆命名混乱的文件夹…

2026/8/7 0:01:55

5分钟掌握Wand-Enhancer:2026年终极WeMod专业版免费解锁指南

5分钟掌握Wand-Enhancer:2026年终极WeMod专业版免费解锁指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer Wand-Enhancer是一款功能强…

2026/8/7 0:01:55

“Quality Control(质量控制)”在软件工程中通常指通过一系列活动确保软件产品符合预定的质量标准和用户需求

“Quality Control(质量控制)”在软件工程中通常指通过一系列活动确保软件产品符合预定的质量标准和用户需求。而“软件测试”是质量控制的关键手段之一,属于QC范畴下的具体实践,其目标是发现缺陷、验证功能正确性、评估软件质量属…

2026/8/5 19:21:13

实测才敢推 AI论文网站 2026最新测评与推荐

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

2026/8/5 19:21:13

2026必备!AI论文网站测评:最新推荐与深度对比

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

2026/8/6 20:45:01

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

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