news 2026/5/25 22:36:21

Agent系列(四):工具调用深度解析——Agent 的手和眼

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Agent系列(四):工具调用深度解析——Agent 的手和眼

工具是 Agent 的手和眼

前三篇我们讲了 Agent 的思维框架——ReAct 如何边想边做,Plan-and-Solve 如何先规划再执行。但思维框架再好,Agent 如果只能和 LLM 自己对话,能做的事情极其有限。

工具(Tool)是 Agent 突破语言模型边界的关键。有了工具,Agent 可以:

  • 查询实时数据(股价、天气、新闻)
  • 操作文件系统
  • 调用外部 API
  • 执行代码计算

但工具设计得好不好,直接决定了 Agent 的可靠性。一个设计糟糕的工具,会让 Agent 在错误中打转,甚至产生安全漏洞。

这篇文章,我们从零拆解工具调用的全貌:设计、验证、安全、并行调用、错误处理——五个维度,配合实际运行结果。


好工具 vs 坏工具:同一任务,截然不同的 Agent 行为

先做一个对比实验,把这个结论建立在真实数据上。

同样是"查股价"的功能,我们写两个版本:

坏工具(三个典型缺陷):

@tooldefbad_stock_tool(x:str)->str:"""Get stock info."""# ← 文档简陋:参数含义、返回格式、示例全无_MOCK_STOCKS={"AAPL":189.5,"GOOGL":175.2,"MSFT":420.3}price=_MOCK_STOCKS[x]# ← KeyError 直接崩溃,不捕获returnf"{price}"# ← 只返回数字,没有单位、货币、上下文

好工具(三个对应改进):

@tooldefget_stock_price(symbol:str)->str:"""查询股票的当前价格和涨跌幅。 参数: symbol:股票代码,大写字母,例如 "AAPL"、"GOOGL"、"MSFT"、"TSLA"、"BABA" 返回: 包含股票名称、当前价格(美元)、今日涨跌幅的字符串。 如果代码不存在,返回错误说明。 示例: get_stock_price("AAPL") → "Apple Inc. (AAPL): $189.50 USD, 今日 +1.23%" get_stock_price("UNKNOWN") → "未找到股票代码 UNKNOWN,支持的代码:..." """symbol=symbol.strip().upper()ifnotre.match(r"^[A-Z]{1,5}$",symbol):returnf"无效的股票代码格式:{symbol!r}。代码应为 1-5 个大写字母。"info=_MOCK_STOCKS.get(symbol)ifinfoisNone:supported="、".join(_MOCK_STOCKS.keys())returnf"未找到股票代码{symbol}。当前支持:{supported}"sign="+"ifinfo["change_pct"]>=0else""return(f"{info['name']}({symbol}): "f"${info['price']:.2f}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/25 22:34:56

如何永久保存你的数字记忆?WeChatMsg聊天记录导出工具完全解析

如何永久保存你的数字记忆?WeChatMsg聊天记录导出工具完全解析 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/…

作者头像 李华
网站建设 2026/5/25 22:34:07

基于随机森林的低成本传感器机器学习校准实践指南

1. 项目概述:当低成本传感器遇上机器学习校准在物联网和智能感知系统铺天盖地的今天,低成本传感器几乎无处不在。从监测办公室的空气质量,到追踪城市街道的噪音污染,再到农业大棚里的温湿度控制,这些价格亲民的“小眼睛…

作者头像 李华
网站建设 2026/5/25 22:31:49

ruduce函数

cartData.reduce 在前端开发中非常常见,通常用于遍历购物车数组并计算商品的总价或总数量。reduce 是 JavaScript 数组的一个高阶函数,它的核心作用是将数组中的所有元素通过你设定的规则“累积”起来,最终合并成一个单一的值。结合购物车&am…

作者头像 李华
网站建设 2026/5/25 22:31:10

通过OpenClaw CLI子命令快速写入Taotoken配置并开始使用

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过OpenClaw CLI子命令快速写入Taotoken配置并开始使用 对于习惯使用命令行工具进行开发的工程师而言,频繁手动编辑配…

作者头像 李华