LangChain 的 Tools 是什么?手把手带你写一个
大模型能聊天、能写诗——但让它查数据库它开始编数据。让它发邮件它只能说您可以这样发。不是模型不行。LLM 天生只有嘴没有手——它能生成文本但不会调 API、不会查数据库、不会操作文件。核心认知Tools 就是给 LLM 装上的手。读完这篇文章你会理解 Tool 的三个核心组成签名、描述、实现用tool装饰器 3 行代码创建一个工具通过create_agent让 LLM 自动调用你的工具动手写出一个能保存和搜索笔记的完整工具预计阅读 6 分钟全程代码可运行。一、Tools 到底是什么一句话Tool 是一个带类型注解和 docstring 的普通 Python 函数。LLM 根据对话内容判断什么时候调用它。每个 Tool 由三个角色组成角色代码LLM 用它做什么函数签名类型注解city: str知道该传什么参数docstring函数文档字符串判断这工具能不能解决用户问题函数体实际逻辑LLM 不关心它只管收返回值关键认知LLM 不执行你的函数。它只生成一个 JSON 调用指令{name: get_weather, args: {city: 北京}}真正执行的是 LangGraph 的 ToolNode。模型拿到的永远是执行结果不是执行过程。什么时候用 Tool场景用 Tool原因查天气、读数据库、调 API用模型记忆里没有这些数据复杂公式计算、日期运算用模型算不准Tool 精确可靠发邮件、写数据库用有副作用需要实际执行翻译、润色、总结不用纯文本任务模型自己就能做二、创建 Tool90% 的情况一个装饰器够了LangChain 提供四种创建方式但tool装饰器覆盖日常开发 90% 的场景from langchain.tools import tool tool def get_weather(city: str) - str: 查询指定城市的实时天气。 Args: city: 城市名称如 北京 weather_data {北京: 32°C晴, 上海: 28°C小雨} return weather_data.get(city, 未找到该城市数据)三步搞定加tool→ 写类型注解 → 写 docstring。类型注解告诉 LLM “该传什么参数”docstring 告诉 LLM “这个工具能干什么”。参数复杂时用 Pydantic 的args_schema精确约束from pydantic import BaseModel, Field class WeatherInput(BaseModel): 天气查询参数 location: str Field(description城市名称) units: str Field(defaultcelsius, description温度单位) tool(args_schemaWeatherInput) def get_weather(location: str, units: str celsius) - str: 查询指定城市的实时天气。 return f{location}22°C晴提示简单参数用类型注解就够了。参数超过 3 个或带枚举值、范围限制等复杂约束时再上args_schema。过早优化只会增加代码量反而降低可读性。三、让 Agent 用你的 Tool 干活3.1 用 create_agent 挂载工具光有工具不够得让 Agent 学会用它。create_agent是最简单的方式from langchain.agents import create_agent from langchain.tools import tool tool def get_weather(city: str) - str: 查询指定城市的实时天气。 data {北京: 32°C晴, 上海: 28°C小雨} return data.get(city, 未找到数据) tool def calculate(expression: str) - str: 执行数学计算如 3*152。 return str(eval(expression)) agent create_agent( modeldeepseek:deepseek-chat, tools[get_weather, calculate], system_prompt你是一个有用的助手能查天气和做计算。, ) result agent.invoke({ messages: [{role: user, content: 北京今天天气怎么样}] }) print(result[messages][-1].content) # 输出北京今天 32°C晴天。3.2 背后发生了什么一条消息进来Agent 内部经过了四个步骤步骤 1LLM 收到北京今天天气怎么样步骤 2LLM 判断需要查天气 → 生成tool_call: get_weather(city北京)步骤 3ToolNode 执行get_weather(北京)→ 返回32°C晴步骤 4LLM 收到结果组织回复“北京今天 32°C晴天。”关键洞察整个流程 LLM 不需要知道天气 API 长什么样。它只决策该用哪个工具、传什么参数。API 怎么调、数据怎么查——全部由 ToolNode 代劳。3.3 什么时候用 Agent Tool场景说明用户问题需要动态数据订单状态、股价、天气——每次结果不同需要精确计算或日期运算复杂公式、日期跨度——模型容易算错多工具协作Agent 自动判断调用哪个工具边界单个 Tool 的简单场景不一定要 Agent——直接tool.invoke({city: 北京})更轻量。Agent 的价值在于自动判断用不用、用哪个适合多工具、多轮推理。四、动手写一个笔记工具目标实现保存笔记 搜索笔记用内存字典模拟数据库。from langchain.tools import tool # 内存字典模拟数据库生产环境换 Redis 或 SQLite notes_db: dict[str, str] {} tool def save_note(title: str, content: str) - str: 保存一条笔记。当用户说帮我记一下时使用。 Args: title: 笔记标题 content: 笔记正文 notes_db[title] content returnf✅ 笔记「{title}」已保存 tool def search_notes(keyword: str) - str: 根据关键词搜索笔记。当用户问之前记的xxx时使用。 Args: keyword: 搜索关键词 results [ f {t}: {c} for t, c in notes_db.items() if keyword in t or keyword in c ] return/n.join(results) if results else未找到相关笔记两个工具的职责分工工具触发词输入输出save_note“帮我记一下”title content保存确认search_notes“之前记的xxx”keyword匹配的笔记列表创建 Agent 测试from langchain.agents import create_agent agent create_agent( modeldeepseek:deepseek-chat, tools[save_note, search_notes], system_prompt你是笔记助手帮用户记录和查找笔记。, ) # 保存笔记 agent.invoke({ messages: [{role: user, content: 帮我记下周三下午3点401会议室项目复盘会}] }) # 输出✅ 笔记「项目复盘会」已保存 # 搜索笔记 agent.invoke({ messages: [{role: user, content: 我之前记的关于开会的笔记是什么}] }) # 输出 项目复盘会: 下周三下午3点401会议室五、写 Tool 的四个要点记住这四点能省 80% 调试时间要点原因反面案例类型注解必须写LLM 靠它知道参数类型不写 → LLM 传参不可预测docstring 是工具的简历LLM 看 docstring 决定用不用只写技术参数 → LLM 不知道该不该调返回值只能是字符串LLM 拿字符串当推理上下文返回 dict → 解析失败函数名用 snake_case空格名被部分模型拒绝get weather→ 调用报错生产环境注意⚠️ 生产环境提醒开启 ToolNode 错误处理别让一个工具挂了就把整个 Agent 搞崩。from langgraph.prebuilt import ToolNode tool_node ToolNode( [get_weather, calculate, save_note, search_notes], handle_tool_errorsTrue # 异常被捕获转成错误消息告诉 LLM )开启后LLM 看到错误消息会尝试换一种方式调用或者告诉用户这个操作暂时做不了——比直接崩溃好得多。六、总结三个核心认知Tool 签名 描述 实现tool装饰器是最简单的方式create_agent一行代码挂载工具ToolNode 自动管理调用流程docstring 决定 LLM 选不选你的工具——写的越清晰具体Agent 表现越稳定下一步学什么主题一句话说明适合场景ToolRuntime给工具注入会话上下文用户 ID、数据库连接告别全局变量生产环境必备MCP 协议Anthropic 提出的标准化工具接口一套工具对接多个 LLM 平台LangSmith可视化每次工具调用的入参、出参、耗时排查 Agent 行为异常 动手试一下把第四节的笔记工具跑通然后试着加一个delete_note工具。10 分钟就能上手。这里给大家精心整理了一份全面的AI大模型学习资源包括AI大模型全套学习路线图从入门到实战、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等资料免费分享扫码免费领取全部内容1. 成长路线图学习规划要学习一门新的技术作为新手一定要先学习成长路线图方向不对努力白费。这里我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。2. 大模型经典PDF书籍书籍和学习文档资料是学习大模型过程中必不可少的我们精选了一系列深入探讨大模型技术的书籍和学习文档它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。书籍含电子版PDF3. 大模型视频教程对于很多自学或者没有基础的同学来说书籍这些纯文字类的学习教材会觉得比较晦涩难以理解因此我们提供了丰富的大模型视频教程以动态、形象的方式展示技术概念帮助你更快、更轻松地掌握核心知识。4. 2026行业报告行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。5. 大模型项目实战学以致用当你的理论知识积累到一定程度就需要通过项目实战在实际操作中检验和巩固你所学到的知识同时为你找工作和职业发展打下坚实的基础。6. 大模型面试题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我们将提供精心整理的大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。7. 资料领取全套内容免费抱走学 AI 不用再找第二份不管你是 0 基础想入门 AI 大模型还是有基础想冲刺大厂、了解行业趋势这份资料都能满足你现在只需按照提示操作就能免费领取扫码免费领取全部内容

