Function Calling 是 LLM 的一项能力,允许模型在生成回复时输出结构化的函数调用指令,而不是纯文本。开发者可以预先定义一组函数(API、数据库查询、工具操作),模型根据用户意图选择合适的函数并填充参数,由应用程序执行实际调用。
你可以把它理解为 AI 学会了“打电话叫人办事”——它自己不直接做事,但知道该找谁、怎么说。
Function Calling 的核心流程:
- 函数定义:开发者注册可用函数及其参数 schema
- 意图识别:模型判断用户请求是否需要调用函数
- 参数提取:模型从对话中提取函数所需的参数
- 执行回调:应用执行实际函数,将结果返回给模型
- 结果整合:模型基于函数返回结果生成最终回复
大白话理解:
没有 Function Calling 的时候:
- 你说“帮我查一下北京的天气” → AI 只能说“抱歉,我不能实时查天气”
- 你说“帮我发一封邮件” → AI 只能给你写邮件草稿,你得自己复制粘贴去发
- AI 被困在对话框里,无法和外界互动
有了 Function Calling 之后:
- 你说“帮我查北京天气” → AI 调用天气 API,返回“北京今天 25°C,晴”
- 你说“帮我发邮件给张三” → AI 调用邮件 API,直接发送
- AI 从一个“聊天机器”变成了“能办事的助手”
打个比方:
|
没有 Function Calling |
有 Function Calling |
|---|---|
|
AI 像个只能说话的顾问 |
AI 像个有执行力的助理 |
|
你说“帮我订餐”,它说“好的,这是餐厅电话” |
你说“帮我订餐”,它直接打电话预约 |
|
你说“帮我算一下这个月的开销”,它说“我没有你的账单数据” |
你说“帮我算开销”,它调用财务系统,给出报表 |
一句话总结:
Function Calling 让 AI 不仅能说话,还能调用工具和 API 替你做事,真正从“聊天”走向“执行”。