Strumento di esecuzione codice
Claude può analizzare dati, creare visualizzazioni, eseguire calcoli complessi, eseguire comandi di sistema, creare e modificare file, ed elaborare file caricati direttamente all’interno della conversazione API. Lo strumento di esecuzione codice consente a Claude di eseguire comandi Bash e manipolare file, inclusa la scrittura di codice, in un ambiente sicuro e sandboxed.
Lo strumento di esecuzione codice è attualmente in beta pubblica.
Per utilizzare questa funzionalità, aggiungi l’header beta "code-execution-2025-08-25"
alle tue richieste API.
Abbiamo recentemente aggiornato lo strumento di esecuzione codice per supportare comandi Bash e manipolazione diretta dei file. Per istruzioni sull’aggiornamento alla versione più recente dello strumento, vedi Aggiorna alla versione più recente dello strumento.
Modelli supportati
Lo strumento di esecuzione codice è disponibile su:
- Claude Opus 4.1 (
claude-opus-4-1-20250805
) - Claude Opus 4 (
claude-opus-4-20250514
) - Claude Sonnet 4 (
claude-sonnet-4-20250514
) - Claude Sonnet 3.7 (
claude-3-7-sonnet-20250219
) - Claude Haiku 3.5 (
claude-3-5-haiku-latest
)
Avvio rapido
Ecco un esempio semplice che chiede a Claude di eseguire un calcolo:
Come funziona l’esecuzione del codice
Quando aggiungi lo strumento di esecuzione codice alla tua richiesta API:
- Claude valuta se l’esecuzione del codice aiuterebbe a rispondere alla tua domanda
- Lo strumento fornisce automaticamente a Claude le seguenti capacità:
- Comandi Bash: Eseguire comandi shell per operazioni di sistema e gestione pacchetti
- Operazioni sui file: Creare, visualizzare e modificare file direttamente, inclusa la scrittura di codice
- Claude può utilizzare qualsiasi combinazione di queste capacità in una singola richiesta
- Tutte le operazioni vengono eseguite in un ambiente sandbox sicuro
- Claude fornisce risultati con eventuali grafici generati, calcoli o analisi
Come utilizzare lo strumento
Eseguire comandi Bash
Chiedi a Claude di controllare le informazioni di sistema e installare pacchetti:
Creare e modificare file direttamente
Claude può creare, visualizzare e modificare file direttamente nel sandbox utilizzando le capacità di manipolazione dei file:
Carica e analizza i tuoi file
Per analizzare i tuoi file di dati (CSV, Excel, immagini, ecc.), caricali tramite l’API Files e fai riferimento ad essi nella tua richiesta:
L’utilizzo dell’API Files con l’Esecuzione Codice richiede due header beta: "anthropic-beta": "code-execution-2025-08-25,files-api-2025-04-14"
L’ambiente Python può elaborare vari tipi di file caricati tramite l’API Files, inclusi:
- CSV
- Excel (.xlsx, .xls)
- JSON
- XML
- Immagini (JPEG, PNG, GIF, WebP)
- File di testo (.txt, .md, .py, ecc)
Carica e analizza file
- Carica il tuo file utilizzando l’API Files
- Fai riferimento al file nel tuo messaggio utilizzando un blocco di contenuto
container_upload
- Includi lo strumento di esecuzione codice nella tua richiesta API
Recupera file generati
Quando Claude crea file durante l’esecuzione del codice, puoi recuperare questi file utilizzando l’API Files:
Combinare operazioni
Un flusso di lavoro complesso che utilizza tutte le capacità:
Definizione dello strumento
Lo strumento di esecuzione codice non richiede parametri aggiuntivi:
Quando questo strumento viene fornito, Claude ottiene automaticamente accesso a due sotto-strumenti:
bash_code_execution
: Eseguire comandi shelltext_editor_code_execution
: Visualizzare, creare e modificare file, inclusa la scrittura di codice
Formato della risposta
Lo strumento di esecuzione codice può restituire due tipi di risultati a seconda dell’operazione:
Risposta comando Bash
Risposte operazioni sui file
Visualizza file:
Crea file:
Modifica file (str_replace):
Risultati
Tutti i risultati di esecuzione includono:
stdout
: Output dall’esecuzione riuscitastderr
: Messaggi di errore se l’esecuzione falliscereturn_code
: 0 per successo, diverso da zero per fallimento
Campi aggiuntivi per operazioni sui file:
- Visualizza:
file_type
,content
,numLines
,startLine
,totalLines
- Crea:
is_file_update
(se il file esisteva già) - Modifica:
oldStart
,oldLines
,newStart
,newLines
,lines
(formato diff)
Errori
Ogni tipo di strumento può restituire errori specifici:
Errori comuni (tutti gli strumenti):
Codici di errore per tipo di strumento:
Strumento | Codice Errore | Descrizione |
---|---|---|
Tutti gli strumenti | unavailable | Lo strumento è temporaneamente non disponibile |
Tutti gli strumenti | execution_time_exceeded | L’esecuzione ha superato il limite massimo di tempo |
Tutti gli strumenti | container_expired | Il container è scaduto e non è più disponibile |
Tutti gli strumenti | invalid_tool_input | Parametri non validi forniti allo strumento |
Tutti gli strumenti | too_many_requests | Limite di velocità superato per l’utilizzo dello strumento |
text_editor | file_not_found | Il file non esiste (per operazioni view/edit) |
text_editor | string_not_found | L’old_str non trovato nel file (per str_replace) |
Motivo di arresto pause_turn
La risposta può includere un motivo di arresto pause_turn
, che indica che l’API ha messo in pausa un turno di lunga durata. Puoi
fornire la risposta così com’è in una richiesta successiva per permettere a Claude di continuare il suo turno, o modificare il contenuto se
desideri interrompere la conversazione.
Container
Lo strumento di esecuzione codice viene eseguito in un ambiente containerizzato sicuro progettato specificamente per l’esecuzione del codice, con un focus maggiore su Python.
Ambiente di runtime
- Versione Python: 3.11.12
- Sistema operativo: Container basato su Linux
- Architettura: x86_64 (AMD64)
Limiti delle risorse
- Memoria: 1GiB RAM
- Spazio disco: 5GiB di storage workspace
- CPU: 1 CPU
Networking e sicurezza
- Accesso Internet: Completamente disabilitato per sicurezza
- Connessioni esterne: Nessuna richiesta di rete in uscita consentita
- Isolamento sandbox: Isolamento completo dal sistema host e altri container
- Accesso ai file: Limitato solo alla directory workspace
- Scoping workspace: Come Files, i container sono limitati al workspace della chiave API
- Scadenza: I container scadono 1 ora dopo la creazione
Librerie pre-installate
L’ambiente Python sandboxed include queste librerie comunemente utilizzate:
- Data Science: pandas, numpy, scipy, scikit-learn, statsmodels
- Visualizzazione: matplotlib, seaborn
- Elaborazione File: pyarrow, openpyxl, xlrd, pillow, python-pptx, python-docx, pypdf, pdfplumber, pypdfium2, pdf2image, pdfkit, tabula-py, reportlab[pycairo], Img2pdf
- Matematica e Calcolo: sympy, mpmath
- Utilità: tqdm, python-dateutil, pytz, joblib, unzip, unrar, 7zip, bc, rg (ripgrep), fd, sqlite
Riutilizzo del container
Puoi riutilizzare un container esistente attraverso più richieste API fornendo l’ID del container da una risposta precedente. Questo ti consente di mantenere i file creati tra le richieste.
Esempio
Streaming
Con lo streaming abilitato, riceverai eventi di esecuzione codice mentre si verificano:
Richieste batch
Puoi includere lo strumento di esecuzione codice nell’API Messages Batches. Le chiamate dello strumento di esecuzione codice attraverso l’API Messages Batches hanno lo stesso prezzo di quelle nelle richieste API Messages regolari.
Utilizzo e prezzi
The code execution tool usage is tracked separately from token usage. Execution time is a minimum of 5 minutes. If files are included in the request, execution time is billed even if the tool is not used due to files being preloaded onto the container.
Pricing: $0.05 per session-hour.
Aggiorna alla versione più recente dello strumento
Aggiornando a code-execution-2025-08-25
, ottieni accesso alla manipolazione dei file e alle capacità Bash, incluso il codice in più linguaggi. Non c’è differenza di prezzo.
Cosa è cambiato
Componente | Legacy | Attuale |
---|---|---|
Header beta | code-execution-2025-05-22 | code-execution-2025-08-25 |
Tipo strumento | code_execution_20250522 | code_execution_20250825 |
Capacità | Solo Python | Comandi Bash, operazioni sui file |
Tipi di risposta | code_execution_result | bash_code_execution_result , text_editor_code_execution_result |
Compatibilità all’indietro
- Tutta l’esecuzione di codice Python esistente continua a funzionare esattamente come prima
- Nessuna modifica richiesta ai flussi di lavoro esistenti solo Python
Passaggi di aggiornamento
Per aggiornare, devi apportare le seguenti modifiche nelle tue richieste API:
-
Aggiorna l’header beta:
-
Aggiorna il tipo di strumento:
-
Rivedi la gestione delle risposte (se analizzi le risposte programmaticamente):
- I blocchi precedenti per le risposte di esecuzione Python non verranno più inviati
- Invece, verranno inviati nuovi tipi di risposta per Bash e operazioni sui file (vedi sezione Formato Risposta)