• Messages
  • Managed Agents
  • Admin

Search...
⌘K
Erste Schritte
Einführung in ClaudeSchnellstart
Entwickeln mit Claude
FunktionsübersichtVerwendung der Messages APIStoppgründe und FallbackAblehnungen und FallbackFallback-Guthaben
Modellfähigkeiten
Erweitertes DenkenAdaptives DenkenEffortAufgabenbudgets (Beta)Schnellmodus (Forschungsvorschau)Strukturierte AusgabenZitateStreaming von NachrichtenBatch-VerarbeitungSuchergebnisseStreaming von AblehnungenMehrsprachige UnterstützungEmbeddings
Tools
ÜbersichtFunktionsweise der Tool-NutzungTutorial: Einen Tool-nutzenden Agenten erstellenTools definierenTool-Aufrufe verarbeitenParallele Tool-NutzungTool Runner (SDK)Strikte Tool-NutzungTool-Nutzung mit Prompt-CachingServer-ToolsFehlerbehebungWebsuche-ToolWeb-Fetch-ToolCodeausführungs-ToolAdvisor-ToolMemory-ToolBash-ToolComputer-Use-ToolTexteditor-Tool
Tool-Infrastruktur
Tool-ReferenzTool-Kontext verwaltenTool-KombinationenTool-SucheProgrammatische Tool-AufrufeFeingranulares Tool-Streaming
Kontextverwaltung
KontextfensterKompaktierungKontextbearbeitungPrompt-CachingSystemnachrichten während der KonversationEinen Orchestrierungsmodus erstellenCache-Diagnose (Beta)Token-Zählung
Arbeiten mit Dateien
Files APIPDF-UnterstützungBilder und Vision
Skills
ÜbersichtSchnellstartBest PracticesSkills für UnternehmenSkills in der API
MCP
Remote-MCP-ServerMCP-Connector
Claude auf Cloud-Plattformen
Amazon BedrockAmazon Bedrock (Legacy)Claude Platform auf AWSMicrosoft FoundryVertex AI

Log in
Texteditor-Tool
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Solutions

  • AI agents
  • Code modernization
  • Coding
  • Customer support
  • Education
  • Financial services
  • Government
  • Life sciences

Partners

  • Claude on AWS
  • Google Cloud's Vertex AI

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Company

  • Anthropic
  • Careers
  • Economic Futures
  • Research
  • News
  • Responsible Scaling Policy
  • Security and compliance
  • Transparency

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Help and security

  • Availability
  • Status
  • Support
  • Discord

Terms and policies

  • Privacy policy
  • Responsible disclosure policy
  • Terms of service: Commercial
  • Terms of service: Consumer
  • Usage policy
Messages/Tools

Texteditor-Tool



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.

Wann das Texteditor-Tool verwendet werden sollte

Einige Beispiele für den Einsatz des Texteditor-Tools sind:

  • Code-Debugging: Lass Claude Fehler in deinem Code identifizieren und beheben, von Syntaxfehlern bis hin zu Logikproblemen.
  • Code-Refactoring: Lass Claude die Struktur, Lesbarkeit und Performance deines Codes durch gezielte Bearbeitungen verbessern.
  • Dokumentationserstellung: Bitte Claude, Docstrings, Kommentare oder README-Dateien zu deiner Codebasis hinzuzufügen.
  • Testerstellung: Lass Claude Unit-Tests für deinen Code erstellen, basierend auf seinem Verständnis der Implementierung.

Das Texteditor-Tool verwenden

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:

  1. 1

    Stelle Claude das Texteditor-Tool und einen Benutzer-Prompt bereit

    • Füge das Texteditor-Tool in deine API-Anfrage ein
    • Gib einen Benutzer-Prompt an, der möglicherweise das Untersuchen oder Bearbeiten von Dateien erfordert, z. B. „Kannst du den Syntaxfehler in meinem Code beheben?"
  2. 2

    Claude verwendet das Tool, um Dateien oder Verzeichnisse zu untersuchen

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

    Führe den view-Befehl aus und gib die Ergebnisse zurück

    • Extrahiere den Datei- oder Verzeichnispfad aus Claudes Tool-Nutzungs-Anfrage
    • Lies den Inhalt der Datei oder liste den Verzeichnisinhalt auf
    • Wenn ein max_characters-Parameter in der Tool-Konfiguration angegeben wurde, kürze den Dateiinhalt auf diese Länge
    • Gib die Ergebnisse an Claude zurück, indem du die Konversation mit einer neuen user-Nachricht fortsetzt, die einen tool_result-Content-Block enthält
  4. 4

    Claude verwendet das Tool, um Dateien zu bearbeiten

    • Nach dem Untersuchen 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 korrekt formatierte Tool-Nutzungs-Anfrage mit dem alten Text und dem neuen Text, der ihn ersetzen soll
  5. 5

    Führe die Bearbeitung aus und gib die Ergebnisse zurück

    • Extrahiere den Dateipfad, den alten Text und den neuen Text aus Claudes Tool-Nutzungs-Anfrage
    • Führe die Textersetzung in der Datei durch
    • Gib die Ergebnisse an Claude zurück
  6. 6

    Claude liefert seine Analyse und Erklärung

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

