Function Calling(函数调用)
别名:工具调用函数调用Tool CallingFunction Call
| 分类 | 🧠 基础概念 |
| 阅读时间 | ⏱️ 16 分钟 |
| 更新时间 | 📅 2026-06-30 |
| 条目编号 | ENC-CONCEPT-04-function-calling |
Function Calling 是 LLM 在生成文本时能够识别并调用预定义函数/API 的能力。模型输出结构化 JSON 描述要调用的函数和参数,由运行时环境执行。这是 Agent 与现实世界交互的核心接口。
关键要点 ✦
- 主流 LLM 均原生支持 Function Calling,模型输出结构化 JSON 而非自然语言
- Function Calling 的精度取决于模型对函数描述(Schema)的理解能力
- MCP 协议的出现使 Function Calling 从单厂商标准演进为跨平台开放标准
- 2026 年多工具并行调用(Parallel Tool Calling)已成为标配
- Function Calling 的安全风险包括工具投毒和参数注入
详细解释
Function Calling 是 LLM 与外部世界交互的核心机制。传统上,LLM 只能生成自然语言文本,而 Function Calling 允许模型输出结构化的 JSON 数据来描述要调用的函数和参数。
工作原理:开发者首先定义可用的函数列表(包含函数名、描述、参数 Schema),LLM 根据用户输入判断是否需要调用函数,如需要则输出标准 JSON 格式的调用请求。运行时环境执行函数后,将结果返回给 LLM,LLM 继续处理。
技术细节
并行调用(Parallel Calling):2026 年主流 LLM 支持一次性发起多个独立的函数调用,大幅提升效率。
流式调用(Streaming):模型在生成过程中逐步输出工具调用参数,减少用户等待时间。
结构化输出(Structured Output):GPT-4o 和 Claude 4 支持定义严格的输出 Schema(如 JSON Schema),确保函数调用的参数格式正确。
JSON 模式 vs Function Calling:JSON 模式只约束输出格式,Function Calling 更智能——模型能自主判断是否需要调用、调用哪个函数。
📖 相关条目
🛠️ 相关产品
🏷️ 标签Function Calling工具调用API结构化输出JSON