Claude kann ein von Anthropic definiertes Text-Editor-Tool verwenden, um Textdateien anzuzeigen und zu bearbeiten, und Ihnen dabei helfen, Ihren Code oder andere Textdokumente zu debuggen, zu reparieren und zu verbessern. Dies ermöglicht es Claude, direkt mit Ihren Dateien zu interagieren und praktische Hilfe zu leisten, anstatt nur Änderungen vorzuschlagen.

Vor der Verwendung des Text-Editor-Tools

Verwenden Sie ein kompatibles Modell

Das Text-Editor-Tool von Anthropic ist für mehrere Claude-Modelle verfügbar:
  • Claude Sonnet 4, Opus 4 und Opus 4.1: text_editor_20250728
  • Claude Sonnet 3.7: text_editor_20250124
  • Claude Sonnet 3.5 (veraltet): text_editor_20241022
Claude Sonnet 3.5 (veraltet) benötigt den computer-use-2024-10-22 Beta-Header bei der Verwendung des Text-Editor-Tools.Das Text-Editor-Tool ist allgemein verfügbar in Claude 4-Modellen und Claude Sonnet 3.7.
Das text_editor_20250728-Tool für Claude 4-Modelle enthält nicht den undo_edit-Befehl. Wenn Sie diese Funktionalität benötigen, müssen Sie Claude Sonnet 3.7 oder Sonnet 3.5 mit ihren jeweiligen Tool-Versionen verwenden.

Bewerten Sie die Eignung Ihres Anwendungsfalls

Einige Beispiele für die Verwendung des Text-Editor-Tools sind:
  • Code-Debugging: Lassen Sie Claude Bugs in Ihrem Code identifizieren und beheben, von Syntaxfehlern bis hin zu Logikproblemen.
  • Code-Refactoring: Lassen Sie Claude Ihre Code-Struktur, Lesbarkeit und Leistung durch gezielte Bearbeitungen verbessern.
  • Dokumentationserstellung: Bitten Sie Claude, Docstrings, Kommentare oder README-Dateien zu Ihrer Codebasis hinzuzufügen.
  • Test-Erstellung: Lassen Sie Claude Unit-Tests für Ihren Code basierend auf seinem Verständnis der Implementierung erstellen.

Verwenden Sie das Text-Editor-Tool

Stellen Sie Claude das Text-Editor-Tool (namens str_replace_based_edit_tool) über die Messages API zur Verfügung.Sie können 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 Text-Editor-Tools kompatibel.
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-opus-4-1-20250805",
    "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?"
      }
    ]
  }'
Das Text-Editor-Tool kann folgendermaßen verwendet werden:
1

Stellen Sie Claude das Text-Editor-Tool und eine Benutzeraufforderung zur Verfügung

  • Fügen Sie das Text-Editor-Tool in Ihre API-Anfrage ein
  • Geben Sie eine Benutzeraufforderung an, die möglicherweise das Untersuchen oder Ändern von Dateien erfordert, wie z.B. “Können Sie den Syntaxfehler in meinem Code beheben?”
2

Claude verwendet das Tool, um Dateien oder Verzeichnisse zu untersuchen

  • Claude bewertet, was es betrachten muss, und verwendet den view-Befehl, um Dateiinhalte zu untersuchen oder Verzeichnisinhalte aufzulisten
  • Die API-Antwort enthält einen tool_use-Inhaltsblock mit dem view-Befehl
3

Führen Sie den view-Befehl aus und geben Sie die Ergebnisse zurück

  • Extrahieren Sie den Datei- oder Verzeichnispfad aus Claudes Tool-Use-Anfrage
  • Lesen Sie den Inhalt der Datei oder listen Sie den Inhalt des Verzeichnisses auf
  • Wenn ein max_characters-Parameter in der Tool-Konfiguration angegeben wurde, kürzen Sie den Dateiinhalt auf diese Länge
  • Geben Sie die Ergebnisse an Claude zurück, indem Sie die Unterhaltung mit einer neuen user-Nachricht fortsetzen, die einen tool_result-Inhaltsblock enthält