Befehle des Texteditor-Tools

Das Texteditor-Tool unterstützt mehrere Befehle zum Anzeigen und Bearbeiten 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, 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.

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 Datei, die bearbeitet werden soll
  • 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, an dem 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 Datei, die bearbeitet werden soll
  • insert_line: Die Zeilennummer, nach der der Text eingefügt werden soll (0 für den Anfang der Datei)
  • insert_text: Der einzufügende Text

Beispiel: Beheben eines Syntaxfehlers mit dem Texteditor-Tool

Dieses 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:

Output
{
  "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:

Output
{
  "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:

Output
{
  "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 implementieren

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.

  1. 1

    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.

  2. 2

    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
            pass
  3. 3

    Implementiere Sicherheitsmaßnahmen

    Füge Validierung und Sicherheitsprüfungen hinzu:

    • Validiere Dateipfade, um Directory Traversal zu verhindern
    • Erstelle Backups, bevor du Änderungen vornimmst
    • Behandle Fehler ordnungsgemäß
    • Implementiere Berechtigungsprüfungen
  4. 4

    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:

  1. Sicherheit: Das Tool hat Zugriff auf dein lokales Dateisystem, implementiere daher geeignete Sicherheitsmaßnahmen.
  2. Backup: Erstelle immer Backups, bevor du Bearbeitungen an wichtigen Dateien zulässt.
  3. Validierung: Validiere alle Eingaben, um unbeabsichtigte Änderungen zu verhindern.
  4. Eindeutige Übereinstimmung: Stelle sicher, dass Ersetzungen genau an einer Stelle übereinstimmen, um unbeabsichtigte Bearbeitungen zu vermeiden.

Fehler behandeln

Bei der Verwendung des Texteditor-Tools können verschiedene Fehler auftreten. Hier findest du Hinweise zum Umgang damit:

Best Practices für die Implementierung befolgen


Preise und Token-Nutzung

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:

ToolZusä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 mit anderen Tools integrieren

Das Texteditor-Tool kann zusammen mit anderen Claude-Tools verwendet werden. Beim Kombinieren von Tools solltest du sicherstellen, dass du:

  • Die Tool-Version mit dem verwendeten Modell abgleichst
  • Die zusätzliche Token-Nutzung für alle in deiner Anfrage enthaltenen Tools berücksichtigst

Änderungsprotokoll

DatumVersionÄnderungen
28. Juli 2025text_editor_20250728Verö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 2025text_editor_20250429Verö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 2025text_editor_20250124Einfü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 2024text_editor_20241022Erstverö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.

Nächste Schritte

Hier sind einige Ideen, wie du das Texteditor-Tool auf bequemere und leistungsfähigere Weise nutzen kannst:

  • In deinen Entwicklungs-Workflow integrieren: Baue das Texteditor-Tool in deine Entwicklungstools oder IDE ein
  • Ein Code-Review-System erstellen: Lass Claude deinen Code überprüfen und Verbesserungen vornehmen
  • Einen Debugging-Assistenten bauen: Erstelle ein System, in dem Claude dir helfen kann, Probleme in deinem Code zu diagnostizieren und zu beheben
  • Dateiformatkonvertierung implementieren: Lass Claude dir helfen, Dateien von einem Format in ein anderes zu konvertieren
  • Dokumentation automatisieren: Richte Workflows ein, damit Claude deinen Code automatisch dokumentiert

Das Texteditor-Tool ermöglicht es Claude, direkt mit deiner Codebasis zu arbeiten und unterstützt Workflows vom Debugging bis zur automatisierten Dokumentation.


Überblick über Tool-Nutzung

Erfahre, wie du Tool-Workflows für die Verwendung mit Claude implementierst.

Bash-Tool

Führe Shell-Befehle mit Claude aus.

Was this page helpful?

  • Wann das Texteditor-Tool verwendet werden sollte
  • Das Texteditor-Tool verwenden
  • Befehle des Texteditor-Tools
  • Beispiel: Beheben eines Syntaxfehlers mit dem Texteditor-Tool
  • Das Texteditor-Tool implementieren
  • Fehler behandeln
  • Best Practices für die Implementierung befolgen
  • Preise und Token-Nutzung
  • Das Texteditor-Tool mit anderen Tools integrieren
  • Änderungsprotokoll
  • Nächste Schritte