跳转到正文
AI 科普·

AI 工具调用是什么?Function Calling、插件和 API 怎么区分

AI 工具调用是什么?解释 Function Calling 的原理、与插件和 API 调用的区别,以及工具调用在 AI Agent 中的作用。

什么是工具调用

你在用 ChatGPT 或 Claude 的时候可能注意到,它们现在能联网搜索、能执行代码、能读取文件。这些能力不是模型本身具备的,而是通过"工具调用"实现的。

工具调用(Tool Calling / Function Calling)是让大模型能够使用外部工具的机制。模型本身只能生成文本,但通过工具调用,它可以:
  • 搜索互联网获取实时信息
  • 执行代码做计算
  • 查询数据库拿数据
  • 调用第三方 API 完成操作
  • 读写文件系统

简单说:工具调用让大模型从"只能说话"变成"能干活"

Function Calling 是怎么工作的

Function Calling 的工作流程分四步:

1. 你定义工具

  • 用户发送请求,模型判断是否需要调用工具

  • 模型生成调用指令(工具名 + 参数),你的代码执行

  • 执行结果返回给模型,模型生成最终回答

举个具体例子:

# 1. 定义一个查询天气的工具

tools = [{

"name": "get_weather",

"description": "查询指定城市的天气",

"parameters": {

"city": {"type": "string", "description": "城市名称"}

}

}]

# 2. 用户问:"北京今天天气怎么样?"

# 3. 模型判断需要调用工具,生成指令:

# {"name": "get_weather", "parameters": {"city": "北京"}}

# 4. 你的代码执行查询,返回结果

# 5. 模型根据结果生成回答:"北京今天晴,气温 25°C..."

关键点:模型只生成调用指令,不执行工具。执行逻辑由你的代码控制,这意味着你可以完全掌控工具的安全边界。

工具调用 vs 插件 vs API 调用

这三个概念容易混淆,但定位完全不同:

维度Function Calling插件(Plugin)普通 API 调用
面向谁开发者终端用户开发者
工具定义你自己定义平台预置接口固定
执行逻辑你自己实现平台执行你直接调用
谁决定调用大模型判断用户选择 / 平台逻辑你的代码
灵活度最高中等最低
典型产品OpenAI API、Claude APIChatGPT 插件、GPTs任何 REST API
插件是 Function Calling 的产品化封装。ChatGPT 的插件、GPTs,Claude 的 Tool Use,本质都是平台帮你定义好了工具,你直接用。 普通 API 调用是你的代码直接调用一个接口,没有大模型参与决策。 Function Calling 是让大模型理解你的意图后,自己决定要不要调用工具、调用哪个、传什么参数。

主流平台的工具调用支持

平台工具调用机制特点
OpenAIFunction Calling生态最成熟,文档完善
AnthropicTool UseClaude 的工具调用接口
GoogleFunction CallingGemini 的工具调用
QwenFunction Calling通义千问的工具调用
DeepSeekFunction Calling支持 OpenAI 兼容格式
Llama 3.1Function Calling开源模型中支持较好

如果你用 OpenAI 兼容格式(很多国产模型和开源模型都支持),切换模型的成本很低,只需要改 API 地址和 Key。

工具调用在 Agent 中的位置

工具调用是 AI Agent 的核心能力之一。没有工具调用,Agent 就只是一个能说话的模型;有了工具调用,Agent 才能真正执行任务。

一个典型的 Agent 会定义多个工具:

  • 搜索工具:查实时信息
  • 代码执行工具:跑计算、处理数据
  • 数据库工具:查业务数据
  • 文件工具:读写文档
  • API 工具:调用第三方服务

模型根据用户的需求,自主决定调用哪些工具、按什么顺序调用、如何处理中间结果。这就是 Agent 和普通对话的核心区别。

想深入了解 Agent 的整体架构,可以看 AI Agent 是什么

开发者需要注意的问题

1. 工具定义要清晰

模型根据工具的名称和描述来决定是否调用。如果定义模糊,模型可能会调错工具。好的工具定义应该:

  • 名称直观(search_webtool_1 好)
  • 描述明确说明用途和适用场景
  • 参数定义包含类型、描述、是否必填

2. 参数校验不能省

模型生成的参数可能有格式错误、类型错误、甚至注入攻击。必须在执行前做严格校验。

3. 处理调用失败

工具执行可能失败(网络超时、权限不足等)。要有重试机制和降级策略,不能让一次失败毁掉整个对话。

4. 安全边界

敏感操作(删除数据、发送邮件、支付等)建议设置人工确认环节,不要让模型直接执行。

下一步

---

本文最后更新于 2026-07-27。各平台的工具调用接口可能更新,请以官方文档为准。

常见问题

相关推荐

获取更多 AI 内容

订阅更新,第一时间获取新教程和工具推荐。