函数 / 工具调用

Function / Tool Calling

又称: 函数调用 · 工具调用 · Tool use

模型按预先声明的结构化格式请求执行某个外部函数、拿到结果后继续生成的能力,是几乎所有智能体能力的底座。

Model emitsJSON callRuntimeexecutes fnResult backto modelstructured, schema-checked
示意图(简化)

一次调用的流程

  1. 应用在请求里附上工具清单(每个工具的名称、用途、参数 JSON Schema)。
  2. 模型不直接执行代码,而是输出一段结构化数据:“我要调用 get_weather,参数 {city: "Paris"}”。
  3. 应用侧代码真正执行这个函数,把返回值作为一条新消息回填。
  4. 模型基于结果继续——可能再调下一个工具,或给出最终回答。

为什么关键

它把模型从“只会生成文本”变成“能触发确定性操作并读到真实结果”。智能体循环、MCP、检索增强,本质上都建立在这一机制之上。约束参数用 schema,是为了让调用可校验、可靠、可复现。

常见误解

  • 模型本身不执行函数,只是产出“调用意图”,执行由你的运行时负责。
  • 工具调用是否成功很依赖工具描述写得好不好——描述模糊,模型就选错或传错参数。

相关术语

参考来源

  1. Anthropic — Claude Docs: Tool use (function calling)
  2. OpenAI — Function calling guide

整理于 2026-08-29 · 本术语表基于公开论文、官方规范和行业通用定义整理,随领域发展会更新。发现问题欢迎反馈。