Skip to content

工具使用(Tool Use):让模型从“会说”到“会做”

📅 主题:LLM 如何调用外部工具,完成可执行任务

一、什么是 Tool Use

Tool Use(工具使用) 指的是:
模型在推理过程中,不只生成文本,还能按需调用外部能力(API、数据库、检索、代码执行、文件系统等),再基于工具返回结果继续推理并输出答案。

简单理解:

  • 纯 LLM:只靠参数记忆回答
  • Tool Use:需要什么能力就去调用什么工具

这让模型从“语言生成器”变成“任务执行者”。


二、为什么 Tool Use 很重要

在真实业务里,很多问题不可能仅靠模型参数解决:

  1. 需要最新数据:例如实时价格、天气、库存
  2. 需要精确计算:复杂计算、代码执行、SQL 聚合
  3. 需要系统操作:发消息、写工单、更新数据库
  4. 需要私有知识:企业文档、内部系统、权限数据

Tool Use 的价值:

  • 提升准确性(有外部证据)
  • 降低幻觉(不是“猜”,而是“查”)
  • 扩展能力边界(可执行真实动作)

三、Tool Use 的基本流程

典型流程如下:

  1. 用户提出任务
  2. 模型判断是否需要调用工具
  3. 选择工具并生成参数
  4. 系统执行工具调用
  5. 将结果回传给模型
  6. 模型基于结果继续推理并输出

可以写成:

问题 -> 选择工具 -> 执行 -> 观察结果 -> 生成最终答案

这也是 ReAct / Agent 工作流中的核心闭环。


四、工具接口设计:决定可用性

工具是否好用,关键看接口定义质量。建议:

4.1 明确工具职责

  • 一个工具只做一件事(高内聚)
  • 命名清晰(searchDocsrunSqlsendMessage

4.2 参数结构化

  • 使用明确 schema(字段类型、必填项、枚举值)
  • 给出示例参数,减少模型调用错误

4.3 返回可解析

  • 返回结构化结果(JSON)
  • 包含状态码、错误信息、关键结果字段

4.4 错误可恢复

  • 可预期错误(超时、权限不足、参数不合法)要有标准化返回
  • 方便模型或编排层决定重试/降级

五、常见工具类型

  1. 检索类:搜索文档、知识库、网页
  2. 数据类:数据库查询、指标系统
  3. 执行类:代码运行、脚本调用、命令执行
  4. 业务类:工单系统、IM 发送、CRM 操作
  5. 内容类:读写文件、生成报告、文档处理

在生产系统中,工具通常会按权限域分组,避免模型访问不必要的高风险能力。


六、Tool Use 的关键工程问题

6.1 工具选择错误

表现:模型选错工具或参数乱填。
优化:

  • 工具描述写清“何时用”
  • 减少同时暴露的工具数量(按场景路由)
  • 在调用前做参数校验

6.2 调用链过长

表现:一个问题触发很多无效调用,延迟高。
优化:

  • 设置最大调用步数
  • 增加 early stop 条件
  • 对常见问题做缓存

6.3 高风险操作

表现:模型直接执行不可逆操作(删除、发送、改库)。
优化:

  • 权限分级
  • 人工确认(human-in-the-loop)
  • 干跑模式(dry-run)与审计日志

6.4 工具返回噪声大

表现:工具返回太多无关数据,模型理解困难。
优化:

  • 返回精简字段
  • 提供摘要层(result summary)
  • 对大结果做分页与筛选

七、Tool Use 与 MCP、Skills、Agent 的关系

  • MCP:定义工具/资源如何标准化暴露(能力接口层)
  • Skills:定义在什么场景下如何使用工具(策略层)
  • Agent:在多步任务中决策何时调什么工具(执行编排层)

三者关系可以理解为:

  • MCP 提供“有什么工具可用”
  • Skills 提供“工具应该怎么用”
  • Agent 决定“当前这一步要不要用、用哪个”

八、评估 Tool Use 效果

仅看“回答是否通顺”不够,建议看这些指标:

  1. 工具调用成功率(调用是否正常返回)
  2. 工具选择准确率(是否选对工具)
  3. 任务完成率(最终任务是否完成)
  4. 平均调用步数(是否高效)
  5. 端到端时延与成本
  6. 高风险操作误触发率

这些指标能直接反映 Tool Use 是否“可上线”。


九、实践建议(落地顺序)

  1. 先做 2-3 个高价值工具(不要一次接太多)
  2. 定义清晰 schema 与错误码
  3. 建立调用日志和可观测性
  4. 增加参数校验与权限控制
  5. 再逐步引入多工具编排与自动化策略

这样可以从“可用”稳步走向“可控、可审计、可扩展”。


十、小结

  1. Tool Use 是 LLM 从“会说”到“会做”的关键能力。
  2. 核心闭环是:判断是否调用 -> 选择工具 -> 执行 -> 用结果继续推理。
  3. 工具接口设计(职责、参数、返回、错误)决定了系统上限。
  4. 生产落地必须重视权限、审计、错误恢复与性能指标。
  5. 与 MCP、Skills、Agent 协同后,Tool Use 才能形成稳定的自动化能力。

当模型拥有可靠的工具使用能力,它不再只是回答问题,而是可以真正“完成任务”。

Released under the MIT License.