03 — Agent 工具与函数调用
定位: Agent 的"双手"——理解 Agent 如何定义、注册、调用外部工具,以及如何优雅地处理执行过程中的各种异常 面试高频度: ⭐⭐⭐⭐⭐
一、板块在体系中的位置
AI Agent 知识体系链路:
Agent 基础 (01) → 记忆系统 (02) → 工具系统 (03) ← 你现在在这里
↓
规划与推理 (04)
↓
多智能体系统 (05)
↓
安全与对齐 (06)
↓
主流框架 (07)上游: **Agent基础**、**记忆系统** 本板块: 函数调用 → 工具定义 → 执行与容错 下游: **规划与推理**、**安全与对齐**
二、知识全景图
┌──────────────────────────────────────────────────────────┐
│ Agent 工具系统全景 │
│ │
│ ┌──────────────────────────────────────────┐ │
│ │ 工具系统的三个层次 │ │
│ │ │ │
│ │ ┌─ 03.1 函数调用机制 ─────────────────┐ │ │
│ │ │ LLM 如何输出工具调用指令 │ │ │
│ │ │ 底层协议:OpenAI Tool Call / Anthropic Tool Use │ │
│ │ └────────────────────────────────────┘ │ │
│ │ │ │
│ │ ┌─ 03.2 工具定义与注册 ──────────────┐ │ │
│ │ │ 如何定义工具?如何管理工具列表? │ │ │
│ │ │ Schema 规范、注册中心、版本管理 │ │ │
│ │ └────────────────────────────────────┘ │ │
│ │ │ │
│ │ ┌─ 03.3 工具执行与容错 ──────────────┐ │ │
│ │ │ 工具执行生命周期、错误分类、 │ │ │
│ │ │ 重试策略、优雅降级 │ │ │
│ │ └────────────────────────────────────┘ │ │
│ └──────────────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────┘三、子专题导航
| # | 主题 | 面试频率 | 核心内容 |
|---|---|---|---|
| **03.1 函数调用机制** | ⭐⭐⭐⭐⭐ | LLM 函数调用的底层实现、tool_call 协议、多种 Provider 的差异 | |
| **03.2 工具定义与注册** | ⭐⭐⭐⭐ | Tool Schema 规范、注册中心设计、工具版本管理 | |
| **03.3 工具执行与容错** | ⭐⭐⭐⭐ | 执行生命周期、错误分类、重试/降级/回滚策略 |
四、核心考点速记
考点 1: 函数调用(Function Calling)的底层机制
不是 LLM "调用"了函数——而是 LLM 生成了特殊的结构化输出(tool_calls),
系统解释这个输出并执行对应的函数。
关键误解纠正:
❌ LLM 在执行代码
✅ LLM 在生成"调用指令",系统来执行考点 2: 工具定义的 Schema 结构
json
{
"type": "function",
"function": {
"name": "tool_name",
"description": "工具描述(LLM 理解的依据)",
"parameters": {
"type": "object",
"properties": {
"param1": {"type": "string", "description": "参数说明"}
},
"required": ["param1"]
}
}
}考点 3: 工具执行容错的三道防线
防线 1: 重试 (Retry) → 临时错误恢复
防线 2: 降级 (Degrade) → 换方案/换工具
防线 3: 上报 (Escalate) → 告诉用户/管理员五、面试高频追问一览
| 追问 | 关联笔记 | 频次 |
|---|---|---|
| Function Calling 的原理是什么? | **函数调用机制** | ⭐⭐⭐⭐⭐ |
| 如何设计一个可扩展的工具注册中心? | **工具定义与注册** | ⭐⭐⭐⭐ |
| Agent 工具调用失败后怎么办? | **工具执行与容错** | ⭐⭐⭐⭐ |
📚 相关文件
- **函数调用机制** — 底层原理
- **工具定义与注册** — 工具管理
- **工具执行与容错** — 容错策略
- **Agent 基础索引**
- **安全索引**
- **设计文档**