<!-- title: Agent工具调用进化全图鉴：从Function Calling到MCP发现生态 -->

# Agent工具调用进化全图鉴：从Function Calling到MCP发现生态

2026年，AI Agent的工具调用能力正经历一场静默但深刻的范式迁移。OpenAI在Responses API中嵌入Shell工具和托管容器，Anthropic推出Tool Search Tool实现85%的Token节省，Google则在Gemini 3中打通了Google Search、Maps与自定义函数的跨工具上下文循环。与此同时，MCP注册中心已收录超过12,000个MCP Server，月下载量突破9700万次——一个以工具发现、组合和编排为核心的新生态正在成型。本文将从协议演进、三厂API设计哲学、工具发现机制、Token经济优化、安全护栏五个维度，拆解Agent工具调用从"硬编码函数定义"到"动态工具生态"的完整进化路径。

## 一、工具调用五层进化栈

要理解当前Agent工具调用的格局，首先需要看清其进化层级。从最底层的JSON Schema函数定义，到最顶层的自治工具发现生态，工具调用经历了五个清晰的阶段：

| 层级 | 阶段 | 代表实现 | 核心能力 | 时间 |
|------|------|----------|----------|------|
| L1 | 静态函数定义 | OpenAI Function Calling v1 | JSON Schema描述函数，模型输出结构化参数 | 2023 |
| L2 | 并行工具调用 | GPT-4 Turbo / Claude Tool Use | 单次响应发起多个工具调用，支持嵌套 | 2024 |
| L3 | 内置工具集成 | OpenAI Code Interpreter / Google Grounding | 平台提供预构建工具，无需定义Schema | 2024-2025 |
| L4 | 协议化工具接入 | MCP / OpenAI Responses API | 标准协议连接外部工具服务，工具即服务 | 2025 |
| L5 | 动态发现与编排 | MCP Registry / Anthropic Tool Search / Gemini Context Circulation | Agent运行时自动发现、选择、组合工具 | 2026 |

当前行业正处于L4到L5的过渡期。L4解决了"如何连接工具"的问题，L5要解决的是"如何找到合适的工具"以及"如何让多个工具协同工作"。

```mermaid
graph TB
    subgraph "L5: 动态发现与编排"
        A1["MCP Registry<br/>12,000+ Servers"]
        A2["Anthropic Tool Search<br/>85% Token节省"]
        A3["Gemini Context Circulation<br/>跨工具上下文"]
    end

    subgraph "L4: 协议化工具接入"
        B1["MCP Protocol"]
        B2["OpenAI Responses API"]
        B3["Gemini Tool Combination"]
    end

    subgraph "L3: 内置工具集成"
        C1["Code Interpreter"]
        C2["Google Search Grounding"]
        C3["Computer Use"]
    end

    subgraph "L2: 并行工具调用"
        D1["Parallel Function Calling"]
    end

    subgraph "L1: 静态函数定义"
        E1["JSON Schema"]
    end

    A1 --> B1
    A2 --> B1
    A3 --> B3
    B1 --> C3
    B2 --> C1
    B3 --> C2
    C1 --> D1
    C2 --> D1
    C3 --> D1
    D1 --> E1
```

## 二、三厂API设计哲学对决

### 2.1 OpenAI：平台内置化路线

OpenAI的策略是"工具即平台能力"。2026年2月，OpenAI在Responses API中引入了三项关键升级：Shell Tool（托管Debian容器，root权限）、Code Interpreter（容器池化执行）、File Search（向量存储检索）。这些工具不需要开发者定义Schema——它们是API的原生能力。

```python
# OpenAI Responses API: 平台内置工具 + 自定义工具
response = client.responses.create(
    model="gpt-4.1",
    tools=[
        # 内置工具 — 无需定义Schema
        {"type": "code_interpreter", "container": {"type": "auto"}},
        {"type": "file_search", "vector_store_ids": ["vs_abc"]},
        {"type": "web_search_preview"},
        # 自定义工具 — 传统Function Calling
        {
            "type": "function",
            "name": "query_database",
            "description": "Query the analytics database",
            "parameters": {
                "type": "object",
                "properties": {
                    "sql": {"type": "string"}
                }
            }
        }
    ],
    input="分析上季度的销售数据并生成可视化报告"
)
```

**设计哲学核心**：OpenAI将最常见的工具需求（代码执行、文件处理、网络搜索）内化为平台能力，开发者只需声明`"type": "code_interpreter"`即可使用。Shell Tool更进一步——模型获得一个完整的Linux终端环境，可以安装软件、运行脚本、操作文件系统。2026年3月，OpenAI增加了容器池化（Container Pools），将容器启动时间从秒级降至毫秒级，显著提升了多轮工具调用的响应速度。

