Function Calling
一句话:让模型按结构化参数请求调用某个函数,再由程序执行真实逻辑。
它是什么
Function Calling是工具调用的一种常见实现方式。开发者先声明函数名称、用途和参数结构,模型在需要时返回要调用的函数和参数,真正的函数执行由你的后端完成。它适合把自然语言变成结构化业务操作。
适合干什么
- 做AI应用后端的开发者
- 想把用户语言转成API参数的人
- 需要AI创建订单、查库存、生成报告的系统
- 需要结构化输出而不是散文答案的场景
不适合干什么
- 没有后端执行逻辑的纯聊天页面
- 函数权限没有隔离的生产系统
- 参数边界很复杂但没有校验的任务
- 让模型直接操作数据库的危险设计
普通人怎么用
- 定义函数名和用途
- 用JSON Schema描述参数
- 把用户问题交给模型判断是否调用
- 后端执行函数并返回结果
- 模型根据结果生成最终回答
进阶用户怎么用
- 为每个参数写清类型、枚举和必填项
- 对模型返回参数做二次校验
- 把函数调用结果写入日志
- 对写操作加入确认和幂等设计
常见误区
- 以为模型自己执行了函数
- 没有验证模型生成的参数
- 函数名和描述太抽象
- 把真实密钥或数据库权限暴露给前端
和相似工具的区别
- Function Calling vs JSON输出:JSON输出只是让模型生成结构,Function Calling通常还会由程序执行对应函数。
- Function Calling vs MCP:Function Calling偏应用内部开发方式,MCP偏跨客户端连接外部工具的协议化方式。
入门步骤
- 写函数定义
- 写参数Schema
- 接模型响应
- 校验参数
- 执行后端逻辑
- 返回结果
- 生成最终回复
推荐工具(第三方)
OpenAI API、Anthropic API、TypeScript、Zod、JSON Schema、Node.js