开放API

怎么让 AI 调我自己的函数 / 工具(tools 工具调用怎么写)

2026-10-29 约 1 分钟 45902 次阅读

怎么让 AI 调我自己的函数 / 工具(tools 工具调用怎么写) 关键参数

声明字段tools(名称 + 描述 + JSON schema)
模型返回tool_calls(函数名 + 参数)
结果回传tool 角色消息
安全措施tool_calls 白名单校验

工作原理

工具调用让模型在回答时「申请」调用你定义的函数,由你的程序真正执行,再把结果交还模型,形成闭环。

步骤

  1. 在请求里用 tools 声明函数,包含名称、描述与 JSON 参数 schema。
  2. 模型若需要,会在返回中给出 tool_calls(函数名与参数)。
  3. 你在本地执行对应函数,拿到结果。
  4. 把结果以 tool 角色消息回传,模型据此继续生成最终回答。

最小示例(伪代码)

  • 声明 tools:getWeather(city)
  • 模型返回:调用 getWeather("北京")
  • 本地执行:查询天气,得到「晴 25℃」
  • 回传 tool 消息:结果 = 晴 25℃
  • 模型回答:北京今天晴,25℃

建议

  • 函数描述写清楚,模型才能正确选择。
  • 对 tool_calls 做白名单校验,防止越权调用。
  • 若函数执行失败,把错误作为结果回传,让模型自我纠正。

参数 schema 格式与字段名以官方文档为准。

常见问题

工具调用的工作原理是什么?
请求里用 tools 声明函数(名称、描述、JSON 参数 schema),模型在需要时返回 tool_calls(函数名与参数),由你的程序本地执行,再把结果以 tool 角色消息回传,模型据此继续生成最终回答。
函数描述为什么要写清楚?
描述越清楚,模型越能正确选择工具并生成正确参数。
怎么防止越权调用?
对模型返回的 tool_calls 做白名单校验,只执行允许的函数。
函数执行失败怎么办?
把错误信息作为结果回传给模型,让模型自我纠正或改走其它路径。

相关阅读

相关平台

关于大模型的选型、调用与落地实践,你还可以访问以下平台:

工具调用function callingAPI