**优点**：零配置、开箱即用、执行环境隔离。**缺点**：工具能力受限于OpenAI提供的内置类型，自定义工具仍需回退到传统Function Calling模式。

### 2.2 Anthropic：协议标准化路线

Anthropic的策略是"工具即协议"。MCP（Model Context Protocol）不提供具体工具，而是定义了一套标准协议，让任何外部服务都能成为Agent的工具。2025年11月，Anthropic推出了三项高级工具使用能力，彻底改变了Agent与工具交互的方式：

```python
# Anthropic Tool Search Tool: 动态工具发现
# 不再需要把所有工具定义塞进context
response = client.messages.create(
    model="claude-sonnet-4-20250514",
    tools=[
        # 只暴露一个搜索工具（~500 tokens）
        {
            "type": "tool_search_tool",
            "name": "tool_search",
            "max_results": 5
        }
    ],
    messages=[{"role": "user", "content": "帮我部署一个K8s集群"}]
)
# Claude会自动从数千个工具中搜索、选择合适的工具
# 再按需加载完整Schema — Token消耗降低85%
```

**Tool Search Tool**的突破性在于：当Agent面对数千个MCP Server提供的工具时，不再需要把所有工具定义塞入上下文（动辄消耗数万Token）。取而代之的是一个仅500 Token的元工具，Claude通过它搜索、筛选、按需加载工具定义。根据Anthropic的测试数据，这一机制可将Token消耗降低85%。

**Programmatic Tool Calling**允许开发者直接指定调用哪个工具、传什么参数，绕过模型的工具选择过程——适用于需要确定性执行的场景（如合规审计、自动化流水线）。

**Token-Efficient Tool Use**通过缓存工具Schema和优化工具定义编码，使工具调用的Token消耗进一步减半。配合Prompt Caching，连续调用的成本可降低至传统方式的1/10。

**优点**：协议开放、生态丰富（12,000+ MCP Server）、Token效率极高。**缺点**：需要MCP Server部署和维护，学习曲线陡峭。

### 2.3 Google：跨工具编排路线

Google的策略最为独特——"工具即组合"。2026年3月17日，Google发布了Gemini API三项工具能力升级，其中最引人注目的是**Context Circulation**（上下文循环）和**Tool Combination**（工具组合）。

```python
# Gemini 3: 内置工具 + 自定义函数组合
# 一次API调用中同时使用Google Search、Maps和自定义函数
response = client.models.generate_content(
    model="gemini-3.0-flash",
    contents="找一家东京新宿附近的拉面店，查看最新评价和评分，并预订座位",
    config=GenerateContentConfig(
        tools=[
            # 内置工具
            {"google_search": {}},
            {"google_maps": {}},  # 新增Maps Grounding
            # 自定义工具
            {"function_declarations": [{
                "name": "book_restaurant",
                "parameters": {
                    "restaurant_id": {"type": "string"},
                    "datetime": {"type": "string"},
                    "party_size": {"type": "integer"}
                }
            }]}
        ],
        # Context Circulation: 工具间自动传递上下文
        tool_config={
            "context_circulation": True,
            "parallel_tool_ids": True  # 并行工具ID追踪
        }
    )
)
```

**Context Circulation**的精髓：当Google Search返回"一兰拉面新宿店"的结果后，这个结果自动作为上下文传递给Google Maps（查找位置），再传递给自定义的`book_restaurant`函数（执行预订）。整个链路中，每个工具的输出自动成为下一个工具的输入上下文——开发者不需要手动编写中间结果的传递逻辑。

**Parallel Tool IDs**为每个工具调用分配唯一标识符，使得模型可以在单次响应中发起多个并行工具调用，并准确追踪每个调用的结果。

**优点**：零代码编排、内置工具质量极高（Google Search + Maps的组合无出其右）、单次调用完成多步链路。**缺点**：深度绑定Google生态、仅Gemini 3模型支持、预览阶段稳定性待验证。

## 三、工具发现：从硬编码到注册中心

### 3.1 MCP Registry：AI工具世界的npm

MCP Registry的上线标志着工具调用从"开发者手动定义"进入"生态自动发现"时代。截至2026年5月，Registry已收录超过12,000个MCP Server，覆盖数据库、云服务、开发工具、通信平台等数十个类别。

