返回课程目录
第五单元:从 Prompt 到 Agent
第 17 章

工具调用:模型怎样拥有“手”?

解释模型本身只会输出文字,外部系统负责识别意图并调用工具。

本地学习进度

已完成 0 / 32

核心问题

大模型本身只会生成文本。那它怎样查天气、读数据库、发邮件、运行代码、调用搜索?答案是工具调用。模型负责判断“下一步需要什么工具”和“工具结果怎样用于回答”,真正执行动作的是外部系统。

理解工具调用非常重要,因为它决定了模型从“会说”走向“能做”的边界。

先建立直觉

你可以把模型想成坐在调度台前的助理。助理自己不会变成天气雷达、数据库或邮件服务器,但他可以判断“现在需要查天气”,然后让对应工具去执行。工具把结果交回来,助理再组织成用户能读懂的回答。

中央模型调度台连接天气、数据库、搜索、邮件和代码工具
工具调用让模型从只会说话,变成可以请求外部系统执行查询、计算或操作。

如果没有工具,模型回答“今天北京天气”只能靠训练中学到的旧模式,通常不可靠。接入天气工具后,它可以拿到实时结果,再生成建议。

概念拆解

工具调用通常包含四步。

第一,模型根据用户问题判断是否需要工具。第二,系统把模型的意图转换成结构化调用,例如查询天气、搜索文档、读取数据库。第三,工具执行并返回结果。第四,模型把结果放回上下文,生成最终回答。

这里要分清责任:模型提出调用意图,应用系统负责权限、参数校验、实际执行和错误处理。不能让模型随便执行高风险动作。比如发邮件、转账、删除文件、修改生产数据,都需要额外确认和权限边界。

互动理解

下面的分步器展示了一次天气工具调用。重点看“模型决定下一步”和“工具负责执行”是分开的。

工具调用分步器

模型不会亲自查天气,它输出意图,由系统调用真实工具。

模型

发出:意图:查询北京天气

系统

接收:意图:查询北京天气

工具

等待当前轮次数据

模型决定下一步

需要查询今天北京天气,而不是凭记忆回答。

常见误区

第一个误区是说“模型自己查了资料”。严格来说,模型没有亲自上网或访问数据库,是外部系统把工具结果放进上下文。

第二个误区是忽略工具失败。工具可能超时、无权限、返回空结果或参数错误。系统必须显式处理失败,而不是让模型编一个结果。

第三个误区是把所有工具都开放给模型。能力越大,越需要权限控制。高风险工具要有人类确认、审计日志和可撤销设计。

实用方法

判断一个工具调用系统是否可靠,可以看四点。

第一,工具输入是否结构化,避免模型把模糊文本直接当命令执行。第二,工具权限是否最小化,只给完成任务所需能力。第三,工具失败时是否明确告知用户。第四,高风险动作是否需要用户确认。

工具调用让大模型更有用,但也让风险从“说错话”扩展到“做错事”。所以越接近真实操作,越要有边界和审计。

自我检查

可以把工具分成三类:只读工具、可写工具和高风险工具。查天气、查文档属于只读;创建日程、保存草稿属于可写;发邮件、转账、删数据、改生产配置属于高风险。不同工具应该有不同确认门槛。

如果一个 AI 产品声称能替你“自动完成所有操作”,要特别关注它是否展示工具调用记录、是否允许你确认关键动作、是否能解释失败原因。没有这些机制,工具调用越强,风险越大。

真实场景

日程助手可以自动查询你的空闲时间,但真正发送会议邀请前,最好让你确认参会人、时间和议题。因为一旦发出邀请,就会影响其他人。工具调用把 AI 从建议推进到行动,越接近行动,就越需要确认。

很多优秀系统会把“生成草稿”和“执行发送”分开。模型可以准备邮件,但用户点击发送;模型可以生成 SQL,但系统先检查权限和影响范围。

工具调用也让错误更容易定位。回答错了,可能是模型理解错;工具结果错了,可能是外部系统问题;参数错了,可能是调用层设计问题。把每一步记录下来,才能知道该修哪里。

这也是为什么工具调用通常要结构化。自由文本适合表达意图,但真实系统更需要明确字段、合法取值和错误码。结构越清楚,越容易控制风险。

当你看到一个 AI 产品能“连工具”,要问的不只是它能连什么,还要问它怎么校验、怎么授权、怎么失败回退。

工具调用的成熟度,不体现在演示里点亮多少图标,而体现在出错时系统能否安全、诚实、可追踪地停下来。

可追踪,才可改进。

也才可追责。

延伸阅读

一句话总结

工具调用不是模型长出了手,而是模型提出意图,外部系统执行工具,再把结果交回模型组织回答。