• Messaggi
  • Agenti gestiti
  • Amministrazione
Search...
⌘K
Primi passi
Introduzione a ClaudeGuida rapida
Sviluppare con Claude
Panoramica delle funzionalitàUtilizzo dell'API MessagesMotivi di interruzione e fallbackRifiuti e fallbackCredito di fallback
Capacità del modello
Pensiero estesoPensiero adattivoSforzoBudget delle attività (beta)Modalità veloce (anteprima di ricerca)Output strutturatiCitazioniStreaming dei messaggiElaborazione batchRisultati di ricercaStreaming dei rifiutiSupporto multilingueEmbedding
Strumenti
PanoramicaCome funziona l'uso degli strumentiTutorial: Creare un agente che usa strumentiDefinire gli strumentiGestire le chiamate agli strumentiUso degli strumenti in paralleloTool Runner (SDK)Uso degli strumenti rigorosoUso degli strumenti con cache dei promptStrumenti serverRisoluzione dei problemiStrumento di ricerca webStrumento di recupero webStrumento di esecuzione del codiceStrumento consulenteStrumento di memoriaStrumento BashStrumento di uso del computerStrumento editor di testo
Infrastruttura degli strumenti
Riferimento degli strumentiGestire il contesto degli strumentiCombinazioni di strumentiRicerca di strumentiChiamata programmatica degli strumentiStreaming granulare degli strumenti
Gestione del contesto
Finestre di contestoCompattazioneModifica del contestoCache dei promptMessaggi di sistema a metà conversazioneCreare una modalità di orchestrazioneDiagnostica della cache (beta)Conteggio dei token
Lavorare con i file
API FilesSupporto PDFImmagini e visione
Skill
PanoramicaGuida rapidaBest practiceSkill per le aziendeSkill nell'API
MCP
Server MCP remotiConnettore MCP
Claude su piattaforme cloud
Amazon BedrockAmazon Bedrock (legacy)Claude Platform su AWSMicrosoft FoundryVertex AI
Log in
Strumento editor di testo
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

  • Amazon Bedrock
  • 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
Messaggi/Strumenti

Strumento editor di testo

Questa funzionalità è idonea per la Zero Data Retention (ZDR). Quando la tua organizzazione dispone di un accordo ZDR, i dati inviati tramite questa funzionalità non vengono conservati dopo che la risposta dell'API è stata restituita.

Claude può utilizzare uno strumento editor di testo con schema Anthropic per visualizzare e modificare file di testo, aiutandoti a eseguire il debug, correggere e migliorare il tuo codice o altri documenti di testo. Questo consente a Claude di interagire direttamente con i tuoi file, fornendo assistenza pratica anziché limitarsi a suggerire modifiche.

Per il supporto dei modelli, consulta il Riferimento degli strumenti.

Quando usare lo strumento editor di testo

Alcuni esempi di quando usare lo strumento editor di testo sono:

  • Debug del codice: Fai in modo che Claude identifichi e corregga bug nel tuo codice, dagli errori di sintassi ai problemi di logica.
  • Refactoring del codice: Lascia che Claude migliori la struttura, la leggibilità e le prestazioni del tuo codice attraverso modifiche mirate.
  • Generazione di documentazione: Chiedi a Claude di aggiungere docstring, commenti o file README alla tua codebase.
  • Creazione di test: Fai in modo che Claude crei unit test per il tuo codice basandosi sulla sua comprensione dell'implementazione.

Usare lo strumento editor di testo

Fornisci lo strumento editor di testo (denominato str_replace_based_edit_tool) a Claude utilizzando la Messages API.

Puoi opzionalmente specificare un parametro max_characters per controllare il troncamento durante la visualizzazione di file di grandi dimensioni.

max_characters è compatibile solo con text_editor_20250728 e versioni successive dello strumento editor di testo.

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)

Lo strumento editor di testo può essere utilizzato nel seguente modo:

  1. 1

    Fornisci a Claude lo strumento editor di testo e un prompt utente

    • Includi lo strumento editor di testo nella tua richiesta API
    • Fornisci un prompt utente che potrebbe richiedere l'esame o la modifica di file, come "Puoi correggere l'errore di sintassi nel mio codice?"
  2. 2

    Claude usa lo strumento per esaminare file o directory

    • Claude valuta cosa deve esaminare e usa il comando view per esaminare il contenuto dei file o elencare il contenuto delle directory
    • La risposta dell'API conterrà un blocco di contenuto tool_use con il comando view
  3. 3

    Esegui il comando view e restituisci i risultati

    • Estrai il percorso del file o della directory dalla richiesta di uso degli strumenti di Claude
    • Leggi il contenuto del file o elenca il contenuto della directory
    • Se è stato specificato un parametro max_characters nella configurazione dello strumento, tronca il contenuto del file a quella lunghezza
    • Restituisci i risultati a Claude continuando la conversazione con un nuovo messaggio user contenente un blocco di contenuto tool_result
  4. 4

    Claude usa lo strumento per modificare i file

    • Dopo aver esaminato il file o la directory, Claude può usare un comando come str_replace per apportare modifiche o insert per aggiungere testo a un numero di riga specifico.
    • Se Claude usa il comando str_replace, Claude costruisce una richiesta di uso degli strumenti formattata correttamente con il testo vecchio e il nuovo testo con cui sostituirlo
  5. 5

    Esegui la modifica e restituisci i risultati

    • Estrai il percorso del file, il testo vecchio e il testo nuovo dalla richiesta di uso degli strumenti di Claude
    • Esegui la sostituzione del testo nel file
    • Restituisci i risultati a Claude
  6. 6

    Claude fornisce la sua analisi e spiegazione

    • Dopo aver esaminato ed eventualmente modificato i file, Claude fornisce una spiegazione completa di ciò che ha trovato e delle modifiche apportate