```mermaid
graph LR
    subgraph "传统模式"
        A1["开发者手动定义<br/>JSON Schema"] --> A2["硬编码到<br/>Agent配置"]
        A2 --> A3["工具变更需<br/>重新部署"]
    end

    subgraph "MCP Registry模式"
        B1["MCP Registry<br/>12,000+ Servers"] --> B2["Agent运行时<br/>自动发现"]
        B2 --> B3["Tool Search<br/>按需加载"]
        B3 --> B4["动态适配<br/>工具变更"]
    end

    A3 -.->|"进化"| B1
```

MCP Registry的架构包含三层：

- **Registry Spec**：所有Registry实现必须遵循的API规范，定义了Server注册、发现、验证的标准接口
- **Reference Implementation**：官方参考实现，提供免费的公共Registry服务
- **Community Registries**：社区和企业可以部署私有Registry，满足安全和合规需求

Anthropic的Tool Search Tool正是基于Registry的发现能力。当Agent需要"操作Salesforce"时，Tool Search Tool会查询Registry中所有与Salesforce相关的MCP Server，按相关性排序返回前N个，再加载其工具定义。整个过程对开发者完全透明。

### 3.2 发现机制对比

| 发现机制 | 厂商 | Token消耗 | 工具数量上限 | 动态性 |
|----------|------|-----------|-------------|--------|
| 手动定义Schema | 全部 | O(n×schema_size) | 受上下文窗口限制 | 静态 |
| MCP Registry + Tool Search | Anthropic | O(1) + O(k×schema_size) | 理论无上限 | 动态 |
| MCP Optimizer (Stacklok) | 第三方 | O(k×compressed_schema) | 受上下文窗口限制 | 半动态 |
| 内置工具自动发现 | OpenAI | O(1) | 受平台支持限制 | 平台控制 |
| Google Tool Combination | Google | O(n×schema_size) | 受单次调用限制 | 静态+内置 |

关键数据：传统模式下，100个工具的定义约消耗15,000-30,000 Token；使用Tool Search Tool后，初始消耗仅500 Token，按需加载5个工具约3,000 Token，总计节省85%。

## 四、Token经济学：工具调用的隐性成本

工具调用不是免费的。每次调用不仅消耗输出Token（模型生成的工具参数），还消耗输入Token（工具定义的重复传递）。在多轮Agent循环中，工具定义在每轮都会重复发送——这是Token通胀的主要来源。

### 4.1 四种Token优化策略实测

**策略一：Anthropic Tool Search Tool**

原理：用500 Token的搜索元工具替代数万Token的完整工具定义。模型先搜索再加载，避免无关工具占用上下文。实测Token节省：85%。适用场景：工具数量 > 50。

**策略二：Prompt Caching（OpenAI/Anthropic）**

原理：缓存工具定义部分，后续调用只需发送缓存的引用ID。OpenAI和Anthropic均支持，缓存命中时输入成本降低90%。实测Token节省：50-90%（取决于缓存命中率）。适用场景：工具定义固定、多轮对话。

**策略三：Schema压缩（Stacklok MCP Optimizer）**

原理：通过静态分析工具定义，去除冗余描述、精简枚举值、压缩嵌套结构。实测Token节省：40-60%。适用场景：工具定义冗长但不可修改源码。

**策略四：Google Context Circulation**

原理：单次调用完成多步工具链路，减少总调用轮次。传统模式需要3次API调用（搜索→定位→预订），Context Circulation只需1次。实测API调用次数减少：60-70%。适用场景：多步编排链路。

```mermaid
graph TB
    subgraph "传统模式: 3次调用"
        C1["调用1: Google Search<br/>输入: 查询+工具定义<br/>~5K tokens"] --> C2["调用2: Maps API<br/>输入: 查询+工具定义+搜索结果<br/>~8K tokens"]
        C2 --> C3["调用3: 预订函数<br/>输入: 查询+工具定义+搜索+位置<br/>~12K tokens"]
        C3 --> C4["总计: ~25K tokens<br/>3次API调用"]
    end

    subgraph "Context Circulation: 1次调用"
        D1["单次调用<br/>输入: 查询+所有工具定义<br/>~6K tokens"] --> D2["模型内部编排<br/>Search→Maps→Book<br/>自动传递上下文"]
        D2 --> D3["总计: ~6K tokens<br/>1次API调用"]
    end
```

### 4.2 成本模型对比

以一个典型的"搜索+数据分析+生成报告"Agent任务为例，假设使用Claude Sonnet 4（$3/M input, $15/M output）：

