跳转到正文
收录 AI 工具提交开放中 免费提交

Function Calling

Function Calling(函数调用)是大语言模型根据对话上下文,自主决定调用预定义外部函数并生成结构化参数的能力。

分类: AI智能体 别名 / 同义词: 函数调用,工具调用

Function Calling 是什么

Function Calling 是一种让大语言模型能够与外部系统交互的机制。开发者预先定义一组可用函数(包括函数名、参数 schema 和用途描述),模型在对话过程中自行判断何时需要调用哪个函数,并生成符合 schema 的 JSON 参数。应用程序接收这些参数后执行实际的函数调用,将结果返回给模型,模型再基于结果继续生成回答。

这一机制使模型从”只能生成文本”进化为”能够执行操作”——查询天气、操作数据库、发送通知等都成为可能。

如何使用 Function Calling

在应用中集成 Function Calling 通常遵循以下步骤:

  1. 定义函数 Schema:使用 JSON Schema 描述每个函数的名称、参数类型、参数说明和是否必填。
  2. 注册到模型请求:在 API 调用时将函数定义传入 toolsfunctions 参数。
  3. 处理模型响应:当模型决定调用函数时,响应中会包含函数名和参数 JSON,应用程序负责解析并执行。
  4. 返回执行结果:将函数的执行结果封装为消息,回传给模型,由模型整合后生成最终回答。

常见误区

  • 模型不执行函数:模型仅生成调用意图和参数,实际执行由应用程序完成——这一点在安全设计中至关重要,开发者可以在执行前加入校验和审批逻辑。
  • 函数描述质量决定调用准确率:模糊的函数描述会导致模型在不恰当的时机调用或生成错误参数,清晰的描述和示例是高准确率的前提。
  • 过多函数会降低性能:每个函数定义都占用上下文窗口空间,且选择空间增大时模型的决策准确率可能下降——建议每次请求仅传入与当前任务相关的函数子集。