Function Calling还没弄明白,怎么又在说Tool Calling了
以前在跟国内某大模型大厂合作的时候我们提了一些建议,说你们现在支持的Function Calling实在太不靠谱了,得赶紧做,不过那个时候大家还在拼模型基础性能,感觉没空做,所以去年一年我们有两个项目只好忍痛弃用。、Claude 3.5、Gemini 2.5 这些模型中,“Tool Calling” 已成为更推荐的交互模式。,工具可以是函数、数据库、搜索器、Agent、文件系统等复合实体。模型调用
今天写的是一篇衍生文章。以前在跟国内某大模型大厂合作的时候我们提了一些建议,说你们现在支持的Function Calling实在太不靠谱了,得赶紧做,不过那个时候大家还在拼模型基础性能,感觉没空做,所以去年一年我们有两个项目只好忍痛弃用。
Function Calling 是什么?
这是最早由 OpenAI 在 GPT-4 2023 中推出的一种机制,允许你为模型注册一组函数接口,大模型基于自然语言自动输出需要调用的函数及其参数。
举例:
"function":{
"name":"get_weather",
"parameters":{
"city":"Shanghai"
}
}
你给模型定义函数,它会决定何时调用,并生成参数。
优点:
-
简洁、适合微服务对接
-
易于开发调试
-
模型直接“填表”输出函数名和参数
限制:
-
仅适合静态、结构化、无状态的调用
-
复杂交互无法表达(如多轮、异步、Agent协作)
Tool Calling 是什么?
Tool Calling 是 Function Calling 的扩展版 + 抽象升级版,它背后的理念是:
“大模型不是调用一个函数,而是调用一个工具,工具可以是函数、数据库、搜索器、Agent、文件系统等复合实体。”
在 GPT-4o、Claude 3.5、Gemini 2.5 这些模型中,“Tool Calling” 已成为更推荐的交互模式。
特征:
|
能力 |
描述 |
|---|---|
|
多模态 |
工具可以处理图像、音频、文件等 |
|
状态感知 |
工具可以保持状态(如 Agent 工具池) |
|
推理与协调 |
工具可嵌套调用,如 Agent调用另一个Agent |
|
更高抽象 |
工具可包括执行逻辑、策略、上下文打包 |
在AI Agent和大模型应用中,“Tool Calling” 和“Function Calling” 是两个概念上相关、实现上逐渐分化的能力。它们的核心区别主要在于:
一句话区别:
|
对比项 |
Function Calling |
Tool Calling |
|---|---|---|
|
本质 |
模型调用一个函数(通常为后端函数) |
模型调用一个“工具”——可能是函数、API、Agent、数据库等 |
|
范围 |
函数级调用
,偏开发视角 |
系统级调用
,偏产品/任务视角 |
|
扩展性 |
通常调用一个函数,参数规范固定 |
可以调用一个复杂组件(带上下文、权限、状态) |
|
使用场景 |
技术测试/Prompt Engineering |
多Agent、真实任务、业务流程 |
示例对比(场景:预定会议室)
|
模型动作 |
Function Calling |
Tool Calling |
|---|---|---|
|
目标 |
调用一个函数 |
使用“会议室预定工具” |
|
接口 |
JSON函数,参数:时间、地点 |
Tool 包含:会议室数据库 + 调用链逻辑 + 用户偏好 |
|
复杂度 |
只能做一层调用 |
可包含权限校验、与日历同步、多轮反馈 |
|
输出 |
{"room": "301", "time": "3pm"} |
返回整个预定流程状态(是否成功、是否冲突等) |
哪种更适合 AI Agent 应用?
|
应用场景 |
建议机制 |
|---|---|
|
简单工具调用,如查天气、查汇率 |
✅ Function Calling |
|
多Agent协同、任务分解、多轮执行 |
✅ Tool Calling 更佳 |
|
B端系统对接(有权限/上下文控制) |
✅ Tool Calling 更强 |
|
构建可扩展平台(如Navi) |
✅ Tool = 抽象组件,更灵活 |
总结对比表:
|
项目 |
Function Calling |
Tool Calling |
|---|---|---|
|
诞生时间 |
2023 GPT-4 初期 |
2024 GPT-4o / Claude 3.5 |
|
接口类型 |
函数原型 (name + params) |
工具对象 (name + desc +行为) |
|
是否支持状态/记忆 |
❌ 无状态 |
✅ 可状态化、持久化 |
|
是否支持嵌套调用 |
❌ 一次一调用 |
✅ 可递归/多步计划 |
|
是否支持异步 |
一般无 |
✅ 通常具备(Tool Agent) |
|
多模态支持 |
❌ |
✅ 图像、语音输入 |
|
实用场景 |
技术测试、微调用 |
任务代理、工作流、多Agent系统 |
最后我们让Gemini出了一份对比,为什么要强调是Gemini出的呢,因为...反正不是我们出的。

更多推荐
所有评论(0)