叶小钗

第 03 篇 · 让大模型用工具:Function Calling 原理

上一篇 我们的程序已经可以和模型进行多轮聊天了,目前它也只能聊天,不会真正的帮我们做事情,我们都知道Agent最重要的一个能力,就是它可以主动干活,比如自己查天气,写邮件,发邮件,读取excel数据表,生成报表等。

那么Agent是怎么做事的呢,这里我们就需要引出一个关键机制:Function Calling。

Function Calling的作用,是让模型用结构化的方式表达自己的工具调用意图:它要调用哪个工具,需要传入哪些参数。

早在 2023 年 6 月,OpenAI 就在标准 API 中引入了 Function Calling。后来,不同模型厂商也陆续支持了类似能力,有的叫 Function Calling,有的叫 Tool Use,本质上都是让模型能够以结构化方式调用外部工具。

Image

Function Calling 的工作流程

大部分人在第一次接触 Function Calling,都认为是模型拿到问题后,模型自己去执行工具然后得到结果。

还有同学问我,模型是怎么执行工具的。

这个理解是错误的,模型没有运行环境,它不能执行任何代码。

它能做的事,永远只有一件:根据你给它的文字,输出文字。

Function Calling 真正的流程是这样:我们用一个天气查询的例子,来看看流程是怎么样的。

Image

图中模型第一次返回的信息是  我想调用 get_weather ,但执行这个函数的还是我们的程序。

模型只是 决定要不要调、调哪个工具、传什么参数 。