4

Claude verwendet das Tool, um Dateien zu ändern

  • Nach der Untersuchung der Datei oder des Verzeichnisses kann Claude einen Befehl wie str_replace verwenden, um Änderungen vorzunehmen, oder insert, um Text an einer bestimmten Zeilennummer hinzuzufügen.
  • Wenn Claude den str_replace-Befehl verwendet, erstellt Claude eine ordnungsgemäß formatierte Tool-Use-Anfrage mit dem alten Text und dem neuen Text, durch den er ersetzt werden soll
5

Führen Sie die Bearbeitung aus und geben Sie die Ergebnisse zurück

  • Extrahieren Sie den Dateipfad, den alten Text und den neuen Text aus Claudes Tool-Use-Anfrage
  • Führen Sie die Textersetzung in der Datei durch
  • Geben Sie die Ergebnisse an Claude zurück
6

Claude liefert seine Analyse und Erklärung

  • Nach der Untersuchung und möglicherweise Bearbeitung der Dateien liefert Claude eine vollständige Erklärung dessen, was es gefunden hat und welche Änderungen es vorgenommen hat

Text-Editor-Tool-Befehle

Das Text-Editor-Tool unterstützt mehrere Befehle zum Anzeigen und Ändern von Dateien:

view

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” sein
  • path: Der Pfad zur Datei oder zum Verzeichnis, das angezeigt werden soll
  • view_range (optional): Ein Array aus zwei Ganzzahlen, das die Start- und Endzeilennummern zum Anzeigen angibt. Zeilennummern sind 1-indiziert, und -1 für die Endzeile bedeutet bis zum Ende der Datei lesen. Dieser Parameter gilt nur beim Anzeigen von Dateien, nicht von Verzeichnissen.

str_replace

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” sein
  • path: Der Pfad zur zu ändernden Datei
  • old_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 soll

create

Der create-Befehl ermöglicht es Claude, eine neue Datei mit angegebenem Inhalt zu erstellen. Parameter:
  • command: Muss “create” sein
  • path: Der Pfad, wo die neue Datei erstellt werden soll
  • file_text: Der Inhalt, der in die neue Datei geschrieben werden soll

insert

Der insert-Befehl ermöglicht es Claude, Text an einer bestimmten Stelle in einer Datei einzufügen. Parameter:
  • command: Muss “insert” sein
  • path: Der Pfad zur zu ändernden Datei
  • insert_line: Die Zeilennummer, nach der der Text eingefügt werden soll (0 für Dateianfang)
  • new_str: Der einzufügende Text

undo_edit

Der undo_edit-Befehl ermöglicht es Claude, die letzte an einer Datei vorgenommene Bearbeitung rückgängig zu machen.
Dieser Befehl ist nur in Claude Sonnet 3.7 und Claude Sonnet 3.5 (veraltet) verfügbar. Er wird in Claude 4-Modellen mit dem text_editor_20250728 nicht unterstützt.
Parameter:
  • command: Muss “undo_edit” sein
  • path: Der Pfad zur Datei, deren letzte Bearbeitung rückgängig gemacht werden soll

Beispiel: Beheben eines Syntaxfehlers mit dem Text-Editor-Tool

Dieses Beispiel zeigt, wie Claude 4-Modelle das Text-Editor-Tool verwenden, um einen Syntaxfehler in einer Python-Datei zu beheben.Zuerst stellt Ihre Anwendung Claude das Text-Editor-Tool und eine Aufforderung zur Behebung eines Syntaxfehlers zur Verfügung:
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-opus-4-1-20250805",
    "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?"
      }
    ]
  }'
Claude wird das Text-Editor-Tool zuerst verwenden, um die Datei anzuzeigen:
{
  "id": "msg_01XAbCDeFgHiJkLmNoPQrStU",
  "model": "claude-opus-4-1-20250805",
  "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"
      }
    }
  ]
}
Ihre Anwendung sollte dann die Datei lesen und ihren Inhalt an Claude zurückgeben:
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-opus-4-1-20250805",
    "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()"
                }
            ]
        }
    ]
  }'
