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 API | ChatGPT 插件、GPTs | 任何 REST API |
主流平台的工具调用支持
| 平台 | 工具调用机制 | 特点 |
|---|---|---|
| OpenAI | Function Calling | 生态最成熟,文档完善 |
| Anthropic | Tool Use | Claude 的工具调用接口 |
| Function Calling | Gemini 的工具调用 | |
| Qwen | Function Calling | 通义千问的工具调用 |
| DeepSeek | Function Calling | 支持 OpenAI 兼容格式 |
| Llama 3.1 | Function Calling | 开源模型中支持较好 |
如果你用 OpenAI 兼容格式(很多国产模型和开源模型都支持),切换模型的成本很低,只需要改 API 地址和 Key。
工具调用在 Agent 中的位置
工具调用是 AI Agent 的核心能力之一。没有工具调用,Agent 就只是一个能说话的模型;有了工具调用,Agent 才能真正执行任务。
一个典型的 Agent 会定义多个工具:
- 搜索工具:查实时信息
- 代码执行工具:跑计算、处理数据
- 数据库工具:查业务数据
- 文件工具:读写文档
- API 工具:调用第三方服务
模型根据用户的需求,自主决定调用哪些工具、按什么顺序调用、如何处理中间结果。这就是 Agent 和普通对话的核心区别。
想深入了解 Agent 的整体架构,可以看 AI Agent 是什么。
开发者需要注意的问题
1. 工具定义要清晰
模型根据工具的名称和描述来决定是否调用。如果定义模糊,模型可能会调错工具。好的工具定义应该:
- 名称直观(
search_web比tool_1好) - 描述明确说明用途和适用场景
- 参数定义包含类型、描述、是否必填
2. 参数校验不能省
模型生成的参数可能有格式错误、类型错误、甚至注入攻击。必须在执行前做严格校验。
3. 处理调用失败
工具执行可能失败(网络超时、权限不足等)。要有重试机制和降级策略,不能让一次失败毁掉整个对话。
4. 安全边界
敏感操作(删除数据、发送邮件、支付等)建议设置人工确认环节,不要让模型直接执行。
下一步
- 想动手实现一个 Function Calling?看 Function Calling 教程
- 想了解 Agent 的整体架构?看 AI Agent 是什么
- 想了解 Agent 如何管理工作流?看 AI 工作流是什么
---
本文最后更新于 2026-07-27。各平台的工具调用接口可能更新,请以官方文档为准。常见问题
相关推荐
AI Agent 是什么?从实际工作场景理解智能体
AI Agent 是什么?从实际开发经验出发,解释 Agent 的工作原理、与普通 AI 的区别、主流框架选择,以及落地时的真实边界。
AI 工作流是什么?Agent、自动化和低代码平台的关系
AI 工作流是什么?解释 AI 工作流的概念、与传统自动化的区别,以及 Dify、Coze 等平台如何构建 AI 工作流。
RAG 是什么?用外部知识增强大模型回答的实用方案
RAG(检索增强生成)是什么?从实际项目经验出发,解释 RAG 的工作原理、与微调的区别、常见坑点,以及什么场景该用什么场景不该用。
大模型上下文窗口是什么?长文本能力到底影响什么
大模型上下文窗口是什么?解释上下文窗口的概念、大小对模型能力的影响,以及如何根据任务选择合适的上下文长度。
获取更多 AI 内容
订阅更新,第一时间获取新教程和工具推荐。