工具调用提示:函数声明写法

工具调用(function calling / tool use)让模型在需要时选择并填充一个外部函数的参数,由宿主程序执行后再把结果喂回模型,从而连接 API、数据库与真实操作。

是什么

工具调用不是让模型直接执行代码,而是让模型输出一个结构化调用请求(函数名与参数 JSON)。是否执行、如何执行由你的代码决定。模型扮演「调度员」的角色。

为什么有用

纯文本模型无法获取实时数据或触发动作。通过工具,模型可以查天气、下单、查库,能力从「会说」扩展到「会做」。

怎么声明工具

核心是给模型一份 JSON Schema 描述的函数清单,包含名称、用途说明与参数定义。

{
  "name": "get_weather",
  "description": "根据城市查询当前天气",
  "parameters": {
    "type": "object",
    "properties": {
      "city": { "type": "string", "description": "城市名,如 北京" }
    },
    "required": ["city"]
  }
}

注意点

  • 描述要写清函数「何时该用」,模糊的描述会导致误调用。
  • 参数 required 字段要齐全,否则模型可能漏填。
  • 始终校验模型返回的参数,不要把模型输出直接当作可信输入。

小结

工具调用通过 JSON Schema 声明函数,让模型输出结构化请求而非执行代码。清晰的名称、用途与必填参数定义,加上宿主侧校验,是把模型接入真实系统的关键。

参考与延伸阅读

本文累计阅读