AI导航

函数调用是什么?大模型调用外部工具办事的原理讲清

AI百科
4 min read
2 次阅读

函数调用是大模型的一种输出方式:模型不直接用文字回答,而是按事先约定好的格式,输出“要调用哪个外部函数、参数填什么”,再由程序真正去执行查询、计算或下单,最后把执行结果交回模型组织成自然语言。它让模型从只会说,变成能借别人的手做事——但请注意分工,动脑选工具的是模型,真正动手的从来不是模型本身。

先看一次完整的调用:订一间明天下午的会议室

假设你对助手说:明天下午三点,帮我订一间能坐 6 个人、带屏幕的会议室。没有函数调用时,模型只能回你一段建议,订没订成它说了不算。接好函数调用之后,流程会多出几步看不见的交接:

应用先把可用工具的清单告诉模型,每个工具都写清名字、用途和参数要求,比如订会议室这个函数需要日期、开始时间、人数和设备要求。模型对照你的话,选中这个函数,并把“明天下午三点”换算成具体日期和时间,人数填 6,设备填屏幕,输出一份结构化的调用请求。接下来轮到应用出场:它校验参数、真的去日历系统里查空闲并完成预订,再把“订成功,房间号 302”这样的结果回填给模型。模型最后才开口,用人话把结果告诉你。

整个过程里,模型输出的不是回答,而是一张填好的申请单。申请单格式对不对、该不该批、批完怎么执行,全是应用那一侧的事。

参数为什么必须写成 JSON Schema

模型选函数时最容易出错的地方,不是选哪个,而是参数怎么填:日期写成哪种格式、城市名用中文还是代码、人数是数字还是字符串,差一点执行就会失败。所以工具清单里对每个参数都要用 JSON Schema 这类格式规范写死类型、必填项和取值范围,模型照着模板填,应用再按同一份模板校验,不合规就打回重填或报错。

这也是函数调用和“让模型在回答里假装调用”的根本区别。提示词写得再详细,模型回一段像模像样的模拟结果,本质仍是编的;函数调用的返回结果来自真实系统,查到的航班就是真航班,订失败也会如实报错。判断一个产品是真能办事还是在演戏,看的就是结果有没有经过外部系统这一关。

和几个相近概念的边界

**和结构化输出的区别。**结构化输出只要求模型按固定字段交出 JSON,结果到此为止,没人拿去执行;函数调用是它的延伸,多了“执行并回填”这一段。把信息抽成表格是结构化输出,抽完直接拿去建日程,才是函数调用。

**和 MCP 的区别。**函数调用解决的是单个应用内部“模型怎么开口点名工具”,工具清单由这个应用自己维护;MCP 协议解决的是跨应用的统一接口,让同一批工具能被不同的模型和应用发现、复用。两者不在同一层,实际产品里经常叠在一起用:工具通过 MCP 接进来,模型仍靠函数调用的方式逐个点名。

**和智能体的区别。**函数调用是一次性的点名动作,本身不规划、不循环。智能体是把多次调用串起来的工作方式:先查航班、再比价格、然后下单、最后写进行程,中间还要根据每一步的结果决定下一步。没有函数调用这类机制,智能体就只剩空想;但只有函数调用、没有规划和纠错,也成不了智能体。

三个常见误解

**误解一:是模型自己在操作软件。**模型没有账号、没有权限,也碰不到你的日历和支付系统。它只负责提议,执行权始终在应用手里,应用完全可以拒绝一次不合规的调用。宣传里说得再神乎其神,落地时都要落到这条分工上。

**误解二:接上工具,它就不会出错了。**恰恰相反,函数调用把出错的方式变多了:函数会选错,城市会填错,同一件事可能重复执行两遍,工具返回的脏数据还可能把后面的回答带偏。它解决的是“能不能做”,不是“做得对不对”,校验、重试和兜底都得应用自己补上。

**误解三:工具越多,助手越强。**工具清单本身也要占上下文,几十个工具一股脑塞进去,模型反而容易挑花眼、选错行。做得好的产品会按场景筛选当前用得上的工具,而不是把工具箱整个倒出来。

能放心交给它做到哪一步

按风险给工具分级,是使用函数调用最重要的一条经验。查天气、查库存、算汇率这类只读操作,出错代价低,可以让模型直接调用;改数据、发消息、付款、下单这类会改变现实状态的操作,必须多一层确认:把函数名和关键参数明明白白摆给用户,点了确认才执行。权限也要按最小够用给,只查日程的工具就不该拿到删日程的权限。

还要留意一种新风险:工具返回的内容本身可能夹带指令。比如模型调用了一个网页读取工具,网页里藏着一句诱导它转账的话,它有可能当成命令照办。所以工具的返回结果只能当数据看,不能当指令听,这道防线要由应用在流程上守住,而不是指望模型自觉。

把这几条边界记住,再看各家发布的“模型能调用工具了”,就能分清哪些是真把执行链路打通了,哪些只是演示视频里跑得通。

推荐工具

NVIDIA Chat with RTX AI聊天 Chat with RTX 是 NVIDIA 面向 RTX 电脑的本地 AI 聊天工具,可围绕本地文档和视频资料做问答,适合重视隐私、离线检索并具备硬件条件的用户更适合资料不便上传云 HuggingChat AI聊天 HuggingChat 是 Hugging Face 的开源模型聊天应用,支持 Omni 自动选模型,也可手动选社区开放模型对话。它适合体验开源模型、技术探索和问答,结果可能不稳定,重要内容需复核。 纳米AI搜索 AI搜索 纳米AI 是 360 旗下 AI 搜索和智能体入口,支持文字、语音、拍照提问、多模型协作与内容创作,适合中文用户做日常搜索、学习问答、移动查询、热点追踪、生活决策、知识整理和轻量创作。 Qwen Chat(通义千问) AI聊天 Qwen Chat 是Qwen 大模型聊天助手,支持Qwen 模型聊天、写作和编程问答,适合中文用户和开发者完成 AI 对话、资料问答和任务协作,适合上线前核对权限、成本和资料质量。 DuckDuckGo AI Chat AI聊天 DuckDuckGo AI Chat 适合重视隐私的普通用户使用,围绕隐私 AI 聊天、免账户使用和多模型问答提供对话式 AI 支持和任务协作能力,适合上线前核对权限、成本和资料质量。 Goody-2 AI聊天 Goody-2 是以极端安全和伦理对齐为特色的 AI 聊天助手,常用于观察模型拒答边界、内容安全策略、保守输出体验和 AI 风险讨论,更适合作为安全边界样本使用前应理解它偏实验性质,不适合。