跳到主内容
智客 ZICQ

智客百科 AI 概念

工具调用 (Tool Use)

AI 概念
别名: 工具调用 Tool Use Function Calling Tool Calling ·2026-09-19

工具调用 (Tool Use)

工具调用 (Tool Use) 是让 LLM 在生成回复之外,主动决定调用外部 工具(搜索、数据库、API、shell、浏览器等)并把工具结果整合进答案 的能力。它把 LLM 从"能聊天的语言模型"升级为"能做事的工作流执行者", 是 AI Agent 的核心机制。

典型流程

  1. 工具注册:开发者定义可用工具(名称、描述、参数 schema)
  2. 模型决策:在 prompt 里看到任务后,模型决定是否调用工具、调用哪个
  3. 结构化返回:模型输出 {name, arguments} JSON(结构化输出)
  4. 运行时执行:宿主代码执行工具调用(如 HTTP / SQL / shell)
  5. 结果回填:工具结果作为新 prompt 段喂回模型,模型继续推理或给最终答案

与 function calling 的区别

  • Function calling:狭义,强调"调用一个有 schema 的函数"
  • Tool use:广义,包括 function calling、retrieval、code execution、 browser automation、shell 等等

实际上业界经常混用——OpenAI 叫 "function calling",Anthropic 叫 "tool use", 本质上同一回事。

主流实现

  • OpenAI function calling / tools API
  • Anthropic tool use
  • Google function calling (Gemini)
  • Mistral tool calling
  • Cohere tools API
  • MCP (Model Context Protocol):开源标准化协议,让"工具"成为 跨厂商可移植的能力包

应用场景

Agent 工作流

  • ReAct / ReWOO:reasoning + acting 循环
  • Plan-and-execute:先列计划,再逐步调用工具
  • Reflexion:调用后自我评估,必要时重新调用

信息获取

  • Web search / RAG 检索:把工具结果作为 prompt 上下文
  • 数据库查询:把 SQL 当工具
  • 知识库 / 文档系统:查询公司内部 wiki / CRM

副作用类操作

  • 发送邮件 / 下单 / 修改数据库 —— 这类工具需要 人类确认 步骤(human-in-the-loop)
  • 代码执行 / shell:模型能跑 Python / bash

挑战

  • 多步错误传播:一个工具调错,后面全部失败
  • 幻觉式调用:模型可能编造工具名 / 参数
  • 成本与延迟:每步工具调用都增加 token 消耗和等待时间
  • 安全边界:工具能改数据库 / 发邮件,必须设计沙箱 + 确认流程

与 Structured Output 的关系

Tool use 本身就是结构化输出的一种应用:模型被强制输出 {name, arguments} JSON 形式,宿主代码解析后执行。 所以严格的 tool use 必须配 schema 严格模式(structured-output.md)。