Function Calling(函数调用,也叫Tool Use)是让AI模型能够识别用户意图并调用相应外部函数的能力。这是AI从"聊天机器人"进化为"AI Agent"的关键一步。
工作流程
1. 开发者定义可用的函数(名称、描述、参数Schema) 2. AI分析用户输入,判断是否需要调用函数 3. 如果需要,AI返回要调用的函数名和参数(JSON格式) 4. 开发者的代码执行该函数,获得结果 5. 将结果送回AI,AI基于结果生成自然语言回复
示例
# 定义函数Schema
functions = [{
"name": "get_weather",
"description": "获取指定城市的天气",
"parameters": {
"city": {"type": "string", "description": "城市名"}
}
}]# 用户:"北京今天天气怎么样?"
# AI返回:{"name": "get_weather", "parameters": {"city": "北京"}}
# 代码执行get_weather("北京") → "晴,25°C"
# AI回复:"北京今天晴天,气温25°C,适合外出。"
多个Function的编排
现代AI可以自主决定调用哪些函数、以什么顺序调用、如何组合多个函数的结果。例如"帮我订明天从北京到上海的机票,并发送行程到我的邮箱"——AI会依次调用查航班、订票、发邮件三个函数。
主流实现
- OpenAI Function Calling / Tools API
- Anthropic Tool Use
- Gemini Function Calling
- 所有主流模型都支持,但API格式略有不同