什么是Function Calling?

1. 概述

Function Calling 是大语言模型(LLM,例如 GPT 系列)提供的一种机制,使模型能够在对话过程中调用外部函数、API 或本地方法。

它解决了模型 只会回答、不知道外部世界最新信息 的局限,让 LLM 从"聊天助手"变成"可操作的智能代理"。


2. 工作原理

基本流程

  1. 开发者注册函数

    • 定义函数名称、描述(description)、参数结构(parameters)。
  2. 用户发起自然语言请求

    • 模型分析语义。
  3. 模型决定是否调用函数

    • 如果与函数描述匹配 → 输出 JSON 调用请求。
    • 如果能直接回答 → 直接输出自然语言。
  4. 系统执行函数

    • 根据 JSON 参数调用外部逻辑/API。
  5. 返回结果给模型

    • 模型基于结果生成用户可读的回答。

3. 函数描述的作用

函数描述(description + parameters)相当于 本地的 Prompt,指导模型何时使用函数、如何构造参数。

例如:

json 复制代码
{
  "name": "getWeather",
  "description": "获取指定城市和日期的天气情况(气温、晴雨、多云、雪)。当用户提到天气、气温、冷热、是否下雨时调用。",
  "parameters": {
    "type": "object",
    "properties": {
      "city": { "type": "string", "description": "城市名称,例如 北京" },
      "date": { "type": "string", "description": "日期,格式 YYYY-MM-DD" }
    },
    "required": ["city"]
  }
}
  • description → 像局部 Prompt,告诉模型什么时候用。
  • parameters → 约束输入,避免模型乱传参。

4. 识别机制

模型判断是否调用函数,主要依赖以下三点:

  1. 函数描述(本地 Prompt)

    • 描述越清晰,调用越精准。
  2. 用户语义

    • 模型先理解用户输入,再匹配函数用途。
  3. 上下文/系统 Prompt

    • 可以在系统消息中指导模型"仅在必要时调用函数"。

5. 设计函数描述的最佳实践

  1. 明确用途

    • 写清楚函数能解决什么问题。
  2. 触发条件

    • 描述用户可能使用的关键词或场景。
  3. 参数语义化

    • 给每个参数写清楚含义、示例。
  4. 避免模糊

    • 不要只写"天气查询",要写"气温、晴雨、多云、雪"。
  5. 覆盖常见问法

    • 例如天气函数可以提及"天气、气温、冷热、下雨"。

6. 示例

例 1:查询天气

用户:

"北京明天会下雨吗?"

模型输出调用:

json 复制代码
{
  "name": "getWeather",
  "arguments": { "city": "北京", "date": "2025-09-03" }
}

系统执行 API → 返回:

json 复制代码
{ "temperature": 28, "condition": "小雨" }

模型回答:

北京明天 28°C,有小雨。


例 2:查订单状态

用户:

"订单 12345 的物流情况?"

模型输出调用:

json 复制代码
{
  "name": "getOrderStatus",
  "arguments": { "orderId": "12345" }
}

7. 总结

  • Function Calling = 模型调用外部函数的机制
  • 函数描述 = 本地 Prompt,决定模型是否、如何调用函数
  • 本质:自然语言理解 → 函数选择 → 参数生成 → 系统执行 → 结果转化

它让 LLM 从"会聊天"升级为"会办事",是构建智能应用的关键能力。

相关推荐
yangdaxiageo几秒前
白帽GEO的结构化信任工程:杨大侠GEO商业方法论研讨
人工智能·科技·aigc·agi
Swift社区几秒前
Wi-Fi 6 的核心技术特性
人工智能·python
人才瘾大2 分钟前
从Agent Loop到PlanMode:一套能跑生产的AI Agent工程骨架
人工智能·ai编程
大任视点3 分钟前
《怪兽引擎:能源转型的驯化与共生》开幕 以艺术思辨锚定后化石时代的文明坐标
大数据·人工智能
硅谷秋水5 分钟前
Zero-WAM:基于人类视频的上下文世界-动作建模,用于开放式任务泛化
人工智能·深度学习·计算机视觉·语言模型·机器人·音视频
the局外人6 分钟前
别让 Codex 一口气写完整个前端:5 组 Skills,把页面、逻辑、测试和构建拆清楚
前端·人工智能·agent
AI创界者12 分钟前
从零到一构建微服务架构HIS(医院信息系统):核心模块设计与高并发实战
人工智能·aigc
Dawson Zhu15 分钟前
Agent 评估方法:评估环境、验证器与统计显著性
人工智能·语言模型·架构·aigc·agi
上海蓝色星球16 分钟前
数智重构造价全流程|蓝色星球造价机器人,驱动行业标准化智能化升级
大数据·人工智能
开源量化GO22 分钟前
学量化:看到“2026年 AI 写 Python”内容时,先用示例和练习补交易认知
人工智能·python