← 返回概念解读

Concept Fable精修版

函数调用

Function Calling · Model interface

先读故事。这里不急着给定义,先让问题自己长出来。

寓言故事

信使学会交出工单,而不是只写一段建议

仓库里有位聪明信使,听得懂人的要求。工人说想查库存,他能写出一段很像样的说明,却不能让系统真的查。

管理员最早让信使把命令写在句子里。工程师再从句子中猜要调用哪个系统、参数是什么。

猜测很快出事。客户说“下周三之前”被解析错,产品型号少了一个字母,取消订单和查询订单也混在一起。

有人试图用正则和关键词修补。每多一个业务动作,就多一堆例外规则,维护成本越来越高。

新管理员改了规矩。可执行动作先登记成函数,写清名称、参数、类型、必填项和含义。信使需要行动时,必须交出结构化工单。

系统收到工单后先校验参数,再由应用层决定是否执行、是否审批、是否补问,以及如何把结果交回信使。

信使不再凭一句自然语言推动外部系统。它负责选择函数并填参数,真正执行仍由受控程序完成。

管理员仍要防错。函数设计太宽、描述含糊、缺少权限和幂等控制,结构化调用也会造成真实损失。他明白,让机器请托工具的关键不是让它更会说,而是让它用机器可读的参数提出可审核的动作请求。后来,又来了一件更棘手的活。表面看只是旧问题放大,实际把藏在流程里的缝隙都逼了出来:谁先接手、谁能改动、出了错怎样回到上一步,过去靠熟人默契混过去的地方,现在都必须说清楚。主事人没有再催大家更用心,而是把现场重新走了一遍。他让人记录每次交接、每次失败和每次补救,哪些地方只是慢,哪些地方会误伤结果,哪些地方一旦错了就很难追回。新规矩推开后,最初几天并不顺手。有人嫌多了一道检查,有人觉得旧经验被冒犯。可当下一次异常出现时,大家第一次能沿着痕迹找到问题发生的位置,而不是围着结果互相猜。

揭示

这个故事讲的是:函数调用

Function Calling 是一种模型接口:开发者预先定义函数名称、参数 schema 和说明,模型在需要调用外部能力时输出机器可读的函数名和参数,由应用程序校验并执行。它常用于工具调用、API 集成、Agent 动作和结构化数据抽取。企业使用时要区分模型提出调用和系统实际执行,并加入权限、校验、审批、幂等、错误处理和审计。

它重要的地方在于:它不只是一个术语,而是在真实 AI / Agent 系统里会反复出现的结构性问题。理解它,才能判断什么时候该加模型,什么时候该改流程,什么时候该补治理。

隐喻映射

  • 写建议的信使:只生成自然语言的模型
  • 从句子中猜命令:脆弱的文本解析
  • 正则修补:不可扩展的 ad hoc 解析
  • 登记成函数:函数定义和 schema
  • 结构化工单:function call arguments
  • 校验、审批、补问:应用层控制
  • 执行由程序完成:模型不直接操作外部系统
  • 最后洞察:Function Calling 让模型以结构化参数请求外部函数执行

Soloharness 判断

这个概念的实战价值,是帮你把“看起来聪明的 AI 功能”拆成可交付、可验收、可治理的工作单元。

tool useJSON schemastructured outputAPI callingtool choice

相关辨析

这个概念容易和相邻概念混用,建议继续看对比页。