函数调用(Tool Use):让 AI 从会说到会动手

运营GO 编辑部

大模型会聊天,但不会自己查天气、下单、查数据库。函数调用让模型学会开口要工具:它决定调哪个、填什么参数,真正的活由外部代码执行,AI 从会说到会动手。

快速结论

  • 函数调用让模型输出结构化调用指令,而非只给文本。
  • 它决定调哪个工具、填哪些参数,执行交给外部代码。
  • 这是 Agent 能干活的基础能力,连接模型与现实。
  • 落地要管好 schemas、参数校验和失败重试。

函数调用是什么

传统对话模型只吐文字,函数调用让它在回答里夹带一段结构化指令:我要调某函数、参数是这些。外部程序读到这指令就去执行,再把结果喂回模型。

一句话,模型从动口变成指手画脚:它自己不查库不改单,但能指挥会干这些的工具代劳。这一步是 AI 从聊天到执行的跃迁。

和普通文本回复的区别

普通回复是给人看的,函数调用是给程序看的。前者自然语言、宽松;后者严格结构、可解析。模型得学会在该说话时说话、该调用时调用。

区分靠约定:模型输出的调用部分带特定格式,你的代码据此识别并执行。格式清晰,人和程序才不抢着解读。

典型流程怎么走

用户提问、模型判断要不要调工具、要调就输出调用指令、你的代码执行并拿结果、结果回灌模型、模型基于结果组织最终答案。一轮或多轮,直到答完。

这像模型当调度、代码当手脚。模型负责理解和决策,代码负责可靠执行。二者分工,既聪明又稳,是工具调用的骨架。

工具 schemas 怎么写

每个工具要告诉模型:叫啥、干啥、要哪些参数、各啥类型。这份说明叫 schema,写得越清楚,模型越会正确调用。含糊的 schema 换来乱填的参数。

写 schema 像写产品说明书:参数含义、是否必填、取值范围都标清。模型读说明干活,说明质量直接决定调用质量。别省这份功夫。

参数校验不能省

模型填的参数可能错(类型不对、缺必填、值离谱)。执行前必须校验,不合规就打回让模型重填或提示用户,别直接拿去跑炸系统。

校验是安全网:既防模型手滑,也防恶意构造。把校验当接口的标配,而非可选项。工具越能改现实(下单、删数据),校验越要严。

多工具怎么选

给模型挂多个工具时,它要会挑对的那个。靠 schema 里的功能描述区分,描述写清何时用我,模型才能在相似工具间做对选择。

工具太多也会迷糊,像给人一长串不明就里的按钮。按需挂载、命名清晰、描述到位,模型才不会调错。工具集也是要设计的,不是越多越好。

失败与重试

工具执行可能失败(接口挂了、参数被拒)。要有重试与降级:先重试,仍不行就告诉模型失败,让模型换法或转人工,而非卡死。

还要把失败信息结构化为模型能懂的语言,它才能据此调整。失败处理的好坏,决定这套系统脆弱还是健壮。生产环境尤甚。

和 Agent 的关系

Agent 的本质就是模型加一堆工具加循环:模型不断决定调哪个工具、看结果、再决定下一步,直到任务完成。函数调用是 Agent 的发动机。

理解这层,你就明白为什么 Agent 能力上限受模型制约:模型调度得越好,Agent 越聪明。函数调用质量,几乎是 Agent 质量的代名词。

安全风险

函数调用让模型能触发真实动作,风险陡增:错调、滥调、被注入诱导调危险工具。权限要最小化,写操作加确认,敏感接口不暴露给模型自由调。

还要防提示词注入借函数调用干坏事(如骗模型删库)。把函数调用当成可被攻击的入口来设防,权限与审核缺一不可。

和 MCP 的衔接

工具多了、跨系统,逐个接成本高。MCP 这类协议把工具怎么暴露、怎么调标准化,模型通过统一方式用各家工具。函数调用是能力,MCP 是连接标准。

理解这层,你就不会只手写几个工具就满足。当工具来自多个服务,协议化接入让扩展变便宜,Agent 的工具箱才真正成体系。

常见三个坑

坑一:schema 写得糊,模型乱填参数。坑二:不校验直接执行,跑炸系统。坑三:权限太宽,模型被诱导干危险事。

三者都靠写清 schema、执行前校验、最小权限化解。函数调用威力大,护栏也要配得上。

调试怎么入手

函数调用难调试在于模型为何这么调。做法是把每轮模型输出、执行结果、回灌内容都打日志,复盘它哪步判断偏了。

还要造边界样例:参数缺失、工具冲突、模糊意图,看模型如何应对。调试函数调用,一半是调模型、一半是调 schema 与流程。

效果怎么评

用真实任务集测:模型是否调对了工具、参数对不对、最终答得好不好。不只看会不会调,更看调得对不对、答得准不准。

指标拆开:调用准确率、参数准确率、任务完成率。三率合看,才知道函数调用真立住了,还是只在简单样例上装样子。

选型与落地节奏

先从一个工具跑通判断、调用、执行、回灌闭环,验证体验,再逐步加工具、加多轮、加权限管控。范围小,踩坑成本低。

配套把 schemas、校验、日志、权限都就位再放量。函数调用是从聊天到执行的关键一跃,底座稳了,Agent 才走得远。

核心要点模型说要调哪个参数齐填结构化执行器真去干活回结果再组织答

图:函数调用 核心要点(运营GO 整理)

做什么易错
要调哪个乱选工具
结构化参不校验
执行外部代码跑权限宽

延伸阅读:什么是 MCP(模型上下文协议)什么是 Prompt(提示词)

下一步行动清单

  • 写清每个工具的 schema。
  • 执行前校验参数防跑炸。
  • 失败重试并结构化回告。
  • 敏感操作最小权限加确认。
  • 先单工具跑通再逐步扩展。

相关阅读