Agent、工具调用与自动化进阶已核验核验于 2026-07-30

函数调用

Function Calling

模型按约定结构选择函数并生成参数,由应用执行函数后把结果返回模型的调用机制。

本页目录
快速跳转

它是什么

函数调用是工具调用的一种结构化接口:应用把可用函数的说明和参数 Schema 提供给模型,模型返回要调用的函数及参数。它让应用不必从自由文本里猜测执行意图,但模型返回的是调用请求,不是函数已经运行的证明。[S1][S2]

为什么需要它

若模型只回复“请查询订单 123”,程序还要解析句子、判断字段并处理歧义;稍微改变措辞就可能失败。函数调用把意图收敛到已声明的函数和字段,使应用更容易验证、记录和测试,也能把函数结果与具体调用关联起来,再交给模型组织最终回答。[S1]

它如何工作

应用声明函数名、用途、参数类型与必填规则,并把它们随请求发送给模型。模型可能直接回答,也可能返回函数选择和参数;应用检查 Schema、业务规则、用户权限和副作用后执行函数,再把带调用标识的结果回传。模型随后解释结果或发起下一次调用。OpenAI 和 Anthropic 的字段名称不同,但“声明 -> 请求 -> 执行 -> 回传”是共同主干。[S1][S2]

必须澄清的误会

函数调用 ≠ 工具调用。 函数调用是「把工具请求表达成结构化数据」的格式约定;工具调用是完整能力,还包括工具清单、权限、结果校验与失败后的重新决策。

函数调用 ≠ API 调用。 函数调用发生在模型与应用之间,解决「模型想调什么」;API 调用发生在应用与外部系统之间,解决「怎么真的调通」。

真实例子

客服助手可以获得 get_order(order_id) 和 request_refund(order_id, reason) 两个函数。用户只问物流时,模型应调用查询函数;用户要求退款时,即使生成了格式正确的参数,应用仍要核验订单归属、退款期限和操作权限。未通过时返回业务错误,由助手解释原因,而不是因为 JSON 合法就创建退款。

什么时候适合与不适合

函数调用适合连接边界清楚的 API、数据库查询和业务动作,也适合需要可靠字段而非自然语言的流程。纯文本创作不一定需要它。严格 Schema 能约束结构,却不能证明参数真实、业务允许或函数安全;函数描述含糊也会导致选错工具。应用仍需鉴权、限流、超时、错误处理和审计。[S1][S2]

亲自试一下

为“预约会议室”写一个函数契约,限定日期、开始时间、时长和人数。准备六个测试:正常预约、日期缺失、人数超限、用户无权限、时段冲突和重复提交。分别写出 Schema 校验、业务校验与执行层应处理的问题;只有三层责任没有混在一起,契约才算清楚。

接下来学什么

先回到工具调用理解完整执行循环,再用结构化输出区分“生成数据”和“发起动作”;接入现有服务时继续学习API 调用。

来源与修订

函数工具、调用请求、结果关联和结构化参数参考 OpenAI 官方指南 [S1];客户端工具由应用执行并回传结果的责任边界参考 Anthropic 官方文档 [S2]。Schema 方言、严格模式和消息字段变化较快,正文不固定具体请求代码。

Learning questions

这个概念出现在哪些题里

下面的题目直接引用了本词条,适合先做判断,再回到正文核对边界。

Case practice

这个概念出现在哪些案例里

案例中的这些关卡会把概念放进业务约束、证据与取舍里练一遍。

Learning navigation

学习导航

沿认知链路:你现在在第 5 站,下一站是「给流程 · 怎么把做法沉淀下来」:先沿主路径补上这一层。

Relation topology

概念关系

本词条在知识拓扑中的连接关系。涵盖前置依赖、组成要素、对比差异与应用场景。

拓扑图谱网络 · 一度关联场

可拖拽节点、滚轮缩放、点击节点探索

Local relation field

函数调用的一层关系

3 个节点 · 3 条直接关系

关系类型
图谱进入视口后加载

交互图谱之外,本页下方保留完整文字关系与词条链接。

Source register

核验来源

  1. Function callingOpenAI · 访问于 2026-07-30
  2. How tool use worksAnthropic · 访问于 2026-07-30

发布 2026-07-30 · 更新 2026-07-30 · 核验 2026-07-30