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.
Alcuni esempi di quando usare lo strumento editor di testo sono:
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:
Fornisci a Claude lo strumento editor di testo e un prompt utente
Claude usa lo strumento per esaminare file o directory
view per esaminare il contenuto dei file o elencare il contenuto delle directorytool_use con il comando viewEsegui il comando view e restituisci i risultati
max_characters nella configurazione dello strumento, tronca il contenuto del file a quella lunghezzauser contenente un blocco di contenuto tool_resultClaude usa lo strumento per modificare i file
str_replace per apportare modifiche o insert per aggiungere testo a un numero di riga specifico.str_replace, Claude costruisce una richiesta di uso degli strumenti formattata correttamente con il testo vecchio e il nuovo testo con cui sostituirloEsegui la modifica e restituisci i risultati
Claude fornisce la sua analisi e spiegazione
Lo strumento editor di testo supporta diversi comandi per visualizzare e modificare i file:
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 visualizzareview_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.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 modificareold_str: Il testo da sostituire (deve corrispondere esattamente, inclusi spazi e indentazione)new_str: Il nuovo testo da inserire al posto del testo vecchioIl 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 filefile_text: Il contenuto da scrivere nel nuovo fileIl 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 modificareinsert_line: Il numero di riga dopo il quale inserire il testo (0 per l'inizio del file)insert_text: Il testo da inserireQuesto 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:
{
"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:
{
"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:
{
"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."
}
]
}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.
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.
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
passImplementa misure di sicurezza
Aggiungi validazione e controlli di sicurezza:
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:
Quando usi lo strumento editor di testo, possono verificarsi vari errori. Ecco le indicazioni su come gestirli:
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:
| Strumento | Token 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.
Lo strumento editor di testo può essere utilizzato insieme ad altri strumenti di Claude. Quando combini gli strumenti, assicurati di:
| Data | Versione | Modifiche |
|---|---|---|
| 28 luglio 2025 | text_editor_20250728 | Rilascio 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 2025 | text_editor_20250429 | Rilascio 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 2025 | text_editor_20250124 | Introduzione 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 2024 | text_editor_20241022 | Rilascio 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. |
Ecco alcune idee su come usare lo strumento editor di testo in modi più comodi e potenti:
Lo strumento editor di testo consente a Claude di lavorare direttamente con la tua codebase, supportando flussi di lavoro dal debug alla documentazione automatizzata.
Scopri come implementare flussi di lavoro con strumenti da usare con Claude.
Esegui comandi shell con Claude.
Was this page helpful?