这张卡纠正一个流传极广的误解:以为模型会自己执行函数。

核心拆解:函数调用的分工是——模型只根据工具描述和对话上下文产出函数名与参数的 JSON,真正执行、鉴权、错误处理、结果回填全在应用侧代码。最容易误用的地方有两处:一是把模型点菜当成模型执行,跳过应用侧参数校验,等于把数据库写权限裸奔给一个概率系统;二是工具描述含糊,参数含义与适用场景没写清,模型选错工具、编造参数,却常被误归因为模型能力不行,实际改几行描述就能解决。

增量判断:很多人分不清函数调用与 MCP 的层次——前者是模型与单应用间的输出约定,后者把工具封装成跨应用复用的标准化服务。FDE 的增量视角是交付顺序:先精心维护少量工具并配齐评测,胜过接入一堆没人测过的工具。

行动建议:逐条检查工具描述,补齐每个参数的含义、取值范围与典型调用场景。

—— FDEChina编辑部 · 实战派

定义

函数调用(Function Calling)指大模型根据开发者注册的工具定义,在需要时输出符合签名的函数名与结构化参数,由应用侧代码实际执行并把结果回填给模型的机制。

展开

分工必须分清:模型只负责「点菜」——依据工具描述与对话上下文决定调用哪个函数、填什么参数;执行、鉴权、错误处理、结果回填全部发生在应用侧。常见误用其一,是把模型点菜当成模型执行,漏掉应用侧对参数的校验与兜底,等于把数据库写权限裸奔给一个概率系统。其二,工具描述含糊——参数含义、取值范围、适用场景没写清——模型就会选错工具或编造参数,这类问题常被误归因为模型能力不行,实际改几行描述就能解决。

与模型上下文协议(MCP)的辨析:函数调用是模型与单个应用之间的输出约定,MCP 则把工具封装成标准化服务,让同一套工具跨应用复用。对 FDE 而言,交付质量的关键不在接了多少工具,而在每个工具的描述、错误信息与评测覆盖:先维护好少量经过回归测试的工具,再考虑扩面。

参见

智能体专题MCP 专题FDE 实战指南