| 策略 | 输入Token | 输出Token | API调用次数 | 估算成本 |
|------|-----------|-----------|-------------|----------|
| 无优化 | 180,000 | 12,000 | 5 | $0.70 |
| Prompt Caching | 180,000 (90%缓存) | 12,000 | 5 | $0.13 |
| Tool Search | 45,000 | 8,000 | 5 | $0.16 |
| Tool Search + Caching | 45,000 (90%缓存) | 8,000 | 5 | $0.05 |

最佳实践：Tool Search + Prompt Caching的组合可将Agent工具调用成本降至无优化方案的7%。

## 五、安全护栏：工具调用的权限边界

工具调用的能力越强，安全风险越大。2026年，工具调用安全已经从"可选特性"升级为"必选项"。

### 5.1 三层权限模型

```
┌──────────────────────────────────────┐
│  L3: 执行审批层                       │
│  - 高危操作需人工确认                 │
│  - 金额/权限变更双因素验证            │
│  - Human-in-the-Loop强制卡点          │
├──────────────────────────────────────┤
│  L2: 输出验证层                       │
│  - 工具返回值Schema校验               │
│  - 敏感数据脱敏/过滤                  │
│  - AgentDoG诊断式护栏                 │
├──────────────────────────────────────┤
│  L1: 输入防护层                       │
│  - 工具调用意图白名单                 │
│  - 参数范围约束                       │
│  - Prompt注入检测                     │
└──────────────────────────────────────┘
```

**L1: 输入防护** — 在模型决定调用工具之前，拦截不合法的工具调用意图。OpenAI Agents SDK提供了Input Guardrails机制，可以定义规则拦截特定模式。例如，禁止Agent调用删除数据库的工具。

**L2: 输出验证** — 在工具返回结果后、模型处理结果前，校验返回值。Anthropic的Programmatic Tool Calling天然支持这一层——开发者可以在工具执行和结果传递之间插入验证逻辑。

**L3: 执行审批** — 最严格的安全层。对于高危操作（资金转移、数据删除、权限变更），强制要求人工确认。OpenAI Agents SDK的Human Review机制和Anthropic的Tool Use Examples都支持这一模式。

### 5.2 AgentDoG：诊断式护栏新范式

2026年1月发表的AgentDoG（arXiv:2601.18491）提出了诊断式护栏框架，与传统的"拦截-拒绝"模式不同，它采用"诊断-修复"模式：当检测到潜在危险工具调用时，不直接拒绝，而是分析调用意图，提供安全替代方案。这一思路正在被多家Agent框架采纳。

## 六、BFCL v4：工具调用能力的统一标尺

Berkeley Function Calling Leaderboard v4（BFCL v4）是目前最全面的工具调用评测基准。它不再只测试"模型能否正确生成工具参数"，而是评估完整的Agent工具使用能力：

| 测试维度 | 权重 | 核心评估 |
|----------|------|----------|
| Simple Function | 15% | 单函数调用，参数正确性 |
| Multiple Function | 15% | 多函数并行调用 |
| Parallel Function | 15% | 同一函数多组参数并行 |
| Parallel Multiple | 15% | 多函数+多参数组合 |
| Composite Function | 20% | 嵌套函数、链式调用 |
| Agentic Evaluation | 20% | 工具选择、错误恢复、动态适配 |

值得注意的变化是**Agentic Evaluation**维度的引入（20%权重），它测试模型在真实Agent场景中的工具使用能力：给定一组可用工具，模型需要自主决定使用哪些工具、以什么顺序、如何处理工具调用失败。这标志着工具调用评测从"语法正确性"走向"语义有效性"。

根据BFCL v4的公开排行榜，GPT-4.1、Claude Sonnet 4、Gemini 3 Pro在综合得分上非常接近（差距在3%以内），但在具体维度上各有优势：GPT-4.1在并行调用上领先，Claude在Agentic Evaluation上突出，Gemini在复合函数上表现优异。

## 七、实战选型决策矩阵

| 场景 | 推荐方案 | 理由 |
|------|----------|------|
| 快速原型/内部工具 | OpenAI Responses API | 内置工具零配置，Shell Tool开箱即用 |
| 大规模工具生态 | Anthropic MCP + Tool Search | 12,000+ Server，Token效率最高 |
| 本地化/搜索密集 | Google Gemini 3 Tool Combination | Search + Maps Grounding无可替代 |
| 企业合规/审计 | Anthropic Programmatic Tool Calling | 确定性执行，可追溯 |
| 成本敏感型 | Tool Search + Prompt Caching | Token消耗降至传统方案7% |
| 混合编排 | MCP + A2A双协议 | MCP管工具，A2A管Agent间通信 |

