Claude pode interagir com ambientes de computador através da ferramenta de uso de computador, que fornece capacidades de captura de tela e controle de mouse/teclado para interação autônoma de desktop.
O uso de computador está atualmente em beta e requer um cabeçalho beta:
"computer-use-2025-11-24" para Claude Opus 4.6, Claude Opus 4.5"computer-use-2025-01-24" para Claude Sonnet 4.5, Haiku 4.5, Opus 4.1, Sonnet 4, Opus 4, e Sonnet 3.7 (descontinuado)Por favor, entre em contato através do nosso formulário de feedback para compartilhar seu feedback sobre este recurso.
O uso de computador é um recurso beta que permite que Claude interaja com ambientes de desktop. Esta ferramenta fornece:
Embora o uso de computador possa ser aumentado com outras ferramentas como bash e editor de texto para fluxos de trabalho de automação mais abrangentes, o uso de computador especificamente se refere à capacidade da ferramenta de uso de computador de ver e controlar ambientes de desktop.
O uso de computador está disponível para os seguintes modelos Claude:
| Modelo | Versão da Ferramenta | Sinalizador Beta |
|---|---|---|
| Claude Opus 4.6, Claude Opus 4.5 | computer_20251124 | computer-use-2025-11-24 |
| Todos os outros modelos suportados | computer_20250124 | computer-use-2025-01-24 |
Claude Opus 4.6 e Claude Opus 4.5 introduzem a versão da ferramenta computer_20251124 com novas capacidades incluindo a ação de zoom para inspeção detalhada de regiões de tela. Todos os outros modelos (Sonnet 4.5, Haiku 4.5, Sonnet 4, Opus 4, Opus 4.1, e Sonnet 3.7) usam a versão da ferramenta computer_20250124.
Versões mais antigas da ferramenta não são garantidas como compatíveis com versões mais novas de modelos. Sempre use a versão da ferramenta que corresponde à sua versão de modelo.
O uso de computador é um recurso beta com riscos únicos distintos dos recursos padrão da API. Esses riscos são aumentados ao interagir com a internet.
Para minimizar riscos, considere tomar precauções como:
Em algumas circunstâncias, Claude seguirá comandos encontrados em conteúdo mesmo que conflitem com as instruções do usuário. Por exemplo, instruções Claude em páginas da web ou contidas em imagens podem substituir instruções ou fazer Claude cometer erros. Sugerimos tomar precauções para isolar Claude de dados sensíveis e ações para evitar riscos relacionados a injeção de prompt.
Treinamos o modelo para resistir a essas injeções de prompt e adicionamos uma camada extra de defesa. Se você usar nossas ferramentas de uso de computador, executaremos automaticamente classificadores em seus prompts para sinalizar possíveis instâncias de injeção de prompt. Quando esses classificadores identificam possíveis injeções de prompt em capturas de tela, eles automaticamente direcionam o modelo a pedir confirmação do usuário antes de prosseguir com a próxima ação. Reconhecemos que essa proteção extra não será ideal para todos os casos de uso (por exemplo, casos de uso sem um humano no loop), então se você gostaria de desativar e desligar, por favor entre em contato conosco.
Ainda sugerimos tomar precauções para isolar Claude de dados sensíveis e ações para evitar riscos relacionados a injeção de prompt.
Finalmente, por favor informe aos usuários finais os riscos relevantes e obtenha seu consentimento antes de habilitar o uso de computador em seus próprios produtos.
Comece rapidamente com nossa implementação de referência de uso de computador que inclui uma interface web, contêiner Docker, implementações de ferramentas de exemplo, e um loop de agente.
Nota: A implementação foi atualizada para incluir novas ferramentas para ambos os modelos Claude 4 e Claude Sonnet 3.7. Certifique-se de fazer pull da versão mais recente do repositório para acessar esses novos recursos.
Por favor use este formulário para fornecer feedback sobre a qualidade das respostas do modelo, a API em si, ou a qualidade da documentação - não podemos esperar para ouvir de você!
Aqui está como começar com o uso de computador:
import anthropic
client = anthropic.Anthropic()
response = client.beta.messages.create(
model="claude-opus-4-6", # ou outro modelo compatível
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."}],
betas=["computer-use-2025-11-24"]
)
print(response)Um cabeçalho beta é necessário apenas para a ferramenta de uso de computador.
O exemplo acima mostra todas as três ferramentas sendo usadas juntas, o que requer o cabeçalho beta porque inclui a ferramenta de uso de computador.
Forneça a Claude a ferramenta de uso de computador e um prompt do usuário
Claude decide usar a ferramenta de uso de computador
stop_reason de tool_use, sinalizando a intenção de Claude.Extraia a entrada da ferramenta, avalie a ferramenta em um computador e retorne os resultados
user contendo um bloco de conteúdo tool_result.Claude continua chamando ferramentas de uso de computador até completar a tarefa
stop_reason de tool_use e você deve retornar ao passo 3.Nos referimos à repetição dos passos 3 e 4 sem entrada do usuário como o "loop de agente" - ou seja, Claude respondendo com uma solicitação de uso de ferramenta e sua aplicação respondendo a Claude com os resultados da avaliação dessa solicitação.
O uso de computador requer um ambiente de computação em sandbox onde Claude pode interagir com segurança com aplicativos e a web. Este ambiente inclui:
Exibição virtual: Um servidor de exibição X11 virtual (usando Xvfb) que renderiza a interface de desktop que Claude verá através de capturas de tela e controlará com ações de mouse/teclado.
Ambiente de desktop: Uma interface leve com gerenciador de janelas (Mutter) e painel (Tint2) rodando no Linux, que fornece uma interface gráfica consistente para Claude interagir.
Aplicativos: Aplicativos Linux pré-instalados como Firefox, LibreOffice, editores de texto e gerenciadores de arquivos que Claude pode usar para completar tarefas.
Implementações de ferramentas: Código de integração que traduz solicitações abstratas de ferramentas de Claude (como "mover mouse" ou "tirar screenshot") em operações reais no ambiente virtual.
Loop de agente: Um programa que manipula a comunicação entre Claude e o ambiente, enviando as ações de Claude para o ambiente e retornando os resultados (capturas de tela, saídas de comando) de volta para Claude.
Quando você usa o uso de computador, Claude não se conecta diretamente a este ambiente. Em vez disso, sua aplicação:
Para segurança e isolamento, a implementação de referência executa tudo isso dentro de um contêiner Docker com mapeamentos de porta apropriados para visualizar e interagir com o ambiente.
Construímos uma implementação de referência que inclui tudo que você precisa para começar rapidamente com o uso de computador:
O núcleo do uso de computador é o "loop de agente" - um ciclo onde Claude solicita ações de ferramenta, sua aplicação as executa e retorna resultados para Claude. Aqui está um exemplo simplificado:
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, # Adicione limite de iteração para evitar loops infinitos
):
"""
Um loop de agente simples para interações de uso de computador Claude.
Esta função manipula a interação entre:
1. Enviar mensagens do usuário para Claude
2. Claude solicitando usar ferramentas
3. Sua aplicação executando essas ferramentas
4. Enviar resultados de ferramentas de volta para Claude
"""
# Configure ferramentas e parâmetros de 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"
# Configure ferramentas - você já deve ter essas inicializadas em outro lugar
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"}
]
# Loop de agente principal (com limite de iteração para evitar custos de API descontrolados)
iterations = 0
while True and iterations < max_iterations:
iterations += 1
# Configure parâmetro de pensamento opcional (para Claude Sonnet 3.7)
thinking = None
if thinking_budget:
thinking = {"type": "enabled", "budget_tokens": thinking_budget}
# Chame a API Claude
response = client.beta.messages.create(
model=model,
max_tokens=max_tokens,
messages=messages,
tools=tools,
betas=[beta_flag],
thinking=thinking
)
# Adicione a resposta de Claude ao histórico de conversa
response_content = response.content
messages.append({"role": "assistant", "content": response_content})
# Verifique se Claude usou alguma ferramenta
tool_results = []
for block in response_content:
if block.type == "tool_use":
# Em uma aplicação real, você executaria a ferramenta aqui
# Por exemplo: result = run_tool(block.name, block.input)
result = {"result": "Tool executed successfully"}
# Formate o resultado para Claude
tool_results.append({
"type": "tool_result",
"tool_use_id": block.id,
"content": result
})
# Se nenhuma ferramenta foi usada, Claude terminou - retorne as mensagens finais
if not tool_results:
return messages
# Adicione resultados de ferramentas às mensagens para a próxima iteração com Claude
messages.append({"role": "user", "content": tool_results})O loop continua até que Claude responda sem solicitar nenhuma ferramenta (conclusão da tarefa) ou o limite máximo de iteração seja atingido. Esta salvaguarda evita possíveis loops infinitos que poderiam resultar em custos de API inesperados.
Recomendamos tentar a implementação de referência antes de ler o resto desta documentação.
Aqui estão algumas dicas sobre como obter as melhores saídas de qualidade:
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>. Usar o uso de computador dentro de aplicativos que requerem login aumenta o risco de resultados ruins como resultado de injeção de prompt. Por favor, revise nosso guia sobre mitigação de injeções de prompt antes de fornecer ao modelo credenciais de login.Se você encontrar repetidamente um conjunto claro de problemas ou souber com antecedência as tarefas que Claude precisará completar, use o prompt do sistema para fornecer a Claude dicas explícitas ou instruções sobre como fazer as tarefas com sucesso.
Quando uma das ferramentas definidas pela Anthropic é solicitada através da API Claude, um prompt do sistema específico para uso de computador é gerado. É semelhante ao prompt do sistema de uso de ferramenta mas começa com:
You have access to a set of functions you can use to answer the user's question. This includes access to a sandboxed computing environment. You do NOT currently have the ability to inspect files or interact with external resources, except by invoking the below functions.
Como com o uso regular de ferramentas, o campo system_prompt fornecido pelo usuário ainda é respeitado e usado na construção do prompt do sistema combinado.
A ferramenta de uso de computador suporta estas ações:
Ações básicas (todas as versões)
[x, y]Ações aprimoradas (computer_20250124)
Disponível em modelos Claude 4 e Claude Sonnet 3.7:
Ações aprimoradas (computer_20251124)
Disponível em Claude Opus 4.6 e Claude Opus 4.5:
computer_20250124enable_zoom: true na definição da ferramenta. Leva um parâmetro region com coordenadas [x1, y1, x2, y2] definindo os cantos superior-esquerdo e inferior-direito da área a inspecionar.| Parâmetro | Obrigatório | Descrição |
|---|---|---|
type | Sim | Versão da ferramenta (computer_20251124, computer_20250124, ou computer_20241022) |
name | Sim | Deve ser "computer" |
display_width_px | Sim | Largura da exibição em pixels |
display_height_px | Sim | Altura da exibição em pixels |
display_number | Não | Número de exibição para ambientes X11 |
enable_zoom | Não | Habilite a ação de zoom (computer_20251124 apenas). Defina como true para permitir que Claude faça zoom em regiões específicas da tela. Padrão: false |
Importante: A ferramenta de uso de computador deve ser explicitamente executada por sua aplicação - Claude não pode executá-la diretamente. Você é responsável por implementar a captura de tela, movimentos de mouse, entradas de teclado e outras ações com base nas solicitações de Claude.
Claude Sonnet 3.7 introduziu uma nova capacidade de "pensamento" que permite que você veja o processo de raciocínio do modelo enquanto ele trabalha através de tarefas complexas. Este recurso ajuda você a entender como Claude está abordando um problema e pode ser particularmente valioso para fins de depuração ou educacionais.
Para habilitar o pensamento, adicione um parâmetro thinking à sua solicitação de API:
"thinking": {
"type": "enabled",
"budget_tokens": 1024
}O parâmetro budget_tokens especifica quantos tokens Claude pode usar para pensamento. Isso é subtraído do seu orçamento geral de max_tokens.
Quando o pensamento está habilitado, Claude retornará seu processo de raciocínio como parte da resposta, o que pode ajudá-lo a:
Aqui está um exemplo de como a saída de pensamento pode parecer:
[Pensamento]
Preciso salvar uma imagem de um gato na área de trabalho. Deixe-me dividir isso em etapas:
1. Primeiro, vou tirar uma screenshot para ver o que está na área de trabalho
2. Então vou procurar um navegador web para procurar imagens de gatos
3. Depois de encontrar uma imagem adequada, vou precisar salvá-la na área de trabalho
Deixe-me começar tirando uma screenshot para ver o que está disponível...A ferramenta de uso de computador pode ser combinada com outras ferramentas para criar fluxos de trabalho de automação mais poderosos. Isso é particularmente útil quando você precisa:
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": "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
}
}'A implementação de referência foi projetada para ajudá-lo a começar com o uso de computador. Ela inclui todos os componentes necessários para que Claude use um computador. No entanto, você pode construir seu próprio ambiente para uso de computador para atender às suas necessidades. Você precisará de:
tool_use usando suas implementações de ferramentasA ferramenta de uso de computador é implementada como uma ferramenta sem esquema. Ao usar essa ferramenta, você não precisa fornecer um esquema de entrada como com outras ferramentas; o esquema é integrado ao modelo Claude e não pode ser modificado.
Configurar seu ambiente de computação
Crie um display virtual ou conecte-se a um display existente com o qual Claude interagirá. Isso normalmente envolve configurar Xvfb (X Virtual Framebuffer) ou tecnologia similar.
Implementar manipuladores de ação
Crie funções para lidar com cada tipo de ação que Claude pode solicitar:
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"])
# ... lidar com outras açõesProcessar chamadas de ferramentas do Claude
Extraia e execute chamadas de ferramentas das respostas do Claude:
for content in response.content:
if content.type == "tool_use":
action = content.input["action"]
result = handle_computer_action(action, content.input)
# Retornar resultado para Claude
tool_result = {
"type": "tool_result",
"tool_use_id": content.id,
"content": result
}Implementar o loop do agente
Crie um loop que continua até Claude completar a tarefa:
while True:
response = client.beta.messages.create(...)
# Verificar se Claude usou alguma ferramenta
tool_results = process_tool_calls(response)
if not tool_results:
# Sem mais uso de ferramentas, tarefa concluída
break
# Continuar conversa com resultados de ferramentas
messages.append({"role": "user", "content": tool_results})Ao implementar a ferramenta de uso de computador, vários erros podem ocorrer. Aqui está como lidar com eles:
A API restringe imagens a um máximo de 1568 pixels na borda mais longa e aproximadamente 1,15 megapixels no total (veja redimensionamento de imagem para detalhes). Por exemplo, uma tela de 1512x982 é reduzida para aproximadamente 1330x864. Claude analisa essa imagem menor e retorna coordenadas nesse espaço, mas sua ferramenta executa cliques no espaço de tela original.
Isso pode fazer com que as coordenadas de clique do Claude percam seus alvos, a menos que você lide com a transformação de coordenadas.
Para corrigir isso, redimensione screenshots você mesmo e dimensione as coordenadas do Claude de volta para cima:
import math
def get_scale_factor(width, height):
"""Calculate scale factor to meet API constraints."""
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)
# When capturing screenshot
scale = get_scale_factor(screen_width, screen_height)
scaled_width = int(screen_width * scale)
scaled_height = int(screen_height * scale)
# Resize image to scaled dimensions before sending to Claude
screenshot = capture_and_resize(scaled_width, scaled_height)
# When handling Claude's coordinates, scale them back up
def execute_click(x, y):
screen_x = x / scale
screen_y = y / scale
perform_click(screen_x, screen_y)A funcionalidade de uso de computador está em beta. Embora as capacidades do Claude sejam de ponta, os desenvolvedores devem estar cientes de suas limitações:
left_mouse_down, left_mouse_up e novo suporte a teclas modificadoras. A seleção de células pode ser mais confiável usando esses controles refinados e combinando teclas modificadoras com cliques.Sempre revise e verifique cuidadosamente as ações e logs de uso de computador do Claude. Não use Claude para tarefas que exigem precisão perfeita ou informações sensíveis do usuário sem supervisão humana.
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.
Comece rapidamente com nossa implementação completa baseada em Docker
Saiba mais sobre o uso de ferramentas e criação de ferramentas personalizadas
Was this page helpful?