工具调用提示:函数声明写法
工具调用(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 声明函数,让模型输出结构化请求而非执行代码。清晰的名称、用途与必填参数定义,加上宿主侧校验,是把模型接入真实系统的关键。
参考与延伸阅读
- OpenAI Function Calling 指南。已核验。https://platform.openai.com/docs/guides/function-calling
- Anthropic Tool Use 文档。已核验。https://docs.anthropic.com/en/docs/build-with-claude/tool-use
本文累计阅读 — 次