Diese Funktion ist für Zero Data Retention (ZDR) qualifiziert. Wenn deine Organisation eine ZDR-Vereinbarung hat, werden Daten, die über diese Funktion gesendet werden, nicht gespeichert, nachdem die API-Antwort zurückgegeben wurde.
Claude kann ein Texteditor-Tool mit Anthropic-Schema verwenden, um Textdateien anzuzeigen und zu bearbeiten. Das hilft dir beim Debuggen, Beheben und Verbessern deines Codes oder anderer Textdokumente. So kann Claude direkt mit deinen Dateien interagieren und praktische Unterstützung leisten, anstatt nur Änderungen vorzuschlagen.
Informationen zur Modellunterstützung findest du in der Tool-Referenz.
Einige Beispiele für den Einsatz des Texteditor-Tools sind:
Stelle Claude das Texteditor-Tool (mit dem Namen str_replace_based_edit_tool) über die Messages API zur Verfügung.
Du kannst optional einen max_characters-Parameter angeben, um die Kürzung beim Anzeigen großer Dateien zu steuern.
max_characters ist nur mit text_editor_20250728 und späteren Versionen des Texteditor-Tools kompatibel.
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
tools=[
{
"type": "text_editor_20250728",
"name": "str_replace_based_edit_tool",
"max_characters": 10000,
}
],
messages=[
{
"role": "user",
"content": "There's a syntax error in my primes.py file. Can you help me fix it?",
}
],
)
print(response)Das Texteditor-Tool kann auf folgende Weise verwendet werden:
Stelle Claude das Texteditor-Tool und einen Benutzer-Prompt bereit
Claude verwendet das Tool, um Dateien oder Verzeichnisse zu untersuchen
view-Befehl, um Dateiinhalte zu untersuchen oder Verzeichnisinhalte aufzulistentool_use-Content-Block mit dem view-BefehlFühre den view-Befehl aus und gib die Ergebnisse zurück
max_characters-Parameter in der Tool-Konfiguration angegeben wurde, kürze den Dateiinhalt auf diese Längeuser-Nachricht fortsetzt, die einen tool_result-Content-Block enthältClaude verwendet das Tool, um Dateien zu bearbeiten
str_replace verwenden, um Änderungen vorzunehmen, oder insert, um Text an einer bestimmten Zeilennummer hinzuzufügen.str_replace-Befehl verwendet, erstellt Claude eine korrekt formatierte Tool-Nutzungs-Anfrage mit dem alten Text und dem neuen Text, der ihn ersetzen sollFühre die Bearbeitung aus und gib die Ergebnisse zurück
Claude liefert seine Analyse und Erklärung
Das Texteditor-Tool unterstützt mehrere Befehle zum Anzeigen und Bearbeiten von Dateien:
Der view-Befehl ermöglicht es Claude, den Inhalt einer Datei zu untersuchen oder den Inhalt eines Verzeichnisses aufzulisten. Er kann die gesamte Datei oder einen bestimmten Zeilenbereich lesen.
Parameter:
command: Muss „view" seinpath: Der Pfad zur Datei oder zum Verzeichnis, das angezeigt werden sollview_range (optional): Ein Array aus zwei Ganzzahlen, die die Start- und Endzeilennummern angeben, die angezeigt werden sollen. Zeilennummern sind 1-indiziert, und -1 für die Endzeile bedeutet, bis zum Ende der Datei zu lesen. Dieser Parameter gilt nur beim Anzeigen von Dateien, nicht von Verzeichnissen.Der str_replace-Befehl ermöglicht es Claude, eine bestimmte Zeichenkette in einer Datei durch eine neue Zeichenkette zu ersetzen. Dies wird für präzise Bearbeitungen verwendet.
Parameter:
command: Muss „str_replace" seinpath: Der Pfad zur Datei, die bearbeitet werden sollold_str: Der zu ersetzende Text (muss exakt übereinstimmen, einschließlich Leerzeichen und Einrückung)new_str: Der neue Text, der anstelle des alten Textes eingefügt werden sollDer create-Befehl ermöglicht es Claude, eine neue Datei mit angegebenem Inhalt zu erstellen.
Parameter:
command: Muss „create" seinpath: Der Pfad, an dem die neue Datei erstellt werden sollfile_text: Der Inhalt, der in die neue Datei geschrieben werden sollDer insert-Befehl ermöglicht es Claude, Text an einer bestimmten Stelle in einer Datei einzufügen.
Parameter:
command: Muss „insert" seinpath: Der Pfad zur Datei, die bearbeitet werden sollinsert_line: Die Zeilennummer, nach der der Text eingefügt werden soll (0 für den Anfang der Datei)insert_text: Der einzufügende TextDieses Beispiel zeigt, wie Claude das Texteditor-Tool verwendet, um einen Syntaxfehler in einer Python-Datei zu beheben.
Zuerst stellt deine Anwendung Claude das Texteditor-Tool und einen Prompt zum Beheben eines Syntaxfehlers bereit:
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
tools=[{"type": "text_editor_20250728", "name": "str_replace_based_edit_tool"}],
messages=[
{
"role": "user",
"content": "There's a syntax error in my primes.py file. Can you help me fix it?",
}
],
)
print(response)Claude verwendet zuerst das Texteditor-Tool, um die Datei anzuzeigen:
{
"id": "msg_01XAbCDeFgHiJkLmNoPQrStU",
"model": "claude-opus-4-8",
"stop_reason": "tool_use",
"role": "assistant",
"content": [
{
"type": "text",
"text": "I'll help you fix the syntax error in your primes.py file. First, let me take a look at the file to identify the issue."
},
{
"type": "tool_use",
"id": "toolu_01AbCdEfGhIjKlMnOpQrStU",
"name": "str_replace_based_edit_tool",
"input": {
"command": "view",
"path": "primes.py"
}
}
]
}Deine Anwendung sollte dann die Datei lesen und ihren Inhalt an Claude zurückgeben:
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
tools=[{"type": "text_editor_20250728", "name": "str_replace_based_edit_tool"}],
messages=[
{
"role": "user",
"content": "There's a syntax error in my primes.py file. Can you help me fix it?",
},
{
"role": "assistant",
"content": [
{
"type": "text",
"text": "I'll help you fix the syntax error in your primes.py file. First, let me take a look at the file to identify the issue.",
},
{
"type": "tool_use",
"id": "toolu_01AbCdEfGhIjKlMnOpQrStU",
"name": "str_replace_based_edit_tool",
"input": {"command": "view", "path": "primes.py"},
},
],
},
{
"role": "user",
"content": [
{
"type": "tool_result",
"tool_use_id": "toolu_01AbCdEfGhIjKlMnOpQrStU",
"content": '1: def is_prime(n):\n2: """Check if a number is prime."""\n3: if n <= 1:\n4: return False\n5: if n <= 3:\n6: return True\n7: if n % 2 == 0 or n % 3 == 0:\n8: return False\n9: i = 5\n10: while i * i <= n:\n11: if n % i == 0 or n % (i + 2) == 0:\n12: return False\n13: i += 6\n14: return True\n15: \n16: def get_primes(limit):\n17: """Generate a list of prime numbers up to the given limit."""\n18: primes = []\n19: for num in range(2, limit + 1)\n20: if is_prime(num):\n21: primes.append(num)\n22: return primes\n23: \n24: def main():\n25: """Main function to demonstrate prime number generation."""\n26: limit = 100\n27: prime_list = get_primes(limit)\n28: print(f"Prime numbers up to {limit}:")\n29: print(prime_list)\n30: print(f"Found {len(prime_list)} prime numbers.")\n31: \n32: if __name__ == "__main__":\n33: main()',
}
],
},
],
)
print(response)Zeilennummern
Im obigen Beispiel enthält das view-Tool-Ergebnis Dateiinhalte mit vorangestellten Zeilennummern für jede Zeile (z. B. „1: def is_prime(n):"). Zeilennummern sind nicht erforderlich, aber sie sind unerlässlich für die erfolgreiche Verwendung des view_range-Parameters zum Untersuchen bestimmter Abschnitte von Dateien und des insert_line-Parameters zum Hinzufügen von Inhalten an präzisen Stellen.
Claude identifiziert den Syntaxfehler und verwendet den str_replace-Befehl, um ihn zu beheben:
{
"id": "msg_01VwXyZAbCdEfGhIjKlMnO",
"model": "claude-opus-4-8",
"stop_reason": "tool_use",
"role": "assistant",
"content": [
{
"type": "text",
"text": "I found the syntax error in your primes.py file. In the `get_primes` function, there is a missing colon (:) at the end of the for loop line. Let me fix that for you."
},
{
"type": "tool_use",
"id": "toolu_01PqRsTuVwXyZAbCdEfGh",
"name": "str_replace_based_edit_tool",
"input": {
"command": "str_replace",
"path": "primes.py",
"old_str": " for num in range(2, limit + 1)",
"new_str": " for num in range(2, limit + 1):"
}
}
]
}Deine Anwendung sollte dann die Bearbeitung vornehmen und das Ergebnis zurückgeben:
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
tools=[{"type": "text_editor_20250728", "name": "str_replace_based_edit_tool"}],
messages=[
# Vorherige Nachrichten...
{
"role": "assistant",
"content": [
{
"type": "text",
"text": "I found the syntax error in your primes.py file. In the `get_primes` function, there is a missing colon (:) at the end of the for loop line. Let me fix that for you.",
},
{
"type": "tool_use",
"id": "toolu_01PqRsTuVwXyZAbCdEfGh",
"name": "str_replace_based_edit_tool",
"input": {
"command": "str_replace",
"path": "primes.py",
"old_str": " for num in range(2, limit + 1)",
"new_str": " for num in range(2, limit + 1):",
},
},
],
},
{
"role": "user",
"content": [
{
"type": "tool_result",
"tool_use_id": "toolu_01PqRsTuVwXyZAbCdEfGh",
"content": "Successfully replaced text at exactly one location.",
}
],
},
],
)
print(response)Schließlich liefert Claude eine vollständige Erklärung der Korrektur:
{
"id": "msg_01IjKlMnOpQrStUvWxYzAb",
"model": "claude-opus-4-8",
"stop_reason": "end_turn",
"role": "assistant",
"content": [
{
"type": "text",
"text": "I've fixed the syntax error in your primes.py file. The issue was in the `get_primes` function at line 19. There was a missing colon (:) at the end of the for loop line.\n\nHere's what I changed:\n\nFrom:\n```python\nfor num in range(2, limit + 1)\n```\n\nTo:\n```python\nfor num in range(2, limit + 1):\n```\n\nIn Python, a colon is required at the end of statements that start a new code block, such as for loops, if statements, function definitions, etc. Without the colon, Python raises a syntax error because it doesn't know where the code block begins.\n\nYour code should now run correctly. The function will properly generate a list of prime numbers up to the specified limit."
}
]
}Das Texteditor-Tool ist als schemaloses Tool implementiert. Bei der Verwendung dieses Tools musst du kein Input-Schema angeben wie bei anderen Tools; das Schema ist in Claudes Modell integriert und kann nicht geändert werden.
Der Tool-Typ ist type: "text_editor_20250728" für Claude 4-Modelle.
Initialisiere deine Editor-Implementierung
Erstelle Hilfsfunktionen zur Handhabung von Dateioperationen wie Lesen, Schreiben und Bearbeiten von Dateien. Erwäge die Implementierung einer Backup-Funktionalität, um Fehler rückgängig machen zu können.
Verarbeite Editor-Tool-Aufrufe
Erstelle eine Funktion, die Tool-Aufrufe von Claude basierend auf dem Befehlstyp verarbeitet:
def handle_editor_tool(tool_call):
input_params = tool_call.input
command = input_params.get("command", "")
file_path = input_params.get("path", "")
if command == "view":
# Lies Dateiinhalte und gib sie zurück
pass
elif command == "str_replace":
# Ersetze Text in Datei
pass
elif command == "create":
# Erstelle neue Datei
pass
elif command == "insert":
# Füge Text an Position ein
passImplementiere Sicherheitsmaßnahmen
Füge Validierung und Sicherheitsprüfungen hinzu:
Verarbeite Claudes Antworten
Extrahiere und verarbeite Tool-Aufrufe aus Claudes Antworten:
# Verarbeite Tool-Nutzung in Claudes Antwort
for content in response.content:
if content.type == "tool_use":
# Führe das Tool basierend auf dem Befehl aus
result = handle_editor_tool(content)
# Gib das Ergebnis an Claude zurück
tool_result = {
"type": "tool_result",
"tool_use_id": content.id,
"content": result,
}Beachte bei der Implementierung des Texteditor-Tools Folgendes:
Bei der Verwendung des Texteditor-Tools können verschiedene Fehler auftreten. Hier findest du Hinweise zum Umgang damit:
Das Texteditor-Tool verwendet dieselbe Preisstruktur wie andere Tools, die mit Claude verwendet werden. Es folgt der standardmäßigen Preisgestaltung für Input- und Output-Token basierend auf dem Claude-Modell, das du verwendest.
Zusätzlich zu den Basis-Token werden die folgenden zusätzlichen Input-Token für das Texteditor-Tool benötigt:
| Tool | Zusätzliche Input-Token |
|---|---|
text_editor_20250429 (Claude 4.x) | 700 Token |
Detailliertere Informationen zu Tool-Preisen findest du unter Preise für Tool-Nutzung.
Das Texteditor-Tool kann zusammen mit anderen Claude-Tools verwendet werden. Beim Kombinieren von Tools solltest du sicherstellen, dass du:
| Datum | Version | Änderungen |
|---|---|---|
| 28. Juli 2025 | text_editor_20250728 | Veröffentlichung eines aktualisierten Texteditor-Tools, das einige Probleme behebt und einen optionalen max_characters-Parameter hinzufügt. Ansonsten ist es identisch mit text_editor_20250429. |
| 29. April 2025 | text_editor_20250429 | Veröffentlichung des Texteditor-Tools für Claude 4. Diese Version entfernt den undo_edit-Befehl, behält aber alle anderen Funktionen bei. Der Tool-Name wurde aktualisiert, um seine str_replace-basierte Architektur widerzuspiegeln. |
| 13. März 2025 | text_editor_20250124 | Einführung der eigenständigen Texteditor-Tool-Dokumentation. Diese Version ist für Claude Sonnet 3.7 optimiert, hat aber identische Funktionen wie die vorherige Version. |
| 22. Oktober 2024 | text_editor_20241022 | Erstveröffentlichung des Texteditor-Tools mit Claude Sonnet 3.5 (eingestellt). Bietet Funktionen zum Anzeigen, Erstellen und Bearbeiten von Dateien über die Befehle view, create, str_replace, insert und undo_edit. |
Hier sind einige Ideen, wie du das Texteditor-Tool auf bequemere und leistungsfähigere Weise nutzen kannst:
Das Texteditor-Tool ermöglicht es Claude, direkt mit deiner Codebasis zu arbeiten und unterstützt Workflows vom Debugging bis zur automatisierten Dokumentation.
Erfahre, wie du Tool-Workflows für die Verwendung mit Claude implementierst.
Führe Shell-Befehle mit Claude aus.
Was this page helpful?