AI 为何能查天气、订机票?揭秘大模型背后的“神秘工具箱”

你有没有想过,为什么 AI 能回答"今天上海天气怎么样?"这种实时问题,甚至帮你预订机票?明明它的训练数据截止到去年,怎么会对现在的事情了如指掌?

答案就藏在一个核心技术里------工具调用(Tool Calling)

简单说,工具调用就是让大模型在遇到自己搞不定的问题时,能像我们一样,打开一个"工具箱",借用外部工具来完成任务。

这个"工具箱"里什么都有:网页搜索、计算器、API 调用、数据库查询......任何能帮它完成特定任务的,都可以是它的工具。

目前,工具调用技术已经相当成熟,几乎所有主流的 AI 大模型和开发平台都已支持。

AI 真的会"自己"调用工具吗?

一听到"工具调用",很多人会误以为是 AI 服务器自己去执行了某个工具。

大错特错!

真相是:AI 只负责"提要求",而真正干活的,是我们自己的应用程序。

整个过程更像是一个分工明确的团队协作。我们以"什么是 MCP?"这个问题为例,看看团队是如何配合的:

  1. 用户:提出问题:"什么是 MCP?"
  2. 程序(项目经理) :将问题转达给 大模型(技术专家)
  3. 大模型(技术专家):分析后发现知识库里没有,判断需要上网搜索,于是向程序提要求:"我需要用「网页抓取工具」查一下,关键词是 MCP"。
  4. 程序(项目经理) :收到请求,立刻安排 网页抓取工具(实习生) 去执行。
  5. 网页抓取工具(实习生):勤勤恳恳地完成抓取,把数据返回给程序。
  6. 程序(项目经理) :将抓取到的信息整理好,再次交给 大模型(技术专家)
  7. 大模型(技术专家):阅读信息,总结提炼,生成一份通俗易懂的回答。
  8. 程序(项目经理):最后,将这份完美的答案呈现给用户。

sequenceDiagram participant 用户 participant 应用程序 (项目经理) participant 大模型 (技术专家) participant 网页抓取工具 (实习生) 用户->>应用程序 (项目经理): 1. 提问: "什么是MCP?" 应用程序 (项目经理)->>大模型 (技术专家): 2. 传递用户问题 大模型 (技术专家)->>大模型 (技术专家): 3. 分析问题,发现知识盲区 大模型 (技术专家)->>应用程序 (项目经理): 4. 请求调用工具<br/>工具: 网页抓取工具<br/>参数: 搜索 "MCP" 应用程序 (项目经理)->>网页抓取工具 (实习生): 5. 执行网页抓取 网页抓取工具 (实习生)->>应用程序 (项目经理): 6. 返回抓取结果 应用程序 (项目经理)->>大模型 (技术专家): 7. 将结果传回 大模型 (技术专家)->>大模型 (技术专家): 8. 分析信息,生成回答 大模型 (技术专家)->>应用程序 (项目经理): 9. 返回最终答案 应用程序 (项目经理)->>用户: 10. 呈现答案 Note over 用户,网页抓取工具: 核心:AI 不直接执行工具,由应用程序协调 Note over 大模型 (技术专家): AI 只负责思考和决策 Note over 网页抓取工具 (实习生): 工具在安全可控的环境中执行

看明白了吗?AI 只是"大脑",负责思考和决策,而我们的应用程序才是"手脚",负责执行和落地。

为什么要设计得这么"麻烦"?

你可能会问:为什么不让 AI 直接调用工具,一步到位?这样来回传递不浪费时间吗?

这背后最重要的考量是------安全!

这种设计确保了 AI 永远无法直接触碰你系统的核心资源。所有操作都必须经过你程序的"批准",你拥有绝对的控制权,可以决定 AI 能做什么,不能做什么。

举个极端点的例子:假如你开发了一个"房屋爆破"工具。

  • 现在的方式:用户对 AI 说"帮我把这栋楼炸了"。AI 分析后,会向你的程序申请:"我需要使用「房屋爆破」工具"。这时,你的程序可以立刻拒绝这个危险请求,从而避免灾难。
  • 如果 AI 直接调用:AI 觉得这个需求很合理,直接就执行了。等你反应过来,房子可能已经没了。

把决定权留在我们自己手里,既能利用 AI 的智慧,又能保证系统的安全,还能减轻 AI 服务器的负担,何乐而不为呢?

工具调用 vs 功能调用

如果你在看技术文档时遇到 Function Calling(功能调用) 这个词,别懵,它和 Tool Calling(工具调用) 说的完全是同一件事!只是不同厂商或开发者习惯的叫法不同。

Spring AI 的官方文档开篇就明确了这一点:

我个人更喜欢"工具调用"这个说法,因为它更形象。"Function"一听就像是程序员的黑话,而"工具"则更加通俗易懂,不是吗?


好了,今天关于"工具调用"的分享就到这里。

希望这篇文章能帮你彻底搞懂 AI 是如何借助外部力量变聪明的。如果你觉得有收获,不妨点个赞在看 ,或者分享给更多朋友。

对于工具调用,你还有什么疑问或有趣的想法?欢迎在评论区留言讨论!