Claude può interagire con ambienti desktop attraverso lo strumento di utilizzo del computer, che fornisce funzionalità di screenshot e controllo del mouse/tastiera per l'interazione autonoma del desktop.
L'utilizzo del computer è attualmente in beta e richiede un intestazione beta:
"computer-use-2025-11-24" per Claude Opus 4.6, Claude Opus 4.5"computer-use-2025-01-24" per Claude Sonnet 4.5, Haiku 4.5, Opus 4.1, Sonnet 4, Opus 4, e Sonnet 3.7 (deprecato)Ti invitiamo a contattarci tramite il nostro modulo di feedback per condividere il tuo feedback su questa funzione.
L'utilizzo del computer è una funzione beta che consente a Claude di interagire con ambienti desktop. Questo strumento fornisce:
Sebbene l'utilizzo del computer possa essere potenziato con altri strumenti come bash e 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 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 e Claude Opus 4.5 introducono la versione dello strumento computer_20251124 con nuove funzionalità inclusa l'azione zoom per l'ispezione dettagliata della regione 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 dello strumento più vecchie non sono garantite essere retrocompatibili con i modelli più recenti. Utilizza sempre la versione dello strumento che corrisponde alla versione del tuo modello.
L'utilizzo del computer è una funzione beta con rischi unici distinti dalle funzioni API standard. Questi rischi sono aumentati quando si interagisce con Internet.
Per minimizzare i rischi, considera di prendere precauzioni come:
In alcune circostanze, Claude seguirà i comandi trovati nel contenuto anche se entra in conflitto con le istruzioni dell'utente. Ad esempio, le istruzioni Claude su pagine web o contenute in immagini possono ignorare le istruzioni o causare a Claude di fare errori. Ti suggeriamo di prendere precauzioni per isolare Claude da dati e azioni sensibili per evitare rischi correlati all'iniezione di prompt.
Abbiamo addestrato il modello a resistere a queste iniezioni di prompt e abbiamo aggiunto un ulteriore livello di difesa. Se utilizzi i nostri strumenti di utilizzo del computer, eseguiremo automaticamente classificatori sui tuoi prompt per segnalare potenziali istanze di iniezioni di prompt. Quando questi classificatori identificano potenziali iniezioni di prompt negli screenshot, guideranno automaticamente il modello a chiedere la conferma dell'utente prima di procedere con l'azione successiva. Riconosciamo che questa protezione extra 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, contattaci.
Ti suggeriamo comunque di prendere precauzioni per isolare Claude da dati e azioni sensibili per evitare rischi correlati all'iniezione di prompt.
Infine, informi gli utenti finali dei rischi rilevanti e ottieni il loro consenso prima di abilitare l'utilizzo del computer nei tuoi prodotti.
Inizia rapidamente con la nostra implementazione di riferimento dell'utilizzo del computer che include un'interfaccia web, un contenitore Docker, implementazioni di strumenti di esempio e un ciclo di agenti.
Nota: L'implementazione è stata aggiornata per includere nuovi strumenti sia per i modelli Claude 4 che per Claude Sonnet 3.7. Assicurati di estrarre la versione più recente del repository per accedere a queste nuove funzioni.
Utilizza questo modulo per fornire feedback sulla qualità delle risposte del modello, sull'API stessa, o sulla qualità della documentazione - non vediamo l'ora di sentirti!
Ecco come iniziare con l'utilizzo del computer:
import anthropic
client = anthropic.Anthropic()
response = client.beta.messages.create(
model="claude-opus-4-6", # o un altro modello compatibile
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": "Salva una foto di un gatto sul mio desktop."}],
betas=["computer-use-2025-11-24"]
)
print(response)Un'intestazione beta è richiesta solo per lo strumento di utilizzo del computer.
L'esempio sopra mostra tutti e tre gli strumenti utilizzati insieme, il che richiede l'intestazione beta perché include lo strumento di utilizzo del computer.
Fornisci a Claude lo strumento di utilizzo del computer e un prompt dell'utente
Claude decide di utilizzare lo strumento di utilizzo del computer
stop_reason di tool_use, segnalando 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.Ci riferiamo alla ripetizione dei passaggi 3 e 4 senza input dell'utente come il "ciclo di agenti" - cioè Claude che risponde con una richiesta di utilizzo dello strumento e la tua applicazione che risponde a Claude con i risultati della valutazione di quella richiesta.
L'utilizzo del computer richiede un ambiente di calcolo sandbox in cui Claude può interagire in sicurezza con applicazioni e il web. Questo ambiente include:
Display virtuale: Un server di display X11 virtuale (utilizzando Xvfb) che renderizza l'interfaccia desktop che Claude vedrà attraverso gli screenshot e controllerà con le azioni del 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 per Claude per interagire.
Applicazioni: Applicazioni Linux preinstallate come Firefox, LibreOffice, editor di testo e gestori di file che Claude può utilizzare per completare le attività.
Implementazioni di strumenti: Codice di integrazione che traduce le richieste di strumenti astratti di Claude (come "sposta il mouse" o "prendi uno screenshot") in operazioni effettive nell'ambiente virtuale.
Ciclo di agenti: 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 la sicurezza e l'isolamento, l'implementazione di riferimento esegue tutto questo all'interno di un contenitore Docker con mappature di porta appropriate per visualizzare e interagire con l'ambiente.
Abbiamo costruito un'implementazione di riferimento che include tutto ciò di cui hai bisogno per iniziare rapidamente con l'utilizzo del computer:
Il nucleo dell'utilizzo del computer è il "ciclo di agenti" - un ciclo in cui Claude richiede azioni dello strumento, 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, # Aggiungi limite di iterazione per prevenire cicli infiniti
):
"""
Un semplice ciclo di agenti per le interazioni di utilizzo del computer di Claude.
Questa funzione gestisce il dialogo tra:
1. Invio di messaggi dell'utente a Claude
2. Claude che richiede di utilizzare gli strumenti
3. La tua app che esegue quegli strumenti
4. Invio dei risultati dello strumento a Claude
"""
# Configura gli strumenti e i parametri API
client = Anthropic(api_key=api_key)
beta_flag = "computer-use-2025-01-24" if "20250124" in tool_version else "computer-use-2024-10-22"
# Configura gli strumenti - dovresti già averli inizializzati altrove
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"}
]
# Ciclo di agenti principale (con limite di iterazione per prevenire costi API incontrollati)
iterations = 0
while True and iterations < max_iterations:
iterations += 1
# Configura il parametro di pensiero opzionale (per Claude Sonnet 3.7)
thinking = None
if thinking_budget:
thinking = {"type": "enabled", "budget_tokens": thinking_budget}
# Chiama l'API Claude
response = client.beta.messages.create(
model=model,
max_tokens=max_tokens,
messages=messages,
tools=tools,
betas=[beta_flag],
thinking=thinking
)
# Aggiungi la risposta di Claude alla cronologia della conversazione
response_content = response.content
messages.append({"role": "assistant", "content": response_content})
# Verifica se Claude ha utilizzato degli strumenti
tool_results = []
for block in response_content:
if block.type == "tool_use":
# In un'app reale, eseguiresti lo strumento qui
# Ad esempio: result = run_tool(block.name, block.input)
result = {"result": "Tool executed successfully"}
# Formatta il risultato per Claude
tool_results.append({
"type": "tool_result",
"tool_use_id": block.id,
"content": result
})
# Se nessuno strumento è stato utilizzato, Claude ha finito - restituisci i messaggi finali
if not tool_results:
return messages
# Aggiungi i risultati dello strumento ai messaggi per la prossima iterazione con Claude
messages.append({"role": "user", "content": tool_results})Il ciclo continua fino a quando Claude non risponde senza richiedere alcuno strumento (completamento dell'attività) o fino al raggiungimento del limite massimo di iterazione. Questa salvaguardia previene potenziali cicli infiniti che potrebbero causare costi API inaspettati.
Ti consigliamo di provare l'implementazione di riferimento prima di leggere il resto di questa documentazione.
Ecco alcuni suggerimenti su come ottenere i migliori output di qualità:
Dopo ogni passaggio, prendi uno screenshot e valuta attentamente se hai raggiunto il risultato corretto. Mostra esplicitamente il tuo ragionamento: "Ho valutato il passaggio X..." Se non è corretto, riprova. Solo quando confermi che un passaggio è stato eseguito correttamente dovresti passare a quello successivo.<robot_credentials>. L'utilizzo dell'utilizzo del computer all'interno di applicazioni che richiedono l'accesso aumenta il rischio di cattivi risultati a causa dell'iniezione di prompt. Consulta la nostra guida sulla mitigazione delle iniezioni di prompt prima di fornire al modello le credenziali di accesso.Se incontri ripetutamente una serie chiara di problemi o conosci in anticipo le attività che Claude dovrà completare, utilizza il prompt di sistema per fornire a Claude suggerimenti espliciti o istruzioni su come completare le attività con successo.
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 di utilizzo dello strumento 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 di calcolo sandbox. Attualmente NON hai la capacità di ispezionare file o interagire con risorse esterne, se non invocando le funzioni sottostanti.
Come con l'utilizzo regolare dello strumento, il campo system_prompt fornito dall'utente è ancora 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 migliorate (computer_20250124)
Disponibili nei modelli Claude 4 e Claude Sonnet 3.7:
Azioni migliorate (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 di display per ambienti X11 |
enable_zoom | No | Abilita l'azione zoom (computer_20251124 solo). Imposta su true per consentire a Claude di ingrandire regioni specifiche dello schermo. Predefinito: false |
Importante: Lo strumento di utilizzo del computer deve essere esplicitamente eseguito dalla tua applicazione - Claude non può eseguirlo direttamente. Sei responsabile dell'implementazione dell'acquisizione di 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 funzione ti aiuta a capire come Claude sta affrontando un problema e può essere particolarmente preziosa per il debug o scopi educativi.
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, che può aiutarti a:
Ecco un esempio di come potrebbe apparire l'output del pensiero:
[Pensiero]
Devo salvare una foto di un gatto sul desktop. Scomponiamo questo in passaggi:
1. Per prima cosa, prenderò uno screenshot per vedere cosa c'è sul desktop
2. Poi cercherò un browser web per cercare immagini di gatti
3. Dopo aver trovato un'immagine adatta, dovrò salvarla sul desktop
Iniziamo prendendo uno screenshot per vedere cosa è disponibile...Lo strumento di utilizzo del computer può essere combinato con altri strumenti per creare flussi di lavoro di automazione più potenti. Questo è particolarmente utile quando hai bisogno di:
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-01-24" \
-d '{
"model": "claude-opus-4-6",
"max_tokens": 2000,
"tools": [
{
"type": "computer_20250124",
"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": "Ottieni il meteo attuale in una determinata posizione",
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "La città e lo stato, ad es. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "L'unità di temperatura, 'celsius' o 'fahrenheit'"
}
},
"required": ["location"]
}
}
],
"messages": [
{
"role": "user",
"content": "Trova voli da San Francisco a un posto con meteo più caldo."
}
],
"thinking": {
"type": "enabled",
"budget_tokens": 1024
}
}'L'implementazione di riferimento è pensata per aiutarti a iniziare con il computer use. Include tutti i componenti necessari affinché Claude utilizzi un computer. Tuttavia, puoi costruire il tuo ambiente per il computer use in base alle tue esigenze. Avrai bisogno di:
tool_use utilizzando le tue implementazioni di toolIl tool di computer use è implementato come uno strumento senza schema. Quando utilizzi questo tool, non è necessario fornire uno schema di input come con altri tool; lo schema è integrato nel modello di Claude e non può essere modificato.
Configura il tuo ambiente di elaborazione
Crea un display virtuale o connettiti a un display esistente con cui Claude interagirà. Questo in genere 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"])
# ... gestisci altre azioniElabora le chiamate di tool di Claude
Estrai ed esegui le chiamate di tool 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)
# Restituisci il risultato a Claude
tool_result = {
"type": "tool_result",
"tool_use_id": content.id,
"content": result
}Implementa l'agent loop
Crea un loop che continua fino a quando Claude completa l'attività:
while True:
response = client.beta.messages.create(...)
# Verifica se Claude ha utilizzato strumenti
tool_results = process_tool_calls(response)
if not tool_results:
# Nessun altro tool use, attività completata
break
# Continua la conversazione con i risultati dei tool
messages.append({"role": "user", "content": tool_results})Quando implementi il tool di computer use, possono verificarsi vari errori. Ecco come gestirli:
L'API vincola 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 sottocampionato a circa 1330x864. Claude analizza questa immagine più piccola e restituisce le coordinate in quello spazio, ma il tuo tool esegue i clic nello spazio dello schermo originale.
Questo può causare il mancato raggiungimento dei target da parte delle coordinate di clic di Claude a meno che tu non gestisca la trasformazione delle coordinate.
Per risolvere questo problema, ridimensiona gli screenshot tu stesso e ridimensiona le coordinate di Claude:
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 acquisisci uno 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 ridimensionate prima di inviarla a Claude
screenshot = capture_and_resize(scaled_width, scaled_height)
# Quando gestisci le coordinate di Claude, ridimensionale
def execute_click(x, y):
screen_x = x / scale
screen_y = y / scale
perform_click(screen_x, screen_y)La funzionalità di computer use è in beta. Sebbene le capacità di Claude siano all'avanguardia, gli sviluppatori dovrebbero essere consapevoli delle sue limitazioni:
left_mouse_down, left_mouse_up e nuovo supporto dei 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 del computer use di Claude. Non utilizzare Claude per attività che richiedono una precisione perfetta o informazioni sensibili dell'utente senza supervisione umana.
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.
Inizia rapidamente con la nostra implementazione completa basata su Docker
Scopri di più sul tool use e sulla creazione di tool personalizzati
Was this page helpful?