一个 JSON 让 AI 从嘴炮王变全能工具人
😭 胖虎:"让 AI 帮我订明天飞东京的机票,它只会说'你可以去携程看看'!"
大雄一看:纯聊天 LLM 没有手,只能生成文本、不能真正执行动作。
❌ 误区:模型越大能做越多。
✅ 真相:LLM 只负责"决定调哪个函数、传什么参数"——真正执行靠外部系统。Function Calling = 给 LLM 一份工具菜单 + 让它填参数表。
哆啦A梦掏出「万能遥控器 🎮」——AI 按按钮(输出 JSON),外面的工具就动起来了!
🎯 三步搞懂:
1️⃣ 注册工具(JSON Schema):告诉 LLM "你有这些工具可用"——函数名、参数名、类型、必填/可选。相当于给它一本说明书。
2️⃣ LLM 输出调用指令:用户说"订明天飞东京的机票",LLM 输出 {"function":"book_flight","args":{"date":"2026-07-04","dest":"Tokyo"}}。它不执行,只决策。
3️⃣ 系统执行 + 返回结果:后端拿到 JSON 真正去调 API,把结果返回给 LLM 继续对话。LLM = 大脑,Function = 手脚。
小夫炫耀:"我直接让 LLM 输出 Python 代码去执行,比 JSON 灵活!"
哆啦A梦:"那它输出个 rm -rf / 你也执行?JSON Schema 有类型校验+白名单,安全+可控。"
小夫吓得脸都白了。
实战场景:
✅ 查天气/股价:调第三方 API
✅ 发邮件/日程:调 Google/Office API
✅ 操作数据库:text-to-SQL 执行
✅ 多工具串联:ReAct 循环调多个 function
搞笑反转:大雄让 AI "帮我跟妈妈请假"——结果 Function Calling 输出 {"function":"send_message","args":{"to":"妈妈","text":"大雄今天不想上学"}}。妈妈收到后冲进房间,大雄被拖着去了学校。哆啦A梦:"参数没错,但你忘了设 tone='撒娇'。"
📌 一句话:Function Calling = 给 LLM 一本工具菜单让它选+填参数——是 Agent 从"能说"进化到"能做"的原子能力。
💬 互动:你最想让 AI 调什么工具?
A. 订机票酒店 ✈️ B. 发邮件消息 📧 C. 查数据库 🗃️ D. 控制智能家居 🏠
夜雨聆风