Claude può utilizzare uno strumento editor di testo definito da Anthropic per visualizzare e modificare file di testo, aiutandoti a debuggare, correggere e migliorare il tuo codice o altri documenti di testo. Questo permette a Claude di interagire direttamente con i tuoi file, fornendo assistenza pratica invece di suggerire solo modifiche.

Prima di utilizzare lo strumento editor di testo

Usa un modello compatibile

Lo strumento editor di testo di Anthropic è disponibile solo per Claude 3.5 Sonnet e Claude 3.7 Sonnet:

  • Claude 3.7 Sonnet: text_editor_20250124
  • Claude 3.5 Sonnet: text_editor_20241022

Entrambe le versioni forniscono capacità identiche - la versione che usi dovrebbe corrispondere al modello con cui stai lavorando.

Valuta l’adeguatezza del tuo caso d’uso

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

  • Debug del codice: Fai identificare e correggere a Claude i bug nel tuo codice, dagli errori di sintassi ai problemi logici.
  • Refactoring del codice: Lascia che Claude migliori la struttura, la leggibilità e le prestazioni del tuo codice attraverso modifiche mirate.
  • Generazione della documentazione: Chiedi a Claude di aggiungere docstring, commenti o file README al tuo codebase.
  • Creazione di test: Fai creare a Claude unit test per il tuo codice basandosi sulla sua comprensione dell’implementazione.

Usa lo strumento editor di testo

Fornisci lo strumento editor di testo (chiamato str_replace_editor) a Claude utilizzando l’API Messages:

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

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 di esaminare o modificare file, come “Puoi correggere l’errore di sintassi nel mio codice?”
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 API conterrà un blocco di contenuto tool_use con il comando view
3

Esegui il comando view e restituisci i risultati

  • Estrai il percorso del file o della directory dalla richiesta di utilizzo dello strumento di Claude
  • Leggi il contenuto del file o elenca il contenuto della directory e restituiscili a Claude
  • Restituisci i risultati a Claude continuando la conversazione con un nuovo messaggio user contenente un blocco di contenuto tool_result
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, costruisce una richiesta di utilizzo dello strumento correttamente formattata con il vecchio testo e il nuovo testo con cui sostituirlo
5

Esegui la modifica e restituisci i risultati

  • Estrai il percorso del file, il vecchio testo e il nuovo testo dalla richiesta di utilizzo dello strumento di Claude
  • Esegui la sostituzione del testo nel file
  • Restituisci i risultati a Claude
6

Claude fornisce la sua analisi e spiegazione

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

Comandi dello strumento editor di testo

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

view

Il comando view permette 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 partono da 1, e -1 per la riga finale significa leggere fino alla fine del file. Questo parametro si applica solo quando si visualizzano file, non directory.

str_replace

Il comando str_replace permette a Claude di sostituire una stringa specifica in un file con una nuova stringa. Questo 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 bianchi e indentazione)
  • new_str: Il nuovo testo da inserire al posto del vecchio testo

create

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

Parametri:

  • command: Deve essere “create”
  • path: Il percorso dove deve essere creato il nuovo file
  • file_text: Il contenuto da scrivere nel nuovo file

insert

Il comando insert permette 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)
  • new_str: Il testo da inserire

undo_edit

Il comando undo_edit permette a Claude di annullare l’ultima modifica apportata a un file.

Parametri:

  • command: Deve essere “undo_edit”
  • path: Il percorso del file la cui ultima modifica deve essere annullata

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.

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

Claude userà lo strumento editor di testo prima per visualizzare il file:

{
  "id": "msg_01XAbCDeFgHiJkLmNoPQrStU",
  "model": "claude-3-7-sonnet-20250219",
  "stop_reason": "tool_use",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "Ti aiuterò a correggere l'errore di sintassi nel tuo file primes.py. Prima, fammi dare un'occhiata al file per identificare il problema."
    },
    {
      "type": "tool_use",
      "id": "toolu_01AbCdEfGhIjKlMnOpQrStU",
      "name": "str_replace_editor",
      "input": {
        "command": "view",
        "path": "primes.py"
      }
    }
  ]
}

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

Numeri di riga

