🔵 Function Calling:AI 如何调用工具——从”会说”到”会做”的关键一步
一个只会说话的 AI 是聊天机器人。 一个会”调工具、查接口、做事”的 AI 是Agent。 中间那一步,叫 Function Calling。
🔵 AI 通识专栏 · 第 31 期 📅 2026年8月8日 ✍️ 小敏说 AI
💡 本文要点:本文讲清 Function Calling 是什么、它如何让 AI 真正”动起来”、典型流程、5 个真实场景,以及为什么它是通往 Agent 的必经之路。
🎯 本文导读
- 🔹 一句话理解 Function Calling
- 🔹 没有 vs 有 Function Calling
- 🔹 完整调用流程
- 🔹 5 个真实场景
- 🔹 它和 MCP 的关系
一、🛠 一句话理解
Function Calling = LLM 在回答时,知道”该调用某个外部函数”,并按约定格式返回参数。
举个例子:
用户:"上海明天天气怎么样?"
无 FC:AI 编一个"上海明天 25 度晴" → 大概率是瞎说
有 FC:AI 返回 {function: "get_weather", args: {city: "上海", date: "明天"}}
→ 程序真的去查接口 → 把结果再喂回 AI → AI 总结回复
💬 关键观点:FC 让 LLM 从”文字生成器”变成”决策中枢”。
二、⚖️ 没有 FC vs 有 FC
| 能力 | 没有 FC | 有 FC |
|---|---|---|
| 查实时天气 | 编 | 真查 |
| 查数据库 | 编 | 真查 |
| 发邮件 | 不会 | 调 SMTP |
| 算复杂数学 | 错 | 调计算器 |
| 控制智能家居 | 不会 | 调 API |
三、🔁 完整流程
1. 你定义一组函数(带名字 + 参数 schema)
2. 用户提问
3. LLM 判断:是否需要调用函数?
- 不需要 → 直接回答
- 需要 → 返回函数名 + 参数
4. 你的程序真的执行该函数
5. 把结果回传 LLM
6. LLM 基于结果给最终回复
🎯 一句话总结:LLM 负责”想”,你的代码负责”做”。
四、💼 5 个真实场景
- 天气助手 —— 实时查询
- 企业内部问答 —— 查 ERP / CRM 数据
- AI 下单系统 —— 帮用户调电商接口
- 会议助手 —— 自动建日历、发邀请
- AI 客服 —— 查订单、改地址、申请退款
五、🧪 一段最简代码(伪代码)
tools = [{
"name": "get_weather",
"description": "查询某城市某天天气",
"parameters": {"city": "string", "date": "string"}
}]
response = llm.chat(messages, tools=tools)
if response.tool_call:
result = my_weather_api(**response.tool_call.args)
final = llm.chat(messages + [tool_result(result)])
40 行代码,一个真正”会查天气”的 AI 就跑起来了。
六、🔗 FC 和 MCP 的关系
Function Calling = AI ↔ 单个函数
↓
MCP(Model Context Protocol)= AI ↔ 一整套工具/资源的"标准插头"
⚠️ 重要提醒:FC 是”会做事”的起点;MCP 是把”做事”标准化、跨厂商可复用。下一篇 ep33 详讲。
七、❌ 常见误区
| 误区 | 真相 |
|---|---|
| ❌ FC 是 OpenAI 特性 | ✅ 主流大模型都支持 |
| ❌ 有 FC 就不会幻觉 | ✅ 仍可能传错参数 |
| ❌ 函数定义越多越好 | ✅ 函数太多模型会蒙 |
| ❌ FC = Agent | ✅ FC 是 Agent 的组件之一 |
八、🎁 给非技术读者的 FC 心法
🔑 FC 让 AI "动手",而不只是"动嘴"
🔑 它是企业 AI 应用 70% 的实现方式
🔑 它解释了为什么 Siri 终于变聪明了
🔑 它是 Agent 时代的入场券
📮 今日话题:你最希望 AI 能”代你做”的一件事是什么?
🔮 下一篇预告:ep32《Agent 是什么?从 ReAct 到 AutoGPT——AI 自主完成任务的真相》
🔵 本系列是「小敏说 AI · AI 通识专栏」第 31 期。 关注公众号 小敏说 AI,回复「AI 入门」领取《打工人 AI 自救工具箱》。