ZeilennummernIm obigen Beispiel enthält das view-Tool-Ergebnis Dateiinhalte mit Zeilennummern, die jeder Zeile vorangestellt sind (z.B. “1: def is_prime(n):”). Zeilennummern sind nicht erforderlich, aber sie sind wesentlich für die erfolgreiche Verwendung des view_range-Parameters zur Untersuchung bestimmter Dateibereiche und des insert_line-Parameters zum Hinzufügen von Inhalten an präzisen Stellen.
Claude wird den Syntaxfehler identifizieren und den str_replace-Befehl verwenden, um ihn zu beheben:
{
  "id": "msg_01VwXyZAbCdEfGhIjKlMnO",
  "model": "claude-opus-4-1-20250805",
  "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):"
      }
    }
  ]
}
Ihre Anwendung sollte dann die Bearbeitung vornehmen und das Ergebnis zurückgeben:
response = client.messages.create(
    model="claude-opus-4-1-20250805",
    max_tokens=1024,
    tools=[
        {
            "type": "text_editor_20250728",
            "name": "str_replace_based_edit_tool"
        }
    ],
    messages=[
        # Previous messages...
        {
            "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."
                }
            ]
        }
    ]
)
Schließlich wird Claude eine vollständige Erklärung der Behebung liefern:
{
  "id": "msg_01IjKlMnOpQrStUvWxYzAb",
  "model": "claude-opus-4-1-20250805",
  "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."
    }
  ]
}

Implementieren Sie das Text-Editor-Tool

Das Text-Editor-Tool wird als schema-loses Tool implementiert. Bei der Verwendung dieses Tools müssen Sie kein Eingabeschema wie bei anderen Tools bereitstellen; das Schema ist in Claudes Modell eingebaut und kann nicht geändert werden. Der Tool-Typ hängt von der Modellversion ab:
  • Claude 4: type: "text_editor_20250728"
  • Claude Sonnet 3.7: type: "text_editor_20250124"
  • Claude Sonnet 3.5 (veraltet): type: "text_editor_20241022"
1

Initialisieren Sie Ihre Editor-Implementierung

Erstellen Sie Hilfsfunktionen zur Behandlung von Dateioperationen wie Lesen, Schreiben und Ändern von Dateien. Erwägen Sie die Implementierung einer Backup-Funktionalität zur Wiederherstellung nach Fehlern.
2

Behandeln Sie Editor-Tool-Aufrufe

Erstellen Sie eine Funktion, die Tool-Aufrufe von Claude basierend auf dem Befehlstyp verarbeitet:
def handle_editor_tool(tool_call, model_version):
    input_params = tool_call.input
    command = input_params.get('command', '')
    file_path = input_params.get('path', '')
    
    if command == 'view':
        # Read and return file contents
        pass
    elif command == 'str_replace':
        # Replace text in file
        pass
    elif command == 'create':
        # Create new file
        pass
    elif command == 'insert':
        # Insert text at location
        pass
    elif command == 'undo_edit':
        # Check if it's a Claude 4 model
        if 'str_replace_based_edit_tool' in model_version:
            return {"error": "undo_edit command is not supported in Claude 4"}
        # Restore from backup for Claude 3.7/3.5
        pass
3

Implementieren Sie Sicherheitsmaßnahmen

Fügen Sie Validierung und Sicherheitsprüfungen hinzu:
  • Validieren Sie Dateipfade, um Directory Traversal zu verhindern
  • Erstellen Sie Backups vor Änderungen
  • Behandeln Sie Fehler elegant
  • Implementieren Sie Berechtigungsprüfungen
4

Verarbeiten Sie Claudes Antworten

Extrahieren und behandeln Sie Tool-Aufrufe aus Claudes Antworten:
# Process tool use in Claude's response
for content in response.content:
    if content.type == "tool_use":
        # Execute the tool based on command
        result = handle_editor_tool(content)
        
        # Return result to Claude
        tool_result = {
            "type": "tool_result",
            "tool_use_id": content.id,
            "content": result
        }
