首页 / 教程 / 进阶技巧

Function Calling 入门:让 AI 学会「调用工具」而不是只会聊天

问模型「北京现在多少度」,它只会抱歉地说自己连不了网——因为模型天生只会「说」,不会「做」。要让它真正查天气、读数据库、发邮件,靠的就是 Function Calling(函数调用)。上一篇聊 MCP 时提过它的身影,这篇把它本身的原理一次讲透。

Function Calling 是什么?给 AI 配一个「对讲机」

你可以把模型想象成一个很聪明、但被关在房间里的顾问:它只能隔窗喊话。Function Calling 就是在墙上装一部对讲机——你先告诉它「有哪几部设备可以用」(工具定义),它遇到需要动手的问题时,不会瞎编答案,而是通过对讲机喊一句「帮我调天气查询,参数是北京」。真正去执行代码的是你的程序,模型只负责「决定调什么、填什么参数」。

一次完整调用,其实就五步

整个流程像点外卖:用户下单 → 平台派单 → 商家做好 → 骑手送回 → 用户收货。对应到技术上:

  1. 声明工具:在请求的 tools 字段里列出工具名、用途描述和参数表,随消息一起发给模型
  2. 模型决策:模型判断这个问题需不需要用工具;需要的话不直接回答,而是返回一个 tool_calls,带上工具名和 JSON 参数
  3. 你的代码执行:程序解析参数,真实调用天气 API、数据库或任何本地函数,拿到结果
  4. 结果回填:把执行结果以 role=tool 消息追加回对话,再请求模型续写
  5. 组织回答:模型把生硬的接口数据翻译成一句人话——「北京今天 22℃,晴,适合出门」

整个过程模型可以连续多轮调用多个工具,比如先查日历、再查天气、最后帮你拟一份出行提醒——这就是 Agent 的雏形。

工具定义写得好不好,决定成功率

模型选工具全靠读你的「说明书」。说明书含糊,它就会拿错零件。三个写法要点:

一个容易踩的认知坑:模型永远不会真的执行你的函数。它只是「点菜」,做菜和上菜始终是你的代码的事——所以参数校验、异常处理、超时控制都得自己做。

常见问题

哪些模型支持 Function Calling?

主流对话模型基本都支持,比如 glm-5.3kimi-k3deepseek-v4-flash 等。在模型列表里挑一个,把请求发到 https://api.aigcbreeze.cn/v1/chat/completions,加上 tools 字段即可,用法与 OpenAI 接口兼容。

它和 MCP 是什么关系?

Function Calling 是模型 API 层面的基础能力——「一次调用怎么走」;MCP 则是在它之上的一套标准协议,解决「工具从哪来、怎么统一接入」的问题。很多 MCP 客户端底层正是把 MCP 工具翻译成 Function Calling 再喂给模型。

模型总是乱填参数怎么办?

三个办法:把参数说明写得更具体并在描述里给例子;收窄参数类型,能用枚举就别用自由文本;代码侧加一层校验,不合法就带着错误信息回填给模型,让它自己修正后再试一次。

挑个模型,把工具接起来试试

从一个最简单的「查询类」工具开始,跑通五步流程,你会发现让 AI 干活没那么神秘。

留言交流

有问题、有补充,写两句吧~留言会实时显示在下方(无需注册)。

留言加载中…
← 上一篇:MCP 是什么? 下一篇:Cherry Studio 接入教程 →