当前位置: 首页 > news >正文

【Agent智能体13 | 工具使用-什么是工具?】

声明:本篇博客是以吴恩达的【Agent智能体】教程为基础,并对其中的内容做了笔记整理以及个人收获的总结。

前面已经介绍完反思设计模式的所有内容了,从这篇开始,要介绍智能体设计模式中的工具使用

这篇主要是介绍一下,工具的概念。
首先要明确,让大模型具体选择和使用工具(调用函数)的能力,就像我们人类一样可以使用很多工具实现更多功能

为什么需要工具?

通过这幅图的对比,我们可以看到工具可以让大模型有更强大的功能。

  • 没有工具的 LLM(上方的流程):传统的 LLM 其知识储备截止于训练完成的那一刻,且无法直接感知现实世界的实时状态。

    • 因此,当用户询问“现在几点了?”(What time is it?)时,模型只能基于其固有的限制回答:“抱歉,我无法获取当前时间。”

    外部工具的引入(右侧代码):图中展示了一段简单的 Python 代码get_current_time()。这是一个可以获取系统当前真实时间的“工具”。

  • 拥有工具的 LLM(下方的流程):赋予 LLM 访问该工具的能力后,面对同样的问题,LLM 就可以给出准确的答案:“现在是下午 3:20。”(It’s 3:20pm.)

下面简单展示一下简单的工具执行操作:

这个图揭示了 LLM 内部是如何处理工具调用的:

  • 调用工具的完整流程(上方的流程):
    1. 用户输入提示语:用户询问“现在几点了?”。
    2. LLM查看可用的工具集:LLM 接收到问题,检查自己拥有的工具箱(Tools),发现里面有一个get_current_time工具。
    3. LLM决定调用哪个工具:LLM 意识到要回答这个问题必须使用该工具,于是触发工具调用
    4. 工具会反馈给大模型:工具执行并返回原始结果(例如图中的15:20:45)。
    5. 大模型会输出最终结果:LLM 接收这个时间数据,将其转化为自然语言(“It’s 3:20pm.”)并输出给用户。

工具使用的一个重要方面是:可以让大模型自主决定是否使用这些工具中的任何一个(自主决策

  • 按需选择工具的流程(下方的流程):
    1. 用户询问“绿茶里有多少咖啡因?”。
    2. LLM 同样检查工具箱(里面依然只有get_current_time)。
    3. 关键:LLM 能够理解语境,它判断出“获取当前时间”这个工具对于回答“咖啡因含量”毫无帮助
    4. 因此,LLM 选择不调用任何工具,而是直接利用自己预训练的内部知识库给出答案(“绿茶通常每杯含有 25-50 毫克咖啡因…”)。

工具调用的具体示例 (Examples)

  • 场景一:网络搜索 (Web Search)
    • 用户:想找加州山景城附近的意大利餐厅。
    • LLM 动作:识别出需要搜索信息,调用web_search工具,并准确地将用户的话提炼为搜索关键字参数:query="restaurants near Mountain View, CA"
  • 场景二:数据库查询 (Database Query)
    • 用户:让我看看买了白色太阳镜的客户。
    • LLM 动作:识别出这是一个数据检索需求,调用query_database工具,并像程序员一样提取出关键字段:表名 (table="sales")、产品 (product="sunglasses")、颜色 (color="white")。
  • 场景三:数学计算 (Math Calculation)
    • 用户:存500美元,利息5%,10年后有多少钱?
    • LLM 动作:LLM 知道自己直接做复杂数学题容易出错,于是调用专用的计算工具。它不仅能调用像interest_calc这样预设好参数的函数,甚至能直接写出数学表达式并使用eval工具执行计算(500 ∗ ( 1 + 0.05 ) 10 500 * (1 + 0.05)^{10}500(1+0.05)10)。

结论:LLM 具备强大的意图识别与参数提取能力。它不仅知道“该用什么工具”,还能从口语化的提问中抓取工具运行所需的格式化数据。


上面都是单个工具的例子,但是很多场景下,我们希望为大模型提供多个工具或函数,具体例子如下:

多工具的组合与链式调用 (Multiple tools)

当一个任务无法用单一工具完成时,LLM 可以按逻辑顺序调用多个工具。

  • 复杂任务拆解:用户下达了一个复合指令:“在我的日历上找一个周四的空闲时间,并和 Alice 预约一个会议。”
  • 步骤 1:收集信息 (调用第一个工具)
    • LLM 接收到指令后,评估工具箱(包含预约、查日历、删除预约)。它判断出第一步必须先知道有哪些时间是空闲的。
    • 因此,它触发了check_calendar检查日历)工具。
    • 工具返回了结果:周四下午 3pm, 4pm, 6pm 有空。
  • 步骤 2:执行动作 (调用第二个工具)
    • LLM 接收到了空闲时间数据。现在它进入任务的第二阶段:创建会议
    • 它再次调用工具,这次选择了make_appointment创建预约),并智能地从上一步的时间列表中挑了一个(例如 3pm),作为参数传给该工具执行。
    • 工具返回结果:“会议创建成功!”。
  • 步骤 3:最终反馈
    • LLM 将所有操作的结果汇总,用自然语言向用户报告:“您的预约已设定在周四下午 3 点与 Alice 进行。”

