You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

153 lines
5.8 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
title: Anthropic Claude 系列 Tools Calling 评测
description: >-
使用 LobeChat 测试 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/lobehub/lobe-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/lobehub/lobe-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>