一句话定义
Tool Calling 是让模型输出结构化的函数调用请求(函数名 + JSON 参数),由外部运行时执行,再把结果写回上下文。模型不直接执行代码。
为什么需要它
模型本身不能查数据库、发请求或跑代码。工具调用把“说”变成“做”,让 Agent 能获取实时信息、执行动作;但参数错误、权限和副作用必须由运行时控制。
关键概念
Function Calling
模型按 function schema 生成参数,运行时校验后执行。schema 要写清类型、必填项、枚举和描述。
Tool Use
更广义的工具使用:搜索、数据库、代码执行、浏览器、API 都算;可以是函数,也可以是外部服务。
Plugin
把一组工具打包成可安装/可发现的插件;MCP 则是统一的工具接入协议。
关键取舍
- 工具越多,选择冲突和误用概率越高;要分组、命名和权限控制。
- 返回值要结构化、可读、可截断;否则会撑爆上下文。
- 写操作/支付/删除要有确认、幂等和回滚。
- 错误要回填给模型,让它重试或改参数,而不是静默失败。
- 参数校验要覆盖类型、枚举、必填和范围;错误码、超时和幂等也要设计。
- 工具多时先检索/分组,描述避免歧义;写操作要人工确认。
- 评测看调用准确率、参数正确率和任务成功率。
常见误区
- 模型调用工具等于模型执行工具:执行在运行时。
- 工具描述可以随便写:描述和 schema 直接决定调用质量。
- 工具越多越强:选择成本和冲突会上升。
- 插件等于 MCP:插件是打包方式,MCP 是协议。
用在哪里
- 搜索、数据库查询、代码执行、文件操作。
- Agent 的 API/工具接入层。
- 企业系统集成与权限受控的自动化。
相关概念
- MCP:统一工具接入协议。
- Agent Workflow:工具调用的编排与状态。
- ReAct:思考与行动交替的范式。