Bei der Implementierung des Text-Editor-Tools beachten Sie:
  1. Sicherheit: Das Tool hat Zugriff auf Ihr lokales Dateisystem, implementieren Sie daher angemessene Sicherheitsmaßnahmen.
  2. Backup: Erstellen Sie immer Backups, bevor Sie Bearbeitungen wichtiger Dateien zulassen.
  3. Validierung: Validieren Sie alle Eingaben, um unbeabsichtigte Änderungen zu verhindern.
  4. Eindeutige Übereinstimmung: Stellen Sie sicher, dass Ersetzungen genau an einer Stelle übereinstimmen, um unbeabsichtigte Bearbeitungen zu vermeiden.

Behandeln Sie Fehler

Bei der Verwendung des Text-Editor-Tools können verschiedene Fehler auftreten. Hier ist eine Anleitung, wie Sie sie behandeln:

Befolgen Sie bewährte Implementierungspraktiken


Preise und Token-Verbrauch

The text editor tool uses the same pricing structure as other tools used with Claude. It follows the standard input and output token pricing based on the Claude model you’re using. In addition to the base tokens, the following additional input tokens are needed for the text editor tool:
ToolAdditional input tokens
text_editor_20250429 (Claude 4)700 tokens
text_editor_20250124 (Claude Sonnet 3.7)700 tokens
text_editor_20241022 (Claude Sonnet 3.5 (deprecated))700 tokens
Für detailliertere Informationen über Tool-Preise siehe Tool-Nutzungspreise.

Integrieren Sie das Text-Editor-Tool mit anderen Tools

Das Text-Editor-Tool kann zusammen mit anderen Claude-Tools verwendet werden. Beim Kombinieren von Tools stellen Sie sicher, dass Sie:
  • Die Tool-Version mit dem von Ihnen verwendeten Modell abgleichen
  • Den zusätzlichen Token-Verbrauch für alle in Ihrer Anfrage enthaltenen Tools berücksichtigen

Änderungsprotokoll

DatumVersionÄnderungen
28. Juli 2025text_editor_20250728Veröffentlichung eines aktualisierten Text-Editor-Tools, das einige Probleme behebt und einen optionalen max_characters-Parameter hinzufügt. Es ist ansonsten identisch mit text_editor_20250429.
29. April 2025text_editor_20250429Veröffentlichung des Text-Editor-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 zu reflektieren.
13. März 2025text_editor_20250124Einführung der eigenständigen Text-Editor-Tool-Dokumentation. Diese Version ist für Claude Sonnet 3.7 optimiert, hat aber identische Funktionen wie die vorherige Version.
22. Oktober 2024text_editor_20241022Erste Veröffentlichung des Text-Editor-Tools mit Claude Sonnet 3.5 (veraltet). Bietet Funktionen zum Anzeigen, Erstellen und Bearbeiten von Dateien durch die Befehle view, create, str_replace, insert und undo_edit.

Nächste Schritte

Hier sind einige Ideen, wie Sie das Text-Editor-Tool auf bequemere und leistungsfähigere Weise verwenden können:
  • In Ihren Entwicklungsworkflow integrieren: Bauen Sie das Text-Editor-Tool in Ihre Entwicklungstools oder IDE ein
  • Ein Code-Review-System erstellen: Lassen Sie Claude Ihren Code überprüfen und Verbesserungen vornehmen
  • Einen Debugging-Assistenten bauen: Erstellen Sie ein System, bei dem Claude Ihnen helfen kann, Probleme in Ihrem Code zu diagnostizieren und zu beheben
  • Dateiformatkonvertierung implementieren: Lassen Sie Claude Ihnen helfen, Dateien von einem Format in ein anderes zu konvertieren
  • Dokumentation automatisieren: Richten Sie Workflows ein, damit Claude automatisch Ihren Code dokumentiert
Während Sie Anwendungen mit dem Text-Editor-Tool erstellen, sind wir gespannt darauf zu sehen, wie Sie Claudes Funktionen nutzen, um Ihren Entwicklungsworkflow und Ihre Produktivität zu verbessern.