Nell’esempio sopra, il risultato dello strumento view include il contenuto del file con i numeri di riga anteposti a ogni riga (es. “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 di file e il parametro insert_line per aggiungere contenuto in posizioni precise.

Claude identificherà l’errore di sintassi e userà il comando str_replace per correggerlo:

{
  "id": "msg_01VwXyZAbCdEfGhIjKlMnO",
  "model": "claude-3-7-sonnet-20250219",
  "stop_reason": "tool_use",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "Ho trovato l'errore di sintassi nel tuo file primes.py. Nella funzione `get_primes`, manca i due punti (:) alla fine della riga del ciclo for. Permettimi di correggerlo."
    },
    {
      "type": "tool_use",
      "id": "toolu_01PqRsTuVwXyZAbCdEfGh",
      "name": "str_replace_editor",
      "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:

Infine, Claude fornirà una spiegazione completa della correzione:

{
  "id": "msg_01IjKlMnOpQrStUvWxYzAb",
  "model": "claude-3-7-sonnet-20250219",
  "stop_reason": "end_turn",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "Ho corretto l'errore di sintassi nel tuo file primes.py. Il problema era nella funzione `get_primes` alla riga 19. Mancavano i due punti (:) alla fine della riga del ciclo for.\n\nEcco cosa ho modificato:\n\nDa:\n```python\nfor num in range(2, limit + 1)\n```\n\nA:\n```python\nfor num in range(2, limit + 1):\n```\n\nIn Python, i due punti sono richiesti alla fine delle istruzioni che iniziano un nuovo blocco di codice, come cicli for, istruzioni if, definizioni di funzioni, ecc. Senza i due punti, Python genera un errore di sintassi perché non sa dove inizia il blocco di codice.\n\nIl tuo codice ora dovrebbe funzionare correttamente. La funzione genererà correttamente una lista di numeri primi fino al limite specificato."
    }
  ]
}

Implementa lo strumento editor di testo

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

1

Inizializza la tua implementazione dell'editor

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

2

Gestisci le chiamate allo strumento editor

Crea una funzione che elabora le chiamate allo strumento 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 nuovo file
        pass
    elif command == 'insert':
        # Inserisci testo nella posizione
        pass
    elif command == 'undo_edit':
        # Ripristina dal backup
        pass
3

Implementa misure di sicurezza

Aggiungi controlli di validazione e sicurezza:

  • Valida i percorsi dei file per prevenire l’attraversamento delle directory
  • Crea backup prima di apportare modifiche
  • Gestisci gli errori con grazia
  • Implementa controlli dei permessi
4

Elabora le risposte di Claude

Estrai e gestisci le chiamate allo strumento dalle risposte di Claude:

# Elabora l'uso dello strumento 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 adeguate misure di sicurezza.
  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 posizione per evitare modifiche indesiderate.

Gestisci gli errori

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

Segui le migliori pratiche di implementazione


Prezzi e utilizzo dei token

Lo strumento editor di testo utilizza la stessa struttura di prezzi degli altri strumenti utilizzati con Claude. Segue i prezzi standard dei token di input e output basati sul modello Claude che stai utilizzando.

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

StrumentoToken di input aggiuntivi
text_editor_20241022 (Claude 3.5 Sonnet)700 token
text_editor_20250124 (Claude 3.7 Sonnet)700 token

Per informazioni più dettagliate sui prezzi degli strumenti, vedi Prezzi utilizzo strumenti.

Integra lo strumento editor di testo con l’uso del computer

Lo strumento editor di testo può essere utilizzato insieme allo strumento di uso del computer e altri strumenti definiti da Anthropic. Quando combini questi strumenti, dovrai:

  1. Includere l’header beta appropriato (se usato con l’uso del computer)
  2. Far corrispondere la versione dello strumento con il modello che stai utilizzando
  3. Tenere conto dell’utilizzo aggiuntivo di token per tutti gli strumenti inclusi nella tua richiesta

Per maggiori informazioni sull’utilizzo dello strumento editor di testo in un contesto di uso del computer, vedi Uso del computer.

Registro delle modifiche

DataVersioneModifiche
13 marzo 2025text_editor_20250124Introduzione della documentazione autonoma dello Strumento Editor di Testo. Questa versione è ottimizzata per Claude 3.7 Sonnet ma ha capacità identiche alla versione precedente.
22 ottobre 2024text_editor_20241022Rilascio iniziale dello Strumento Editor di Testo con Claude 3.5 Sonnet. Fornisce capacità per visualizzare, creare e modificare file attraverso i comandi view, create, str_replace, insert e undo_edit.

Prossimi passi

Ecco alcune idee su come utilizzare lo strumento editor di testo in modi più convenienti 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 revisione del codice: Fai revisionare e migliorare il tuo codice da Claude
  • Costruisci un assistente per il debug: Crea un sistema in cui Claude può aiutarti a diagnosticare e correggere problemi nel tuo codice
  • Implementa la conversione di formato dei file: Lascia che Claude ti aiuti a convertire file da un formato all’altro
  • Automatizza la documentazione: Configura flussi di lavoro per far documentare automaticamente il tuo codice da Claude

Mentre costruisci applicazioni con lo strumento editor di testo, siamo entusiasti di vedere come sfrutterai le capacità di Claude per migliorare il tuo flusso di lavoro e la tua produttività.