Claude può interagire con gli ambienti informatici tramite lo strumento di utilizzo del computer, che fornisce capacità di acquisizione di screenshot e controllo mouse/tastiera per l'interazione autonoma con il desktop. Su WebArena, un benchmark per la navigazione web autonoma su siti reali, Claude ottiene risultati all'avanguardia tra i sistemi a singolo agente, dimostrando una forte capacità di completare attività multi-step nel browser dall'inizio alla fine.
L'utilizzo del computer è in beta e richiede un header beta:
"computer-use-2025-11-24" per Claude Opus 4.6, Claude Sonnet 4.6, Claude Opus 4.5"computer-use-2025-01-24" per Sonnet 4.5, Haiku 4.5, Opus 4.1, Sonnet 4, Opus 4 e Sonnet 3.7 (deprecato)Condividi il tuo feedback su questa funzionalità tramite il modulo di feedback.
This feature is eligible for Zero Data Retention (ZDR). When your organization has a ZDR arrangement, data sent through this feature is not stored after the API response is returned.
L'utilizzo del computer è una funzionalità beta che consente a Claude di interagire con gli ambienti desktop. Questo strumento fornisce:
Sebbene l'utilizzo del computer possa essere integrato con altri strumenti come bash e l'editor di testo per flussi di lavoro di automazione più completi, l'utilizzo del computer si riferisce specificamente alla capacità dello strumento di utilizzo del computer di vedere e controllare gli ambienti desktop.
L'utilizzo del computer è disponibile per i seguenti modelli Claude:
| Modello | Versione dello strumento | Flag Beta |
|---|---|---|
| Claude Opus 4.6, Claude Sonnet 4.6, Claude Opus 4.5 | computer_20251124 | computer-use-2025-11-24 |
| Tutti gli altri modelli supportati | computer_20250124 | computer-use-2025-01-24 |
Claude Opus 4.6, Claude Sonnet 4.6 e Claude Opus 4.5 introducono la versione dello strumento computer_20251124 con nuove funzionalità, tra cui l'azione zoom per l'ispezione dettagliata delle regioni dello schermo. Tutti gli altri modelli (Sonnet 4.5, Haiku 4.5, Sonnet 4, Opus 4, Opus 4.1 e Sonnet 3.7) utilizzano la versione dello strumento computer_20250124.
Le versioni precedenti degli strumenti non sono garantite come retrocompatibili con i modelli più recenti. Utilizza sempre la versione dello strumento corrispondente alla versione del tuo modello.
L'utilizzo del computer è una funzionalità beta con rischi unici distinti dalle funzionalità API standard. Questi rischi sono amplificati quando si interagisce con Internet.
Per ridurre al minimo i rischi, considera di adottare precauzioni come:
In alcune circostanze, Claude seguirà i comandi trovati nel contenuto anche se sono in conflitto con le istruzioni dell'utente. Ad esempio, le istruzioni di Claude nelle pagine web o contenute nelle immagini potrebbero sovrascrivere le istruzioni o causare errori a Claude. Adotta precauzioni per isolare Claude da dati e azioni sensibili per evitare rischi legati all'iniezione di prompt.
Il modello è stato addestrato per resistere a queste iniezioni di prompt ed è stato aggiunto un ulteriore livello di difesa. Se utilizzi gli strumenti di utilizzo del computer, i classificatori verranno eseguiti automaticamente sui tuoi prompt per segnalare potenziali istanze di iniezioni di prompt. Quando questi classificatori identificano potenziali iniezioni di prompt negli screenshot, indirizzeranno automaticamente il modello a richiedere la conferma dell'utente prima di procedere con l'azione successiva. Questa protezione aggiuntiva non sarà ideale per ogni caso d'uso (ad esempio, casi d'uso senza un essere umano nel ciclo), quindi se desideri rinunciare e disattivarla, contatta il supporto.
Queste precauzioni rimangono importanti anche con il livello di difesa del classificatore in atto.
Informa gli utenti finali dei rischi rilevanti e ottieni il loro consenso prima di abilitare l'utilizzo del computer nei tuoi prodotti.
Inizia rapidamente con l'implementazione di riferimento per l'utilizzo del computer che include un'interfaccia web, un container Docker, implementazioni di strumenti di esempio e un ciclo agente.
Nota: L'implementazione è stata aggiornata per includere nuovi strumenti sia per i modelli Claude 4 che per Claude Sonnet 3.7. Assicurati di scaricare l'ultima versione del repository per accedere a queste nuove funzionalità.
Usa questo modulo per fornire feedback sulla qualità delle risposte del modello, sull'API stessa o sulla qualità della documentazione.
Ecco come iniziare con l'utilizzo del computer:
Un header beta è richiesto solo per lo strumento di utilizzo del computer.
L'esempio sopra mostra tutti e tre gli strumenti utilizzati insieme, il che richiede l'header beta perché include lo strumento di utilizzo del computer.
La ripetizione dei passaggi 3 e 4 senza input dell'utente è denominata "ciclo agente" (ovvero, Claude risponde con una richiesta di utilizzo dello strumento e la tua applicazione risponde a Claude con i risultati della valutazione di tale richiesta).
L'utilizzo del computer richiede un ambiente informatico in sandbox in cui Claude possa interagire in modo sicuro con le applicazioni e il web. Questo ambiente include:
Display virtuale: Un server di display X11 virtuale (usando Xvfb) che renderizza l'interfaccia desktop che Claude vedrà tramite screenshot e controllerà con azioni mouse/tastiera.
Ambiente desktop: Un'interfaccia utente leggera con gestore di finestre (Mutter) e pannello (Tint2) in esecuzione su Linux, che fornisce un'interfaccia grafica coerente con cui Claude può interagire.
Applicazioni: Applicazioni Linux preinstallate come Firefox, LibreOffice, editor di testo e gestori di file che Claude può utilizzare per completare le attività.
Implementazioni degli strumenti: Codice di integrazione che traduce le richieste astratte degli strumenti di Claude (come "sposta il mouse" o "acquisisci screenshot") in operazioni effettive nell'ambiente virtuale.
Ciclo agente: Un programma che gestisce la comunicazione tra Claude e l'ambiente, inviando le azioni di Claude all'ambiente e restituendo i risultati (screenshot, output dei comandi) a Claude.
Quando utilizzi l'utilizzo del computer, Claude non si connette direttamente a questo ambiente. Invece, la tua applicazione:
Per sicurezza e isolamento, l'implementazione di riferimento esegue tutto questo all'interno di un container Docker con mappature delle porte appropriate per visualizzare e interagire con l'ambiente.
È disponibile un'implementazione di riferimento che include tutto il necessario per iniziare rapidamente con l'utilizzo del computer:
Il nucleo dell'utilizzo del computer è il "ciclo agente" - un ciclo in cui Claude richiede azioni degli strumenti, la tua applicazione le esegue e restituisce i risultati a Claude. Ecco un esempio semplificato:
async def sampling_loop(
*,
model: str,
messages: list[dict],
api_key: str,
max_tokens: int = 4096,
tool_version: str,
thinking_budget: int | None = None,
max_iterations: int = 10, # Add iteration limit to prevent infinite loops
):
"""
A simple agent loop for Claude computer use interactions.
This function handles the back-and-forth between:
1. Sending user messages to Claude
2. Claude requesting to use tools
3. Your app executing those tools
4. Sending tool results back to Claude
"""
# Set up tools and API parameters
client = Anthropic(api_key=api_key)
beta_flag = (
"computer-use-2025-11-24"
if "20251124" in tool_version
else "computer-use-2025-01-24"
if "20250124" in tool_version
else "computer-use-2024-10-22"
)
# Configure tools - you should already have these initialized elsewhere
tools = [
{
"type": f"computer_{tool_version}",
"name": "computer",
"display_width_px": 1024,
"display_height_px": 768,
},
{"type": f"text_editor_{tool_version}", "name": "str_replace_editor"},
{"type": f"bash_{tool_version}", "name": "bash"},
]
# Main agent loop (with iteration limit to prevent runaway API costs)
iterations = 0
while True and iterations < max_iterations:
iterations += 1
# Set up optional thinking parameter (for Claude Sonnet 3.7)
thinking = None
if thinking_budget:
thinking = {"type": "enabled", "budget_tokens": thinking_budget}
# Call the Claude API
response = client.beta.messages.create(
model=model,
max_tokens=max_tokens,
messages=messages,
tools=tools,
betas=[beta_flag],
thinking=thinking,
)
# Add Claude's response to the conversation history
response_content = response.content
messages.append({"role": "assistant", "content": response_content})
# Check if Claude used any tools
tool_results = []
for block in response_content:
if block.type == "tool_use":
# In a real app, you would execute the tool here
# For example: result = run_tool(block.name, block.input)
result = {"result": "Tool executed successfully"}
# Format the result for Claude
tool_results.append(
{"type": "tool_result", "tool_use_id": block.id, "content": result}
)
# If no tools were used, Claude is done - return the final messages
if not tool_results:
return messages
# Add tool results to messages for the next iteration with Claude
messages.append({"role": "user", "content": tool_results})Il ciclo continua finché Claude non risponde senza richiedere alcuno strumento (completamento dell'attività) o viene raggiunto il limite massimo di iterazioni. Questa salvaguardia previene potenziali cicli infiniti che potrebbero comportare costi API imprevisti.
Prova l'implementazione di riferimento prima di leggere il resto di questa documentazione.
Ecco alcuni suggerimenti su come ottenere output di qualità migliore:
After each step, take a screenshot and carefully evaluate if you have achieved the right outcome. Explicitly show your thinking: "I have evaluated step X..." If not correct, try again. Only when you confirm a step was executed correctly should you move on to the next one.<robot_credentials>. L'utilizzo del computer all'interno di applicazioni che richiedono l'accesso aumenta il rischio di risultati negativi a causa dell'iniezione di prompt. Consulta la guida sulla mitigazione delle iniezioni di prompt prima di fornire al modello le credenziali di accesso.Se incontri ripetutamente un insieme chiaro di problemi o sai in anticipo le attività che Claude dovrà completare, usa il prompt di sistema per fornire a Claude suggerimenti o istruzioni esplicite su come eseguire le attività con successo.
Per gli agenti che si estendono su più sessioni, esegui la verifica end-to-end all'inizio di ogni sessione, non solo dopo l'implementazione. I controlli basati sul browser rilevano le regressioni delle sessioni precedenti che la sola revisione a livello di codice non coglie. Consulta Effective harnesses for long-running agents per i dettagli.
Quando uno degli strumenti definiti da Anthropic viene richiesto tramite l'API Claude, viene generato un prompt di sistema specifico per l'utilizzo del computer. È simile al prompt di sistema per l'utilizzo degli strumenti ma inizia con:
Hai accesso a un insieme di funzioni che puoi utilizzare per rispondere alla domanda dell'utente. Questo include l'accesso a un ambiente informatico in sandbox. Al momento NON hai la capacità di ispezionare file o interagire con risorse esterne, tranne che invocando le funzioni seguenti.
Come per l'utilizzo regolare degli strumenti, il campo system_prompt fornito dall'utente viene comunque rispettato e utilizzato nella costruzione del prompt di sistema combinato.
Lo strumento di utilizzo del computer supporta queste azioni:
Azioni di base (tutte le versioni)
[x, y]Azioni avanzate (computer_20250124)
Disponibili nei modelli Claude 4 e Claude Sonnet 3.7:
Azioni avanzate (computer_20251124)
Disponibili in Claude Opus 4.6 e Claude Opus 4.5:
computer_20250124enable_zoom: true nella definizione dello strumento. Accetta un parametro region con coordinate [x1, y1, x2, y2] che definiscono gli angoli in alto a sinistra e in basso a destra dell'area da ispezionare.| Parametro | Obbligatorio | Descrizione |
|---|---|---|
type | Sì | Versione dello strumento (computer_20251124, computer_20250124 o computer_20241022) |
name | Sì | Deve essere "computer" |
display_width_px | Sì | Larghezza del display in pixel |
display_height_px | Sì | Altezza del display in pixel |
display_number | No | Numero del display per gli ambienti X11 |
Importante: Lo strumento di utilizzo del computer deve essere eseguito esplicitamente dalla tua applicazione - Claude non può eseguirlo direttamente. Sei responsabile dell'implementazione dell'acquisizione degli screenshot, dei movimenti del mouse, degli input da tastiera e di altre azioni in base alle richieste di Claude.
Claude Sonnet 3.7 ha introdotto una nuova capacità di "pensiero" che ti consente di vedere il processo di ragionamento del modello mentre lavora su attività complesse. Questa funzionalità ti aiuta a capire come Claude si avvicina a un problema e può essere particolarmente utile per il debug o a scopo didattico.
Per abilitare il pensiero, aggiungi un parametro thinking alla tua richiesta API:
"thinking": {
"type": "enabled",
"budget_tokens": 1024
}Il parametro budget_tokens specifica quanti token Claude può utilizzare per il pensiero. Questo viene sottratto dal tuo budget complessivo di max_tokens.
Quando il pensiero è abilitato, Claude restituirà il suo processo di ragionamento come parte della risposta, il che può aiutarti a:
Ecco un esempio di come potrebbe apparire l'output del pensiero:
[Thinking]
I need to save a picture of a cat to the desktop. Let me break this down into steps:
1. First, I'll take a screenshot to see what's on the desktop
2. Then I'll look for a web browser to search for cat images
3. After finding a suitable image, I'll need to save it to the desktop
Let me start by taking a screenshot to see what's available...Lo strumento di uso del computer può essere combinato con altri strumenti per creare flussi di lavoro di automazione più potenti. Questo è particolarmente utile quando è necessario:
L'implementazione di riferimento è pensata per aiutarti a iniziare con l'uso del computer. Include tutti i componenti necessari affinché Claude utilizzi un computer. Tuttavia, puoi costruire il tuo ambiente per l'uso del computer in base alle tue esigenze. Avrai bisogno di:
tool_use utilizzando le tue implementazioni degli strumentiLo strumento di uso del computer è implementato come uno strumento senza schema. Quando si utilizza 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.
Quando si implementa lo strumento di uso del computer, possono verificarsi vari errori. Ecco come gestirli:
L'API limita le immagini a un massimo di 1568 pixel sul lato più lungo e circa 1,15 megapixel totali (vedi ridimensionamento delle immagini per i dettagli). Ad esempio, uno schermo 1512x982 viene ricampionato a circa 1330x864. Claude analizza questa immagine più piccola e restituisce le coordinate in quello spazio, ma il tuo strumento esegue i clic nello spazio dello schermo originale.
Questo può causare che le coordinate di clic di Claude manchino i loro obiettivi a meno che tu non gestisca la trasformazione delle coordinate.
Per risolvere questo problema, ridimensiona gli screenshot tu stesso e scala le coordinate di Claude verso l'alto:
La funzionalità di uso del computer è in beta. Sebbene le capacità di Claude siano all'avanguardia, gli sviluppatori devono essere consapevoli dei suoi limiti:
left_mouse_down, left_mouse_up e il nuovo supporto per i tasti modificatori. La selezione delle celle può essere più affidabile utilizzando questi controlli granulari e combinando i tasti modificatori con i clic.Rivedi e verifica sempre attentamente le azioni e i log di uso del computer di Claude. Non utilizzare Claude per attività che richiedono precisione assoluta o informazioni sensibili degli utenti senza supervisione umana.
L'uso del computer è uno strumento lato client. Tutti gli screenshot, le azioni del mouse, gli input da tastiera e qualsiasi file coinvolto in una sessione vengono acquisiti e archiviati nel tuo ambiente, non da Anthropic. Anthropic elabora le immagini degli screenshot e le richieste di azione in tempo reale come parte della chiamata API, ma non le conserva dopo che la risposta viene restituita.
Poiché la tua applicazione controlla dove e come vengono archiviati i dati di uso del computer, l'uso del computer è idoneo per ZDR. Per l'idoneità ZDR su tutte le funzionalità, consulta API e conservazione dei dati.
Computer use follows the standard tool use pricing. When using the computer use tool:
System prompt overhead: The computer use beta adds 466-499 tokens to the system prompt
Computer use tool token usage:
| Model | Input tokens per tool definition |
|---|---|
| Claude 4.x models | 735 tokens |
| Claude Sonnet 3.7 (deprecated) | 735 tokens |
Additional token consumption:
If you're also using bash or text editor tools alongside computer use, those tools have their own token costs as documented in their respective pages.
Was this page helpful?
curl https://api.anthropic.com/v1/messages \
-H "content-type: application/json" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: computer-use-2025-11-24" \
-d '{
"model": "claude-opus-4-6",
"max_tokens": 1024,
"tools": [
{
"type": "computer_20251124",
"name": "computer",
"display_width_px": 1024,
"display_height_px": 768,
"display_number": 1
},
{
"type": "text_editor_20250728",
"name": "str_replace_based_edit_tool"
},
{
"type": "bash_20250124",
"name": "bash"
}
],
"messages": [
{
"role": "user",
"content": "Save a picture of a cat to my desktop."
}
]
}'Fornisci a Claude lo strumento di utilizzo del computer e un prompt utente
Claude decide di utilizzare lo strumento di utilizzo del computer
stop_reason di tool_use, che segnala l'intenzione di Claude.Estrai l'input dello strumento, valuta lo strumento su un computer e restituisci i risultati
user contenente un blocco di contenuto tool_result.Claude continua a chiamare gli strumenti di utilizzo del computer fino al completamento dell'attività
stop_reason di tool_use e dovresti tornare al passaggio 3.enable_zoom |
| No |
Abilita l'azione zoom (solo computer_20251124). Imposta su true per consentire a Claude di ingrandire regioni specifiche dello schermo. Predefinito: false |
curl https://api.anthropic.com/v1/messages \
-H "content-type: application/json" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: computer-use-2025-11-24" \
-d '{
"model": "claude-opus-4-6",
"max_tokens": 2000,
"tools": [
{
"type": "computer_20251124",
"name": "computer",
"display_width_px": 1024,
"display_height_px": 768,
"display_number": 1
},
{
"type": "text_editor_20250728",
"name": "str_replace_based_edit_tool"
},
{
"type": "bash_20250124",
"name": "bash"
},
{
"name": "get_weather",
"description": "Get the current weather in a given location",
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "The unit of temperature, either 'celsius' or 'fahrenheit'"
}
},
"required": ["location"]
}
}
],
"messages": [
{
"role": "user",
"content": "Find flights from San Francisco to a place with warmer weather."
}
],
"thinking": {
"type": "enabled",
"budget_tokens": 1024
}
}'Configura il tuo ambiente di elaborazione
Crea un display virtuale o connettiti a un display esistente con cui Claude interagirà. Questo di solito comporta la configurazione di Xvfb (X Virtual Framebuffer) o tecnologia simile.
Implementa i gestori di azioni
Crea funzioni per gestire ogni tipo di azione che Claude potrebbe richiedere:
def handle_computer_action(action_type, params):
if action_type == "screenshot":
return capture_screenshot()
elif action_type == "left_click":
x, y = params["coordinate"]
return click_at(x, y)
elif action_type == "type":
return type_text(params["text"])
# ... handle other actionsElabora le chiamate agli strumenti di Claude
Estrai ed esegui le chiamate agli strumenti dalle risposte di Claude:
for content in response.content:
if content.type == "tool_use":
action = content.input["action"]
result = handle_computer_action(action, content.input)
# Return result to Claude
tool_result = {
"type": "tool_result",
"tool_use_id": content.id,
"content": result,
}Implementa il ciclo agente
Crea un ciclo che continua finché Claude non completa il compito:
while True:
response = client.beta.messages.create(...)
# Check if Claude used any tools
tool_results = process_tool_calls(response)
if not tool_results:
# No more tool use, task complete
break
# Continue conversation with tool results
messages.append({"role": "user", "content": tool_results})import math
def get_scale_factor(width, height):
"""Calcola il fattore di scala per soddisfare i vincoli dell'API."""
long_edge = max(width, height)
total_pixels = width * height
long_edge_scale = 1568 / long_edge
total_pixels_scale = math.sqrt(1_150_000 / total_pixels)
return min(1.0, long_edge_scale, total_pixels_scale)
# Quando si acquisisce lo screenshot
scale = get_scale_factor(screen_width, screen_height)
scaled_width = int(screen_width * scale)
scaled_height = int(screen_height * scale)
# Ridimensiona l'immagine alle dimensioni scalate prima di inviarla a Claude
screenshot = capture_and_resize(scaled_width, scaled_height)
# Quando si gestiscono le coordinate di Claude, scalale verso l'alto
def execute_click(x, y):
screen_x = x / scale
screen_y = y / scale
perform_click(screen_x, screen_y)Scopri di più sull'uso degli strumenti e sulla creazione di strumenti personalizzati