Comandi dello strumento editor di testo

Lo strumento editor di testo supporta diversi comandi per visualizzare e modificare i file:

view

Il comando view consente a Claude di esaminare il contenuto di un file o elencare il contenuto di una directory. Può leggere l'intero file o un intervallo specifico di righe.

Parametri:

  • command: Deve essere "view"
  • path: Il percorso del file o della directory da visualizzare
  • view_range (opzionale): Un array di due interi che specificano i numeri di riga iniziale e finale da visualizzare. I numeri di riga sono indicizzati a partire da 1, e -1 per la riga finale significa leggere fino alla fine del file. Questo parametro si applica solo alla visualizzazione di file, non di directory.

str_replace

Il comando str_replace consente a Claude di sostituire una stringa specifica in un file con una nuova stringa. Viene utilizzato per apportare modifiche precise.

Parametri:

  • command: Deve essere "str_replace"
  • path: Il percorso del file da modificare
  • old_str: Il testo da sostituire (deve corrispondere esattamente, inclusi spazi e indentazione)
  • new_str: Il nuovo testo da inserire al posto del testo vecchio

create

Il comando create consente a Claude di creare un nuovo file con il contenuto specificato.

Parametri:

  • command: Deve essere "create"
  • path: Il percorso in cui deve essere creato il nuovo file
  • file_text: Il contenuto da scrivere nel nuovo file

insert

Il comando insert consente a Claude di inserire testo in una posizione specifica in un file.

Parametri:

  • command: Deve essere "insert"
  • path: Il percorso del file da modificare
  • insert_line: Il numero di riga dopo il quale inserire il testo (0 per l'inizio del file)
  • insert_text: Il testo da inserire

Esempio: Correggere un errore di sintassi con lo strumento editor di testo

Questo esempio dimostra come Claude usa lo strumento editor di testo per correggere un errore di sintassi in un file Python.

Per prima cosa, la tua applicazione fornisce a Claude lo strumento editor di testo e un prompt per correggere un errore di sintassi:

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 usa prima lo strumento editor di testo per visualizzare il file:

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"
      }
    }
  ]
}

La tua applicazione dovrebbe quindi leggere il file e restituirne il contenuto a Claude:

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)

Numeri di riga

Nell'esempio sopra, il risultato dello strumento view include il contenuto del file con i numeri di riga anteposti a ciascuna riga (ad esempio, "1: def is_prime(n):"). I numeri di riga non sono obbligatori, ma sono essenziali per utilizzare con successo il parametro view_range per esaminare sezioni specifiche dei file e il parametro insert_line per aggiungere contenuto in posizioni precise.

Claude identifica l'errore di sintassi e usa il comando str_replace per correggerlo:

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):"
      }
    }
  ]
}

La tua applicazione dovrebbe quindi apportare la modifica e restituire il risultato:

response = client.messages.create(
    model="claude-opus-4-8",
    max_tokens=1024,
    tools=[{"type": "text_editor_20250728", "name": "str_replace_based_edit_tool"}],
    messages=[
        # Messaggi precedenti...
        {
            "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)

Infine, Claude fornisce una spiegazione completa della correzione:

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."
    }
  ]
}

Implementare lo strumento editor di testo

Lo strumento editor di testo è implementato come uno strumento senza schema. Quando usi questo strumento, non è necessario fornire uno schema di input come con altri strumenti; lo schema è integrato nel modello di Claude e non può essere modificato.

