今天写的是一篇衍生文章。以前在跟国内某大模型大厂合作的时候我们提了一些建议,说你们现在支持的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 | | |
在AI Agent和大模型应用中,“Tool Calling” 和“Function Calling” 是两个概念上相关、实现上逐渐分化的能力。它们的核心区别主要在于:
一句话区别: | | |
|---|
| | 模型调用一个“工具”——可能是函数、API、Agent、数据库等 | | 函数级调用 | 系统级调用 | | | | | | |
示例对比(场景:预定会议室) | | |
|---|
| | | | | Tool 包含:会议室数据库 + 调用链逻辑 + 用户偏好 | | | | | {"room": "301", "time": "3pm"} | |
哪种更适合 AI Agent 应用?
总结对比表:最后我们让Gemini出了一份对比,为什么要强调是Gemini出的呢,因为...反正不是我们出的。 |