AI探索.源码.模板

同一份 HTML,同时服务搜索、AI 答案与浏览器代理。

Switch to English

OpenAI Function Calling 实战案例

  • 高森 模型产品
  • 齐岚 开发者体验

发布时间:2026 年 9 月 20 日

Function Calling(工具调用)把 JSON 参数交给你的代码:模型只决定调用哪个函数,真正的查库存、写日历仍在你的服务器。定义 tools 数组,名称、描述和参数 schema 写清楚;收到 tool_calls 后本地执行,把输出以 tool 角色回传,直到模型给出最终答复。实战要点是:工具要窄、参数要校验、循环要有上限、副作用要鉴权。它和 Structured Outputs 可以同时用。标题、H1 和本段回答:一次完整的工具往返怎么写、怎样避免模型乱调。

  • 选工具 + 填参 模型职责
  • 执行 + 鉴权 你的职责
  • 最终文本或步数上限 停条件

拆问:和智能体有何不同、并行调用、如何强制某个函数。本页用库存查询当案例。

把工具写窄#

一个函数做一件事。get_inventory(sku) 比 do_anything(query) 更不容易被乱用。描述里写清何时不要调用。枚举合法仓库代码。

const tools = [{
  type: 'function',
  function: {
    name: 'get_inventory',
    description: 'Look up on-hand quantity for one SKU. Do not call for price history.',
    parameters: {
      type: 'object',
      additionalProperties: false,
      required: ['sku'],
      properties: { sku: { type: 'string' } },
    },
  },
}];

执行循环#

解析 tool_calls,校验 sku 格式,查库,返回短 JSON。并行调用时按 id 对齐。超过 N 步或同一 sku 连查三次就停,转为人工。不要把数据库错误栈原样喂给模型。

鉴权在你这边#

模型给的参数不可信。执行层检查当前用户是否允许该 sku。禁止提供“任意 SQL”工具。写操作要二次确认或只允许幂等更新。

何时升级到智能体#

单轮或两三轮工具用函数调用足够。需要计划、子代理、计算机使用时再上 Agents SDK。不要因为演示好看就把每个 CRUD 都叫智能体。

要点#

  • 工具窄、参数校验、循环有上限。
  • 副作用鉴权发生在服务器。
  • 多步编排才需要智能体框架。

该内容对您有帮助吗?

如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据Apache 2.0 许可获得了许可。插图为站点原创。

最后更新时间:2026-09-20。