相关新闻

vue-notifications配置详解:打造个性化通知系统

vue-notifications配置详解:打造个性化通知系统

vue-notifications配置详解:打造个性化通知系统 【免费下载链接】vue-notifications Vue.js agnostic library for non-blocking notifications 项目地址: https://gitcode.com/gh_mirrors/vu/vue-notifications vue-notifications是一个Vue.js无关的非阻塞通…

2026/7/30 23:08:26阅读更多 →
Evil:iOSmacOS平台的终极Swift光学字符识别解决方案

Evil:iOSmacOS平台的终极Swift光学字符识别解决方案

Evil:iOS&macOS平台的终极Swift光学字符识别解决方案 【免费下载链接】Evil Optical Character Recognition in Swift for iOS&macOS. 银行卡、身份证、门牌号光学识别 项目地址: https://gitcode.com/gh_mirrors/evi/Evil Evil是一款基于Swift开发的…

2026/7/30 23:06:26阅读更多 →
为什么选择zxcvbn-python?Dropbox推荐的密码强度评估库深度解析

为什么选择zxcvbn-python?Dropbox推荐的密码强度评估库深度解析

为什么选择zxcvbn-python?Dropbox推荐的密码强度评估库深度解析 【免费下载链接】zxcvbn-python Python implementation of Dropboxs realistic password strength estimator 项目地址: https://gitcode.com/gh_mirrors/zx/zxcvbn-python 在当今数字化时代&a…

