Skip to content

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 基础索引**
  • **安全索引**
  • **设计文档**

Knowledge4J — Java 知识库