为何需要外部工具

一、大模型的天生缺陷

1.1 一个看似简单的问题

想象一下,你问 AI:“今天北京的天气怎么样?”

AI 会怎么回答?

如果它老实,会说:“我无法获取实时天气数据,请查询天气网站。”

如果它不老实,可能会根据训练数据(可能是几个月前的)胡编一个答案,比如:“北京今天晴,25℃。” —— 但今天可能是下雨天。

这就是大语言模型天生的缺陷:它只有“知识”,没有“感知”。

大语言模型本质是一个“超级记忆体”,它记住了海量的文本知识,但它无法主动获取任何实时信息,也无法执行任何操作。

1.2 人类是怎么解决这个问题的?

如果一个人被问到“今天北京的天气怎么样”,他会怎么做?

  1、打开手机上的天气 App

  2、查看北京今天的天气

  3、把看到的结果告诉你

这个人“调用”了天气 App 这个“工具”。

AI 也是一样 —— 只要它能“调用”外部工具,它就不再是“瞎子”和“聋子”了。

1.3 工具调用的核心思想

工具调用(Function Calling)的本质是:让 AI 能够“请求”执行一个外部函数,而不是自己“猜测”答案。

这个“请求”的过程,就是工具调用。

常规的API调用只需发送用户问题,现在需要同时发送用户问题和工具定义,这样大模型才能根据用户问题生成合适的工具调用请求。

二、工具调用的“六步舞曲”

2.1 完整流程

假定我们定义了一个工具get_weather,用于获取指定城市的天气。

如果要通过DeepSeek使用这个工具查询北京的天气,完整的交互流程如下:

步骤 环节说明 具体内容
第 1 步 用户提问 用户输入:今天北京的天气怎么样?
第 2 步 第一次 HTTP 请求 将用户问题和get_weather工具定义发给 DeepSeek API
第 3 步 AI 返回调用计划 AI 返回工具调用指令:get_weather(city="北京")
第 4 步 代码执行工具函数 你的代码执行 get_weather("北京"),拿到结果:"晴,25℃"
第 5 步 第二次 HTTP 请求 将工具执行结果("晴,25℃")发回给 DeepSeek API
第 6 步 AI 生成最终回答 AI 根据工具结果生成自然语言回复:“今天北京天气晴朗,气温 25℃。”

2.2 关键认知:AI 不执行任何代码!

这是最重要的一点:AI 本身不执行任何函数。

AI 只做两件事:

AI 做的事 说明
决定调用哪个工具 根据用户问题从你提供的工具列表中选择合适的工具
生成调用参数 根据用户问题生成 JSON 格式的参数

执行工具的人是你(你的代码)。 AI 只是告诉你“我想用这个工具,参数是这个”,然后你据此执行相应的代码,并将执行结果告诉它。

 记住一句话:AI 负责“想”,你负责“做”。


本页地址:http://www.foxtable.com/webhelp/topics/7212.htm