```mermaid
flowchart TD
    START["Agent工具调用需求"] --> Q1{"工具来源？"}

    Q1 -->|"平台内置足够"| Q2{"选哪个平台？"}
    Q1 -->|"需要外部工具"| Q3{"工具数量？"}

    Q2 -->|"代码执行+文件处理"| OAI["OpenAI Responses API<br/>Code Interpreter + Shell"]
    Q2 -->|"搜索+地理数据"| GOO["Google Gemini 3<br/>Search + Maps Grounding"]
    Q2 -->|"通用Agent"| ANT["Anthropic MCP<br/>协议化接入"]

    Q3 -->|"≤20个"| TRAD["传统Function Calling<br/>+ Prompt Caching"]
    Q3 -->|"20-100个"| MCP_OPT["MCP + Schema压缩<br/>或 MCP Optimizer"]
    Q3 -->|"100+个"| TOOL_SEARCH["MCP + Tool Search Tool<br/>+ Prompt Caching"]

    OAI --> SEC["加安全护栏"]
    GOO --> SEC
    ANT --> SEC
    TRAD --> SEC
    MCP_OPT --> SEC
    TOOL_SEARCH --> SEC

    SEC --> DONE["生产就绪"]
```

## 八、趋势判断与延伸思考

**判断一：MCP将成为工具调用的TCP/IP**。正如TCP/IP统一了网络通信，MCP正在统一Agent与工具的连接协议。12,000+ Server的生态规模和97M月下载量已经跨越了临界点。OpenAI虽未官方支持MCP，但其Responses API的"内置工具"模式本质上是在协议层之上做了一层封装——未来不排除兼容MCP的可能性。

**判断二：Tool Search是解决工具爆炸的唯一可行路径**。当工具数量从几十增长到几千，把所有工具定义塞进上下文在物理上不可行。Anthropic的Tool Search Tool和Google的Context Circulation分别从"按需加载"和"自动编排"两个角度解决了这个问题。这两种思路将在2026年下半年融合。

**判断三：安全护栏将成为工具调用的默认配置**。AgentDoG论文提出的诊断式护栏、OpenAI的Input Guardrails、Anthropic的Programmatic Tool Calling，都指向同一个趋势：工具调用的安全控制将从"可选配置"变为"协议内建"。未来的工具调用协议将内置权限声明、审批流程和审计追踪。

**判断四：BFCL v4的Agentic维度将重塑模型训练**。当评测从"参数正确性"扩展到"工具选择策略"，模型训练目标也将相应调整。预计2026年下半年，主要厂商将在工具选择和错误恢复能力上展开新一轮竞赛。

---

## 参考来源

1. [MCP 2026 Roadmap | Model Context Protocol Blog](https://blog.modelcontextprotocol.io/posts/2026-mcp-roadmap/) — MCP官方2026路线图，涵盖传输扩展性、Agent通信、治理成熟度
2. [Function Calling & Tool Use: Complete Guide 2026 | OFox](https://ofox.ai/blog/function-calling-tool-use-complete-guide-2026/) — GPT/Claude/Gemini工具调用完整对比指南
3. [Introducing Advanced Tool Use | Anthropic Engineering](https://www.anthropic.com/engineering/advanced-tool-use) — Anthropic高级工具使用能力发布：Tool Search、Programmatic Tool Calling、Token-Efficient Tool Use
4. [Gemini API Tooling Updates | Google Blog](https://blog.google/innovation-and-ai/technology/developers-tools/gemini-api-tooling-updates/) — Google Gemini 3工具组合、Context Circulation、Maps Grounding发布
5. [12,000+ MCP Servers Live: Adoption Stats 2026 | Ooty.io](https://ooty.io/blog/state-of-mcp-ecosystem-2026) — MCP生态系统统计：12,000+ Server、80% Fortune 500采用、97M月下载
6. [BFCL V4 Leaderboard | UC Berkeley](https://gorilla.cs.berkeley.edu/leaderboard.html) — BFCL v4工具调用基准排行榜，含Agentic Evaluation维度
7. [Shell Tool | OpenAI API Docs](https://developers.openai.com/api/docs/guides/tools-shell) — OpenAI Shell Tool文档：托管Debian容器、root权限
8. [AgentDoG: Diagnostic Guardrail Framework | arXiv](https://arxiv.org/html/2601.18491v1) — AgentDoG诊断式护栏框架论文

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
