Tool-Nutzung mit Claude
Claude ist in der Lage, mit Tools und Funktionen zu interagieren, wodurch Sie Claudes Fähigkeiten erweitern können, um eine größere Vielfalt von Aufgaben zu erfüllen.
Hier ist ein Beispiel dafür, wie Sie Claude Tools über die Messages API zur Verfügung stellen:
curl https://api.anthropic.com/v1/messages \
-H "content-type: application/json" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-sonnet-4-5",
"max_tokens": 1024,
"tools": [
{
"name": "get_weather",
"description": "Get the current weather in a given location",
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
}
},
"required": ["location"]
}
}
],
"messages": [
{
"role": "user",
"content": "What is the weather like in San Francisco?"
}
]
}'import anthropic
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=1024,
tools=[
{
"name": "get_weather",
"description": "Get the current weather in a given location",
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA",
}
},
"required": ["location"],
},
}
],
messages=[{"role": "user", "content": "What's the weather like in San Francisco?"}],
)
print(response)import { Anthropic } from '@anthropic-ai/sdk';
const anthropic = new Anthropic({
apiKey: process.env.ANTHROPIC_API_KEY
});
async function main() {
const response = await anthropic.messages.create({
model: "claude-sonnet-4-5",
max_tokens: 1024,
tools: [{
name: "get_weather",
description: "Get the current weather in a given location",
input_schema: {
type: "object",
properties: {
location: {
type: "string",
description: "The city and state, e.g. San Francisco, CA"
}
},
required: ["location"]
}
}],
messages: [{
role: "user",
content: "Tell me the weather in San Francisco."
}]
});
console.log(response);
}
main().catch(console.error);import java.util.List;
import java.util.Map;
import com.anthropic.client.AnthropicClient;
import com.anthropic.client.okhttp.AnthropicOkHttpClient;
import com.anthropic.core.JsonValue;
import com.anthropic.models.messages.Message;
import com.anthropic.models.messages.MessageCreateParams;
import com.anthropic.models.messages.Model;
import com.anthropic.models.messages.Tool;
import com.anthropic.models.messages.Tool.InputSchema;
public class GetWeatherExample {
public static void main(String[] args) {
AnthropicClient client = AnthropicOkHttpClient.fromEnv();
InputSchema schema = InputSchema.builder()
.properties(JsonValue.from(Map.of(
"location",
Map.of(
"type", "string",
"description", "The city and state, e.g. San Francisco, CA"))))
.putAdditionalProperty("required", JsonValue.from(List.of("location")))
.build();
MessageCreateParams params = MessageCreateParams.builder()
.model(Model.CLAUDE_OPUS_4_0)
.maxTokens(1024)
.addTool(Tool.builder()
.name("get_weather")
.description("Get the current weather in a given location")
.inputSchema(schema)
.build())
.addUserMessage("What's the weather like in San Francisco?")
.build();
Message message = client.messages().create(params);
System.out.println(message);
}
}Wie Tool-Nutzung funktioniert
Claude unterstützt zwei Arten von Tools:
-
Client-Tools: Tools, die auf Ihren Systemen ausgeführt werden, dazu gehören:
- Benutzerdefinierte Tools, die Sie erstellen und implementieren
- Von Anthropic definierte Tools wie Computer-Nutzung und Text-Editor, die eine Client-Implementierung erfordern
-
Server-Tools: Tools, die auf Anthropics Servern ausgeführt werden, wie die Web-Suche und Web-Abruf Tools. Diese Tools müssen in der API-Anfrage spezifiziert werden, erfordern aber keine Implementierung Ihrerseits.
Von Anthropic definierte Tools verwenden versionierte Typen (z.B. web_search_20250305, text_editor_20250124), um die Kompatibilität zwischen Modellversionen zu gewährleisten.
Client-Tools
Integrieren Sie Client-Tools mit Claude in diesen Schritten:
Stellen Sie Claude Tools und eine Benutzeranfrage zur Verfügung
- Definieren Sie Client-Tools mit Namen, Beschreibungen und Eingabeschemata in Ihrer API-Anfrage.
- Fügen Sie eine Benutzeranfrage hinzu, die diese Tools benötigen könnte, z.B. "Wie ist das Wetter in San Francisco?"
Claude entscheidet, ein Tool zu verwenden
- Claude bewertet, ob Tools bei der Benutzeranfrage helfen können.
- Falls ja, erstellt Claude eine ordnungsgemäß formatierte Tool-Nutzungsanfrage.
- Für Client-Tools hat die API-Antwort einen
stop_reasonvontool_use, der Claudes Absicht signalisiert.
Führen Sie das Tool aus und geben Sie Ergebnisse zurück
- Extrahieren Sie den Tool-Namen und die Eingabe aus Claudes Anfrage
- Führen Sie den Tool-Code auf Ihrem System aus
- Geben Sie die Ergebnisse in einer neuen
user-Nachricht zurück, die einentool_result-Inhaltsblock enthält
Claude verwendet das Tool-Ergebnis, um eine Antwort zu formulieren
- Claude analysiert die Tool-Ergebnisse, um seine endgültige Antwort auf die ursprüngliche Benutzeranfrage zu erstellen.
Hinweis: Die Schritte 3 und 4 sind optional. Für einige Workflows könnte Claudes Tool-Nutzungsanfrage (Schritt 2) alles sein, was Sie brauchen, ohne Ergebnisse an Claude zurückzusenden.
Server-Tools
Server-Tools folgen einem anderen Workflow:
Stellen Sie Claude Tools und eine Benutzeranfrage zur Verfügung
Claude führt das Server-Tool aus
- Claude bewertet, ob ein Server-Tool bei der Benutzeranfrage helfen kann.
- Falls ja, führt Claude das Tool aus, und die Ergebnisse werden automatisch in Claudes Antwort eingebunden.
Claude verwendet das Server-Tool-Ergebnis, um eine Antwort zu formulieren
- Claude analysiert die Server-Tool-Ergebnisse, um seine endgültige Antwort auf die ursprüngliche Benutzeranfrage zu erstellen.
- Keine zusätzliche Benutzerinteraktion ist für die Server-Tool-Ausführung erforderlich.
Tool-Nutzungsbeispiele
Hier sind einige Code-Beispiele, die verschiedene Tool-Nutzungsmuster und -techniken demonstrieren. Der Kürze halber sind die Tools einfache Tools, und die Tool-Beschreibungen sind kürzer als ideal wäre, um die beste Leistung zu gewährleisten.
Preisgestaltung
Tool use requests are priced based on:
- The total number of input tokens sent to the model (including in the
toolsparameter) - The number of output tokens generated
- For server-side tools, additional usage-based pricing (e.g., web search charges per search performed)
Client-side tools are priced the same as any other Claude API request, while server-side tools may incur additional charges based on their specific usage.
The additional tokens from tool use come from:
- The
toolsparameter in API requests (tool names, descriptions, and schemas) tool_usecontent blocks in API requests and responsestool_resultcontent blocks in API requests
When you use tools, we also automatically include a special system prompt for the model which enables tool use. The number of tool use tokens required for each model are listed below (excluding the additional tokens listed above). Note that the table assumes at least 1 tool is provided. If no tools are provided, then a tool choice of none uses 0 additional system prompt tokens.
| Model | Tool choice | Tool use system prompt token count |
|---|---|---|
| Claude Opus 4.1 | auto, noneany, tool | 346 tokens 313 tokens |
| Claude Opus 4 | auto, noneany, tool | 346 tokens 313 tokens |
| Claude Sonnet 4.5 | auto, noneany, tool | 346 tokens 313 tokens |
| Claude Sonnet 4 | auto, noneany, tool | 346 tokens 313 tokens |
| Claude Sonnet 3.7 (deprecated) | auto, noneany, tool | 346 tokens 313 tokens |
| Claude Haiku 4.5 | auto, noneany, tool | 346 tokens 313 tokens |
| Claude Haiku 3.5 | auto, noneany, tool | 264 tokens 340 tokens |
| Claude Opus 3 (deprecated) | auto, noneany, tool | 530 tokens 281 tokens |
| Claude Sonnet 3 | auto, noneany, tool | 159 tokens 235 tokens |
| Claude Haiku 3 | auto, noneany, tool | 264 tokens 340 tokens |
These token counts are added to your normal input and output tokens to calculate the total cost of a request.
Beziehen Sie sich auf unsere Modellübersichtstabelle für aktuelle Preise pro Modell.
Wenn Sie eine Tool-Nutzungsanfrage senden, gibt die Antwort, genau wie bei jeder anderen API-Anfrage, sowohl Eingabe- als auch Ausgabe-Token-Zählungen als Teil der gemeldeten usage-Metriken aus.
Nächste Schritte
Erkunden Sie unser Repository mit sofort implementierbaren Tool-Nutzungs-Code-Beispielen in unseren Kochbüchern:
Rechner-Tool
Lernen Sie, wie Sie ein einfaches Rechner-Tool mit Claude für präzise numerische Berechnungen integrieren.
Kundenservice-Agent
Erstellen Sie einen reaktionsschnellen Kundenservice-Bot, der Client-Tools nutzt, um den Support zu verbessern.
JSON-Extraktor
Sehen Sie, wie Claude und Tool-Nutzung strukturierte Daten aus unstrukturiertem Text extrahieren können.