---
title: Anthropic Claude 系列 Tools Calling 评测
description: >-
  使用 AiPMChat 测试 Anthropic Claude 系列模型（Claude 3.5 sonnet / Claude 3 Opus /
  Claude 3 haiku） 的工具调用（Function Calling）能力，并展现评测结果
tags:
  - Tools Calling
  - Benchmark
  - Function Calling 评测
  - 工具调用
  - 插件
---

# Anthropic Claude 系列 Tools Calling

Anthropic Claude 系列模型 Tools Calling 能力一览：

| 模型 | 支持 Tools Calling | 流式 （Stream） | 并发（Parallel） | 简单指令得分 | 复杂指令 |
| --- | --- | --- | --- | --- | --- |
| Claude 3.5 Sonnet | ✅ | ✅ | ✅ | 🌟🌟🌟 | 🌟🌟 |
| Claude 3 Opus | ✅ | ✅ | ❌ | 🌟 | ⛔️ |
| Claude 3 Sonnet | ✅ | ✅ | ❌ | 🌟🌟 | ⛔️ |
| Claude 3 Haiku | ✅ | ✅ | ❌ | 🌟🌟 | ⛔️ |

## Claude 3.5 Sonnet

### 简单调用指令：天气查询

测试指令：指令 ①

<Video src="https://github.com/aipmhub/aipm-chat/assets/28616219/42a6980c-ea2a-44fd-b61f-a7989827f5a5" />

<Image
  alt="Claude 3.5 Sonnet 简单指令的 Tools Calling"
  src="https://github.com/lobehub/lobe-chat/assets/28616219/71146b75-2c73-48c3-9688-1d8814d2a791"
/>

<details>
  <summary>Tools Calling 原始输出：</summary>

```yml

```

</details>

### 复杂调用指令：文生图

测试指令：指令 ②

<Video src="https://github.com/aipmhub/aipm-chat/assets/28616219/a9a40899-d5f3-4ef2-aa08-922751b05ca6" />

从上述视频中可以看到：

1.  Sonnet 3.5 支持流式 Tools Calling 和 Parallel Tools Calling；
2.  在流式 Tools Calling 时，表现出来的特征是在创建长句会等待住（详见 Tools Calling 原始输出 `[chunk 40]` 和 `[chunk 41]` 中间的耗时达到 6s）。所以相对来说会在 Tools Calling 的起始阶段有一个较长的等待时间。

<Image
  alt="Claude 3.5 Sonnet 复杂指令的 Tools Calling"
  src="https://github.com/lobehub/lobe-chat/assets/28616219/23e2d7e5-a6f3-4f4c-9c6a-5651f35a5910"
/>

<details>
  <summary>Tools Calling 原始输出：</summary>

```yml

```

</details>

## Claude 3 Opus

### 简单调用指令：天气查询

测试指令：指令 ①

<Video src="https://github.com/lobehub/lobe-chat/assets/28616219/0e120fa2-8410-4552-a947-5ab7a91d994d" />

从上述视频中看到：

1. Claude 3 Opus 在调用 Tools 的起点会输出一段 `<thinking>` 标签的内容，这段内容对于用户来说几乎没有什么帮助，反而带来了较多的 Token 消耗；
2. Opus 会触发两次 Tools Calling，说明它并不支持 Parallel Tools Calling；
3. 从 Tools Calling 的原始输出来看， Opus 也是支持流式 Tools Calling 的

<Image
  alt="Claude 3 Opus 简单指令的 Tools Calling"
  src="https://github.com/lobehub/lobe-chat/assets/28616219/fa2f89bc-b9d5-43e3-a15e-1e79174d002c"
/>

  <details>
    <summary>Tools Calling 原始输出：</summary>

</details>

### 复杂调用指令：文生图

测试指令：指令 ②

<Video src="https://github.com/lobehub/lobe-chat/assets/28616219/b2dc8cd9-2582-43fe-9121-29c20a1cdc7b" />

从上述视频中看到：

1. 结合简单任务， Opus 的工具调用一定会输出 `<thinking>` 标签，这其实对体验影响非常大
2. Opus 输出的 prompts 字段是字符串，而不是数组，导致报错，无法正常调用插件。

<Image
  alt="Claude 3 Opus 复杂指令的 Tools Calling"
  src="https://github.com/lobehub/lobe-chat/assets/28616219/1eee785d-932f-4320-845e-eed0bee4b1ae"
/>

<details>
  <summary>Tools Calling 原始输出：</summary>

</details>

## Claude 3 Sonnet

### 简单调用指令：天气查询

测试指令：指令 ①

<Video src="https://github.com/lobehub/lobe-chat/assets/28616219/600becd5-7f12-4a9a-86c7-e5cca0db6b1b" />

从上述视频中可以看出，Claude 3 Sonnet 会调用两次 Tools Calling，说明它并不支持 Parallel Tools Calling。

<Image
  alt="Claude 3 Sonnet 简单指令的 Tools Calling"
  src="https://github.com/lobehub/lobe-chat/assets/28616219/e82f5c69-7607-488f-8c10-0482fb380c6c"
/>

<details>
  <summary>Tools Calling 原始输出：</summary>

</details>

### 复杂调用指令：文生图

测试指令：指令 ②

<Video src="https://github.com/lobehub/lobe-chat/assets/28616219/c150aa5f-36bc-40f2-a779-9c4fdcf2cd4c" />

从上述视频中可以看到， Sonnet 3 在复杂指令调用下就失败了。报错原因是 prompts 原本预期为一个数组，但是生成的却是一个字符串。

<Image
  alt="Claude 3.5 Sonnet 复杂指令的 Tools Calling"
  src="https://github.com/lobehub/lobe-chat/assets/28616219/b7d84e26-920d-4a82-8798-1b1060ebb341"
/>

<details>
  <summary>Tools Calling 原始输出：</summary>

</details>

## Claude 3 Haiku

<Video src="https://github.com/lobehub/lobe-chat/assets/28616219/02b3e872-735a-4928-8245-a90786acea8b" />

从上述视频中可以看出：

1. Claude 3 Haiku 会调用两次 Tools Calling，说明它也不支持 Parallel Tools Calling；
2. Haiku 并没有回答好的，也是直接调用的工具；

<Image
  alt="Claude 3 Haiku 简单指令的 Tools Calling"
  src="https://github.com/lobehub/lobe-chat/assets/28616219/9081b586-cf43-440f-8ef8-1de5d8658694"
/>

### 复杂调用指令：文生图

测试指令：指令 ②

<Video src="https://github.com/lobehub/lobe-chat/assets/28616219/d1e3f804-0b89-4b90-9d78-69aee0db1c4d" />

从上述视频中可以看到， Haiku 3 在复杂指令调用下也是失败的。报错原因同样是 prompts 生成了字符串而不是数组。

<Image
  alt="Claude 3 Haiku 复杂指令的 Tools Calling"
  src="https://github.com/lobehub/lobe-chat/assets/28616219/cde80220-4615-43bb-934f-35fe0de88754"
/>

<details>
  <summary>Tools Calling 原始输出：</summary>

</details>