2026/7/30 23:06:26阅读更多 →
终极指南:5分钟让Switch手柄在PC上畅玩所有游戏的简单方法

终极指南:5分钟让Switch手柄在PC上畅玩所有游戏的简单方法

终极指南:5分钟让Switch手柄在PC上畅玩所有游戏的简单方法 【免费下载链接】BetterJoy Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput 项目地址: https://gitcode.…

2026/7/31 0:06:42阅读更多 →
Pixelle-Video完全指南:三步打造你的AI视频创作自动化工作流

Pixelle-Video完全指南:三步打造你的AI视频创作自动化工作流

Pixelle-Video完全指南:三步打造你的AI视频创作自动化工作流 【免费下载链接】Pixelle-Video 🚀 AI 全自动短视频引擎 | AI Fully Automated Short Video Engine 项目地址: https://gitcode.com/GitHub_Trending/pi/Pixelle-Video 在AI内容创作领…

2026/7/31 0:06:42阅读更多 →
D3D8to9终极指南:让经典老游戏在现代电脑上完美运行的简单方案

D3D8to9终极指南:让经典老游戏在现代电脑上完美运行的简单方案

D3D8to9终极指南:让经典老游戏在现代电脑上完美运行的简单方案 【免费下载链接】d3d8to9 A D3D8 pseudo-driver which converts API calls and bytecode shaders to equivalent D3D9 ones. 项目地址: https://gitcode.com/gh_mirrors/d3/d3d8to9 你是否曾经遇…

2026/7/31 0:06:42阅读更多 →
AI搜索时代品牌战略突围:搜极星领衔五大GEO监测平台深度解析与实战闭环

AI搜索时代品牌战略突围:搜极星领衔五大GEO监测平台深度解析与实战闭环

引言:当搜索框变成对话框,品牌在哪里?2026年,生成式AI的用户规模已突破6.85亿,超过63%的互联网用户开始习惯在AI对话框中寻找答案,而非传统的搜索引擎框。这意味着,品牌的流量入口发生了根本性的…

2026/7/31 0:06:42阅读更多 →
为什么你的BERT微调总掉点?揭秘隐藏在PyTorch DataLoader里的3个数据泄露陷阱,上线前必须检查!

为什么你的BERT微调总掉点?揭秘隐藏在PyTorch DataLoader里的3个数据泄露陷阱,上线前必须检查!

更多请点击: https://codechina.net 第一章:Shell脚本的基本语法和命令 Shell脚本是Linux/Unix系统自动化任务的核心工具,以可执行文本文件形式存在,由Bash等Shell解释器逐行解析执行。其语法简洁但严谨,对空格、换行…

2026/7/31 0:04:42阅读更多 →
从零开始的YOLO目标检测全流程:数据标注→模型训练→推理验证→结果可视化

从零开始的YOLO目标检测全流程:数据标注→模型训练→推理验证→结果可视化

很多人入门YOLO,都能很快跑通官方的demo,但一换成自己的数据集就频繁报错:标签格式不对、路径配置出错、训练loss不收敛、推理结果一片空白。本质上,多数教程只讲了训练那一行命令,却没说清数据怎么准备、格式怎么对齐…

2026/7/31 0:04:42阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/30 15:03:16阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/30 12:22:27阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/30 15:13:02阅读更多 →
物理复制比逻辑复制好在哪?数据库复制原理详解

物理复制比逻辑复制好在哪?数据库复制原理详解

数据库复制是把主库数据同步到备库的机制,分为逻辑复制和物理复制两种。逻辑复制传输的是 SQL 语句或行变更事件,物理复制传输的是存储引擎底层的物理日志。阿里云 PolarDB(云原生数据库)采用物理复制,在同步延迟、数据…

2026/7/31 0:00:40阅读更多 →
BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown:3分钟学会B站视频下载的终极指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/Bilib…

2026/7/31 0:00:41阅读更多 →
有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

当前,游戏行业的“DataAI融合”已从概念验证进入价值落地阶段。根据IDC 2025年数据,中国AI游戏云市场规模已达18.6亿元;同时,游戏研发环节AI渗透率高达86%,生成式AI内容普及率超过50%。面对庞大的市场,游戏…

2026/7/31 0:00:41阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/30 0:27:26阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/30 4:47:18阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/30 15:43:46阅读更多 →