Tool Use · 工具调用

LLM 通过结构化请求调动外部能力执行操作的机制——智能体的”手脚”

简介

Tool Use(工具调用,也叫 Function Calling)是 LLM 与外部世界交互的核心机制。LLM 根据当前上下文判断需要执行某个操作(搜索、读文件、执行命令、调 API 等),输出结构化的工具调用请求,由外部 Runtime 真正执行工具,再将结果返回给 LLM 继续推理。

关键洞察:Tool 本身通常不具备智能——不知道什么时候该调用、任务整体目标是什么、下一步该做什么。这些判断职能仍然归属 LLM 或外围工作流。

核心流程

LLM 判断"需要读文件"
  → 输出结构化 tool_use 请求
  → Agent Runtime 收到请求并解析
  → Runtime 真正执行工具(如读取文件)
  → 工具返回结果
  → Runtime 将结果回填入 Context
  → LLM 基于新信息继续下一轮判断

关键分工

  • LLM:负责决策(“我需要做什么”)
  • Runtime:负责调度(“何时执行、怎么执行、结果怎么处理”)
  • Tool:负责执行(实际执行具体操作)

Tool 的性质:“能力外放”,不是”增加智能”

本文采用武侠比喻帮助理解:

武侠比喻工程里的 Tool能力类型
勘测前方十里地形搜索网页、读取目录、读取文件信息获取
神识探查查询数据库、查看日志、读取系统状态状态感知
飞剑攻击修改文件、调用 API、执行命令执行操作
炼器生成代码、创建配置、修改工程内容产出
传讯符发送消息、调用外部服务对外通信
储物法宝保存任务状态、持久化 Memory信息持久化

关键理解:Tool 没有把 LLM 变成另一个更聪明的模型,它只是给 LLM 的判断增加了可执行出口。

Tool Use vs Function Calling

Tool Use 和 Function Calling 本质上是同一类能力的不同称呼:

  • Function Calling:OpenAI/大模型厂商侧的名称,强调模型输出 function_call 结构化 JSON
  • Tool Use:Anthropic(如 Claude Code)更偏向从 Agent 系统视角的称呼,包含工具定义、调用、执行、结果回填的完整链路

在 Agent 世界观中,Tool Use 是更完整的表达,因为它涵盖了”模型输出意图 → Runtime 执行 → 结果回馈”的全过程,而不仅仅是模型输出格式。

不同素材中的观点

来自 2026-08-11-agent-worldview-llm-context-tool-agent

  • Tool 本身只是一个能力接口,不知道”为什么调用自己""任务目标是什么""下一步应该做什么”
  • LLM 一般不会自己伸手进入操作系统执行命令——更典型的是 LLM 输出调用请求,Runtime 执行
  • Tool 没有把 LLM 变成更聪明的模型,只是给 LLM 的判断增加了可执行出口
  • 从武侠比喻视角:Tool 是”法宝”,自身不产生判断,但让高手的”内力”有更多现实表现形式

实用信息

Tool 设计原则

  1. 单一职责:每个 Tool 做好一件事,接口清晰
  2. 输入输出结构化:参数类型明确,返回格式稳定
  3. 幂等性(尽量):读操作天然幂等,写操作尽量设计成可重复执行
  4. 错误可传达:失败时返回有意义的信息,让 LLM 能做恢复决策
  5. 权限边界清晰:明确定义 Tool 能访问什么、不能访问什么

常见 Tool 类型

  • 信息检索类:WebFetch, WebSearch, Grep, Read
  • 文件操作类:Read, Write, Edit, Glob
  • 执行类:Bash, Run, Deploy
  • 数据类:QueryDatabase, SearchVectorDB
  • 通信类:SendMessage, SendEmail

相关页面