通过上面的单个工具调用以及多个工具调用的例子,我们不难发现,工具对于LLM来说是很重要的,能提供给LLM更强大的外部感知能力!

如果这篇文章对你有帮助,欢迎点赞、评论、关注、收藏。你们的支持是我前进的动力!

http://www.jsqmd.com/news/923890/

相关文章:

  • 2026 中山汽车音响改装行业标杆:南岸声学五大核心维度全面领先,重新定义行业标准 - 汽车音响改装
  • 郑州市 二七区 甲醛检测除醛|维小达 甲醛 CMA 检测、新房除甲醛、工装空气治理、异味根除、苯系物 TVOC 综合治理一站式服务 - 维小达科技
  • 基于Arduino的自动吉他调音器:从FFT算法到伺服控制的完整实现
  • 微信聊天记录如何永久保存?5步掌握数据自主管理终极指南
  • 【Agent智能体14 | 工具使用-如何创建工具】
  • Zotero Style插件:如何彻底改变你的文献管理体验
  • 告别Python环境混乱:用Miniconda3创建项目专属环境的保姆级教程
  • 2026鞍山防水补漏公司怎么选?三家主流品牌实力全方位对比 - 吉修匠
  • 别再只懂TF-IDF了!用Python sklearn实战TF-IWF,搞定同类文本关键词提取难题
  • 不只是抓包:用Ubertooth One和Wireshark搭建你的第一个蓝牙LE嗅探环境
  • 温州黄金回收实测:六家上门机构谁更靠谱? - 黄金回收
  • 从零打造Arduino蜘蛛机器人:舵机控制与步态算法详解
  • 20251905 2025-2026-2 《网络攻防实践》实验九
  • HackMyVM-Quick3
  • 3步掌握消息留存神器:RevokeMsgPatcher深度解析与实战指南
  • novel-downloader:终极跨站点小说下载器深度实战指南
  • 终极实战指南:如何用Arduino-IRremote库解决15种红外遥控协议兼容性问题
  • 论文写作高效落地:百考通AI全流程辅助功能实战解析
  • 免费开源AMD锐龙调试工具SMUDebugTool:释放处理器潜能的终极指南
  • 2026年2月衢州黄金回收实录:今日金价677元,警惕高价引流陷阱 - 黄金回收
  • 别再只调包了!用ResNet18/50在CIFAR-10上跑出第一个模型(环境配置+训练技巧避坑)
  • 盐城黄金回收实体店全解析:资质、鉴定、报价与上门服务 - 黄金回收
  • ROS2多机通讯实战:当WiFi局域网遇上虚拟机,如何用集中式发现协议绕过UDP组播限制?
  • 2026年4月质量好的焊管供应商推荐,对焊法兰/不锈钢无缝管/弯头/耐蚀合金无缝管/不锈钢法兰,焊管供货商哪家靠谱 - 品牌推荐师
  • 基于Arduino与超声波传感器的手势识别游戏机设计与实现
  • 电路设计从实验室到生活:创客实践与多元应用场景解析
  • 为什么Windows 10用户需要这个3步搞定OneDrive的卸载神器?
  • 绍兴金价高位变现攻略:上门回收实测6家机构,实时金价1300元/克 - 黄金回收
  • 告别调参炼丹!看VOYAGER如何用‘提示工程’在《我的世界》里从砍树到挖矿
  • SpringBoot整合Milvus向量数据库