【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更强大的外部感知能力!

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

相关推荐
一水鉴天3 小时前
映射、哈希表与哈斯图:计算机科学的三种基线 20261003(元宝)
开发语言·人工智能
198******126343 小时前
2026 企业 AI 办公产品选型指南:从场景匹配判断工具价值
人工智能
玫瑰互动GEO4 小时前
GEO优化学习九级模型:开发者从认知层切入
人工智能·ai·ai搜索·gem·生成式引擎优化·gem优化
海绵宝宝转agent4 小时前
learn-claude-code第1-5章开源学习笔记分享
人工智能·笔记·python·学习
每天都要写算法(努力版)4 小时前
【行业前沿报告】DAgger:让智能体在自己走到的状态上学习
人工智能·学习·机器学习
liron714 小时前
智能实体演化系统的统一性概念
人工智能·深度学习·神经网络
呆萌很4 小时前
常用骨干网络预训练输入尺寸
人工智能
Yolanda_20224 小时前
19.神经网络-最大池化的使用
人工智能·深度学习·神经网络
2601_949950635 小时前
练题簿在线免费刷题 从资料整理到考前自测
面试·职场和发展·pdf·word·刷题
W***25925 小时前
2026 企业 AI 办公平台选型指南:可完成全链路任务的 AI 工具评估
人工智能