✨ 复制成功!

以文会友,打造好学人设!

📋 已复制到剪贴板:

【补充内容】大模型函数调用(Function Calling)详细介绍

创建时间:2026-10-20 更新时间:2026-10-20 阅读次数:1052 次 分类:Agent与RAG应用

函数调用(Function Calling)的诞生背景

2023年6月,OpenAI在GPT-4上推出了Function Calling:模型不仅能生成文本,还能输出一个结构化的函数调用请求,指定要调用的函数名和参数。

这意味着什么?在此之前,让LLM“做事情”是极其别扭的——你需要设计复杂的Prompt诱导模型输出特定格式的文本,然后用正则表达式去解析这个文本,稍有不慎就解析失败。

Function Calling让这件事变成了模型的原生能力:

{
  "tool_call": {
    "name": "get_weather",
    "arguments": {
      "city": "北京",
      "date": "2026-08-25"
    }
  }
}

模型不再“模拟”调用工具,而是真正输出一个可执行的调用指令。这就像给学者装上了一个标准的“手部接口”——从此以后,只要能连接到这个接口的工具,他都能用。随后,Claude、Gemini、Llama等主流模型都跟进提供了类似能力。工具调用的标准化,是Agent从理论走向工程实践的基石。

什么是函数调用(Function Calling)?

函数调用(Function Calling),也称为工具调用(Tool Calling),是现代大语言模型(LLM)的一项重要能力。它允许模型在对话过程中识别用户意图,并生成结构化的函数调用指令,从而与外部系统、API 或工具进行交互。

为什么需要函数调用(Function Calling)?

大语言模型虽然拥有丰富的知识,但存在以下局限性:

局限性说明函数调用的解决方案
知识时效性训练数据有截止日期,无法获取实时信息调用搜索引擎、新闻 API 等获取最新数据
计算能力复杂数学计算可能出错调用计算器、代码执行器等工具
数据访问无法访问私有数据库或内部系统调用数据库查询接口、内部 API
执行能力只能生成文本,无法执行实际操作调用发送邮件、创建订单等执行类 API

大模型的三个主要局限性

知识的局限性:大模型是在一个巨大的静态数据集上训练的。这意味着它们的知识是有限且过时的。它们不知道现在实时的天气、最新的新闻、某只股票的实时价格,或者你个人日历上的日程安排。

能力的局限性:大模型本质上是一个“文本生成器”。它能处理语言,但它无法执行实际的操作。它不能真的发送一封电子邮件、在数据库中查询数据、或者在你的设备上设置一个闹钟。

精确性的局限性:虽然大模型擅长生成连贯的文本,但对于需要精确、结构化数据的任务,比如查询一个地址,它们可能会出现幻觉(Hallucination),也就是编造信息。

函数调用(Function Calling)的工作流程

第一步:开发者定义和提供工具(Functions)

在最开始,你需要告诉大模型它有哪些“工具”可用。这就像你给一个助手一个工具箱,并告诉他每个工具的作用。

第二步:大模型响应,返回函数调用指令

当用户提出一个请求(例如:“北京现在多少度?”),大模型接受请求后,会识别出它需要调用一个外部工具来获取信息。它的响应不会是常规的文本回复,而是一个结构化的函数调用参数。

第三步:客户端调用外部工具

这是整个流程中最关键的步骤。客户端在接收到大模型的响应之后,需要完成检查响应、解析指令、执行函数、调用实际的函数/API,获取结果。

第四步:发送结果并获取最终回复

这一步的核心任务是将执行结果发回模型,模型生成最终的自然语言回复。大模型接收到所有这些信息后,会利用函数执行的结果,生成一个自然流畅的最终回复给用户:“背景现在晴朗,气温是34°C。”

函数调用(Function Calling)的工作流程示意图


📌 面试天下网:一款服务于大一新生的口袋书,让大家在无聊的公共课上可以学习大模型技术!
📌 网站公告:【悬赏 200 元/篇】寻找“大模型面试战场”的一手回忆录
📌 网站公告:【大模型/Agent面试陪练1V1指导】正式启动......

评论专区

评论加载中...