Appearance
14.3 Tools / Functions 调用机制详解
引言:为什么工具调用是 Agent 的核心
现代大模型无法直接访问互联网、执行代码、调用数据库。工具 = Agent 的"手"和"脚",模型负责"脑",工具负责"行动"。
14.3.1 现代工具调用的三大模式
| 模式 | 说明 | 特点 |
|---|---|---|
| Function Calling | 模型输出 JSON 格式的函数调用 | 稳定、强结构化、高可控性 |
| Tool Use | Claude 使用的 XML 格式工具调用 | 高灵活性、支持连续 ReAct 循环 |
| API Routing | 模型根据工具描述决定调用哪个工具 | 适合大型多工具环境 |
14.3.2 工具描述(Tool Spec)
模型通过开发者提供的描述理解工具能力:
name: "search"
description: "用于搜索网络信息"
parameters:
query: { type: string, description: "搜索关键词" }Tool Spec 的质量决定了 Agent 的智能程度。
14.3.3 工具调用提示词必须解决的问题
| 问题 | 示例规则 |
|---|---|
| 什么时候必须调用工具 | "当你需要访问外部信息时,必须使用工具" |
| 什么时候不能调用工具 | "当任务无需外部信息时,不得调用工具" |
| 工具的输入格式 | "Action Input 必须是 JSON" |
| 如何解释工具返回结果 | "Observation 返回后,必须更新推理" |
14.3.4 工具调用的错误模式与解决方案
| 错误 | 解决方案 |
|---|---|
| 格式错误 | 加入严格格式要求和示例 |
| 不必要的工具调用 | "只有在任务无法直接完成时才使用工具" |
| 工具滥用 | "若当前信息充足,必须直接回答" |
| 工具选择错误 | "必须根据工具描述决定是否合适" |
14.3.5 高级工具调用策略
| 策略 | 说明 |
|---|---|
| Multi-Tool Routing | 推理选择最适合的工具 |
| Chained Tools | 组合多个工具完成任务 |
| Retry Mechanism | 工具失败时调整参数并重试 |
| 推理更新 | 根据 Observation 重新推理下一步 |
本节小结
关键要点
- Tools/Functions = Agent 的"行动能力"
- 工具调用基于 Tool Spec
- 需要提示词明确:何时用、怎么用、格式、限制
- 多工具场景需要路由、组合、重试、状态管理
工具调用是 Agent 的核心能力,接下来我们将学习:Agent 状态管理。


