1分钟搞懂什么是Function Calling?AI大模型能自己调用工具?

187 阅读2分钟

Function Calling(函数调用)是大模型领域的一项关键技术,简单说就是让AI学会“摇人帮忙”以及知道什么时候要摇人。

当它遇到自己搞不定的事情(比如查实时数据、操作软件、专业计算等),能自动呼叫外部工具、服务或函数来完成任务。Function Calling可以通过自然语言来实现。

跟MCP不同的是,FunctionCalling更关注让LLM知道使用什么工具,在何时使用,比如说让LLM知道现在要调用天气的API。

图片

Function Calling 决策的过程

1.理解用户输入

用户用自然语言提问(如“帮我订周五的机票”),Function Calling理解意图,提取实体

2.上下文管理

结合之前的对话内容,进一步揣测用户意图

3.识别功能并调用

调用内部函数和外部API,匹配预设工具(如“机票查询API”)生成结构性指令

4.生成输出内容

外部工具执行后返回结果(如航班号、价格)AI整合结果生成回复:“已为您预订XX航班,价格1980元”

图片

Function Calling、MCP、A2A有什么区别?

Function Calling用于使模型与外部工具/API连接,能够调用他们的服务

MCP核心是使模型与数据源和外部工具无缝集成,成为Agent

A2A是为了让Agent间能互相通信协作

图片

图片

function call 运行原理

图片

因此,当大模型需要使用function call能力时,大模型至少会被调用两次

1.大模型生成工具可用的JSON结构

2.大模型根据工具返回结果作为上下文进行答案生成

在整个程序运行的过程中,大模型的本质作用:

-理解用户需求,判断是否调用工具、调用哪些工具?

若需要调用工具,则把自然语言转化为工具需要的结构化语言

-对用户问题+调用工具后的结果进行答案生成,返回给用户

其最终本质还是离不开大模型生成式的原理(废话哈哈,目的是为了更好理解误区)

误区:

大模型本身没有调用工具、执行工具的能力

是我们通过程序让大模型生成工具参数,并通过程序帮大模型执行工具

最后感叹一下:

开发工程师设计的太精妙了!完美利用了大模型的特质,再根据代码程序进行结合实现,在这样的工程实现下相当于给大模型进行了包装,让大模型看起来"拥有了"调用工具的能力

AI大模型系统化学习入口