跳转到主要内容
Function Calling 允许模型使用结构化参数请求一个具名应用操作。是否执行由你的代码决定,模型本身不会执行函数。

定义工具

完成工具循环

1

读取 Tool Call

finish_reasontool_calls 时,读取所有 message.tool_calls;模型可能一次请求多个调用。
2

校验参数

解析 function.arguments,使用应用自己的 Schema、权限、范围和业务规则校验。它是不可信输入。
3

受控执行

只允许精确匹配 Allowlist 的函数名,并应用鉴权、授权、超时、幂等与速率限制。
4

返回结果

追加原始 Assistant Tool Call Message,再为每个调用追加匹配 tool_call_idrole: tool 消息,然后请求最终回答。

安全规则

  • 不要对函数名使用 eval、反射或任意 Shell 执行。
  • 购买、发消息、删除、权限变更等重要操作必须二次确认。
  • 执行时重新校验最终用户权限。
  • 限制参数长度、JSON 深度和循环次数。
  • 对状态变更工具记录审计事件。
JSON Schema 只能改善参数结构,不能证明操作安全或正确。应用层校验和授权仍是强制要求。
最后修改于 2026年7月13日