Il tipo di strumento è type: "text_editor_20250728" per i modelli Claude 4.

  1. 1

    Inizializza la tua implementazione dell'editor

    Crea funzioni helper per gestire operazioni sui file come lettura, scrittura e modifica dei file. Considera l'implementazione di funzionalità di backup per recuperare da eventuali errori.

  2. 2

    Gestisci le chiamate allo strumento editor

    Crea una funzione che elabori le chiamate agli strumenti da Claude in base al tipo di comando:

    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":
            # Leggi e restituisci il contenuto del file
            pass
        elif command == "str_replace":
            # Sostituisci il testo nel file
            pass
        elif command == "create":
            # Crea un nuovo file
            pass
        elif command == "insert":
            # Inserisci il testo nella posizione
            pass
  3. 3

    Implementa misure di sicurezza

    Aggiungi validazione e controlli di sicurezza:

    • Valida i percorsi dei file per prevenire il directory traversal
    • Crea backup prima di apportare modifiche
    • Gestisci gli errori in modo appropriato
    • Implementa controlli dei permessi
  4. 4

    Elabora le risposte di Claude

    Estrai e gestisci le chiamate agli strumenti dalle risposte di Claude:

    # Elabora l'uso degli strumenti nella risposta di Claude
    for content in response.content:
        if content.type == "tool_use":
            # Esegui lo strumento in base al comando
            result = handle_editor_tool(content)
    
            # Restituisci il risultato a Claude
            tool_result = {
                "type": "tool_result",
                "tool_use_id": content.id,
                "content": result,
            }

Quando implementi lo strumento editor di testo, tieni presente:

  1. Sicurezza: Lo strumento ha accesso al tuo filesystem locale, quindi implementa misure di sicurezza adeguate.
  2. Backup: Crea sempre backup prima di consentire modifiche a file importanti.
  3. Validazione: Valida tutti gli input per prevenire modifiche indesiderate.
  4. Corrispondenza univoca: Assicurati che le sostituzioni corrispondano esattamente a una sola posizione per evitare modifiche indesiderate.

Gestire gli errori

Quando usi lo strumento editor di testo, possono verificarsi vari errori. Ecco le indicazioni su come gestirli:

Seguire le best practice di implementazione


Prezzi e utilizzo dei token

Lo strumento editor di testo utilizza la stessa struttura di prezzi degli altri strumenti usati con Claude. Segue la tariffazione standard basata sui token di input e output in base al modello Claude che stai utilizzando.

Oltre ai token di base, sono necessari i seguenti token di input aggiuntivi per lo strumento editor di testo:

StrumentoToken di input aggiuntivi
text_editor_20250429 (Claude 4.x)700 token

Per informazioni più dettagliate sui prezzi degli strumenti, consulta Prezzi dell'uso degli strumenti.

Integrare lo strumento editor di testo con altri strumenti

Lo strumento editor di testo può essere utilizzato insieme ad altri strumenti di Claude. Quando combini gli strumenti, assicurati di:

  • Abbinare la versione dello strumento al modello che stai utilizzando
  • Tenere conto dell'utilizzo aggiuntivo di token per tutti gli strumenti inclusi nella tua richiesta

Registro delle modifiche

DataVersioneModifiche
28 luglio 2025text_editor_20250728Rilascio di uno strumento editor di testo aggiornato che corregge alcuni problemi e aggiunge un parametro opzionale max_characters. Per il resto è identico a text_editor_20250429.
29 aprile 2025text_editor_20250429Rilascio dello strumento editor di testo per Claude 4. Questa versione rimuove il comando undo_edit ma mantiene tutte le altre funzionalità. Il nome dello strumento è stato aggiornato per riflettere la sua architettura basata su str_replace.
13 marzo 2025text_editor_20250124Introduzione della documentazione autonoma dello strumento editor di testo. Questa versione è ottimizzata per Claude Sonnet 3.7 ma ha funzionalità identiche alla versione precedente.
22 ottobre 2024text_editor_20241022Rilascio iniziale dello strumento editor di testo con Claude Sonnet 3.5 (ritirato). Fornisce funzionalità per visualizzare, creare e modificare file tramite i comandi view, create, str_replace, insert e undo_edit.

Passaggi successivi

Ecco alcune idee su come usare lo strumento editor di testo in modi più comodi e potenti:

  • Integra con il tuo flusso di lavoro di sviluppo: Integra lo strumento editor di testo nei tuoi strumenti di sviluppo o IDE
  • Crea un sistema di code review: Fai in modo che Claude riveda il tuo codice e apporti miglioramenti
  • Costruisci un assistente di debug: Crea un sistema in cui Claude possa aiutarti a diagnosticare e correggere problemi nel tuo codice
  • Implementa la conversione di formati di file: Lascia che Claude ti aiuti a convertire file da un formato all'altro
  • Automatizza la documentazione: Configura flussi di lavoro affinché Claude documenti automaticamente il tuo codice

Lo strumento editor di testo consente a Claude di lavorare direttamente con la tua codebase, supportando flussi di lavoro dal debug alla documentazione automatizzata.

Panoramica sull'uso degli strumenti

Scopri come implementare flussi di lavoro con strumenti da usare con Claude.

Strumento Bash

Esegui comandi shell con Claude.

Was this page helpful?

  • Quando usare lo strumento editor di testo
  • Usare lo strumento editor di testo
  • Comandi dello strumento editor di testo
  • Esempio: Correggere un errore di sintassi con lo strumento editor di testo
  • Implementare lo strumento editor di testo
  • Gestire gli errori
  • Seguire le best practice di implementazione
  • Prezzi e utilizzo dei token
  • Integrare lo strumento editor di testo con altri strumenti
  • Registro delle modifiche
  • Passaggi successivi