🔌 Function Call 函数调用

AI模型执行外部操作的核心能力

📅 2026年7月 | 🏷️ 分类: Agent / Tool

什么是 Function Call?

Function Call(函数调用)是大型语言模型(LLM)的一种能力,使其能够根据用户请求调用预定义的外部函数或工具,获取返回结果并整合到响应中。这是AI Agent从"被动回答"转向"主动执行"的关键技术。

💡 核心价值:让AI不只是生成文本,而是能够执行实际操作,如查询数据库、调用API、发送消息等。

工作原理

Function Call的工作流程包括:

  1. 函数定义:开发者预先定义可调用的函数及其参数schema
  2. 模型推理:当用户请求涉及特定操作时,模型判断应调用哪个函数
  3. 参数生成:模型根据上下文生成符合schema的函数参数
  4. 执行返回:外部系统执行函数并将结果返回给模型
  5. 结果整合:模型基于函数返回结果生成最终响应

应用场景

  • 数据库查询:用户询问"上个月销售额是多少",AI调用SQL函数查询数据库
  • 日历管理:用户说"帮我预约周五下午3点会议",AI调用日历API创建日程
  • 第三方集成:调用飞书、企业微信等工具完成实际操作
  • 实时信息:获取天气、股价等最新数据

代码示例

# OpenAI API 中的 Function Call 示例 import openai functions = [{ "name": "get_weather", "description": "获取指定城市的天气信息", "parameters": { "type": "object", "properties": { "city": {"type": "string", "description": "城市名称"} }, "required": ["city"] } }] response = openai.ChatCompletion.create( model="gpt-4", messages=[{"role": "user", "content": "北京今天天气怎么样?"}], functions=functions ) # 模型返回的函数调用 tool_call = response.choices[0].message.function_call # {"name": "get_weather", "arguments": "{\"city\": \"北京\"}"}

与 Tool Calling 的区别

Function Call 通常指OpenAI等厂商提出的特定协议,侧重于结构化函数调用。

Tool Calling 是更广泛的概念,包括Function Call、MCP协议等各种工具调用方式。