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. No WebArena, um benchmark para navegação web autônoma em sites reais, Claude alcança resultados de ponta entre sistemas de agente único, demonstrando forte capacidade de completar tarefas de navegador multi-etapas de ponta a ponta.
O uso de computador está em beta e requer um cabeçalho beta:
"computer-use-2025-11-24" para Claude Opus 4.7, Claude Opus 4.6, Claude Sonnet 4.6, Claude Opus 4.5"computer-use-2025-01-24" para Sonnet 4.5, Haiku 4.5, Opus 4.1, Sonnet 4, Opus 4, e Sonnet 3.7 (descontinuado)Entre em contato através do formulário de feedback para compartilhar seu feedback sobre este recurso.
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.
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.
Para suporte de modelo, consulte a Referência de ferramentas.
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 com que Claude cometa erros. Tome precauções para isolar Claude de dados e ações sensíveis para evitar riscos relacionados a injeção de prompt.
O modelo foi treinado para resistir a essas injeções de prompt, e uma camada extra de defesa foi adicionada. Se você usar as ferramentas de uso de computador, classificadores serão executados automaticamente 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 direcionarão o modelo a pedir confirmação do usuário antes de prosseguir com a próxima ação. Esta 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 com o suporte.
Essas precauções permanecem importantes mesmo com a camada de defesa do classificador em vigor.
Informe aos usuários finais os riscos relevantes e obtenha seu consentimento antes de ativar o uso de computador em seus próprios produtos.
Comece rapidamente com a 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 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.
Aqui está como começar com o uso de computador:
client = anthropic.Anthropic()
response = client.beta.messages.create(
model="claude-opus-4-7", # or another compatible model
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 à etapa 3.A repetição das etapas 3 e 4 sem entrada do usuário é chamada de "agent loop" (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:
Display virtual: Um servidor de display 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) em execução 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 de ferramentas abstratas de Claude (como "mover mouse" ou "tirar captura de tela") em operações reais no ambiente virtual.
Agent loop: Um programa que lida com 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.
Uma implementação de referência está disponível que inclui tudo o que você precisa para começar rapidamente com o uso de computador:
O núcleo do uso de computador é o "agent loop" - um ciclo onde Claude solicita ações de ferramentas, 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, # 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"
)
text_editor_type = (
"text_editor_20250728"
if "20251124" in tool_version
else f"text_editor_{tool_version}"
)
# 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": text_editor_type, "name": "str_replace_based_edit_tool"},
{"type": "bash_20250124", "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})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 proteção evita possíveis loops infinitos que poderiam resultar em custos de API inesperados.
Experimente 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 exigem login aumenta o risco de resultados ruins como resultado de injeção de prompt. Revise o 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 ou instruções explícitas sobre como fazer as tarefas com sucesso.
Para agentes que abrangem múltiplas sessões, execute verificação de ponta a ponta no início de cada sessão, não apenas após a implementação. Verificações baseadas em navegador capturam regressões de sessões anteriores que revisão apenas em nível de código perde. Consulte Effective harnesses for long-running agents para detalhes.
Quando uma das ferramentas do schema Anthropic é solicitada através da API Claude, um prompt do sistema específico de uso de computador é gerado. É semelhante ao prompt do sistema de uso de ferramentas 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.7, Claude Opus 4.6, Claude Sonnet 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 ou computer_20250124) |
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 | Ativar ação de zoom (computer_20251124 apenas). Defina como true para permitir que Claude amplie 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.
Para combinar o uso de computador com pensamento estendido, consulte Pensamento estendido.
Para adicionar outras ferramentas junto com o uso de computador, inclua-as no mesmo array tools. O início rápido acima mostra este padrão com a ferramenta bash e ferramenta de editor de texto. Você pode adicionar suas próprias definições de ferramentas personalizadas da mesma forma.
A implementação de referência foi criada 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 de acordo com 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 esta 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.
Configure 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.
Implemente 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"])
# ... handle other actionsProcesse as chamadas de ferramenta do Claude
Extraia e execute chamadas de ferramenta 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)
# Return result to Claude
tool_result = {
"type": "tool_result",
"tool_use_id": content.id,
"content": result,
}Implemente o loop do agente
Crie um loop que continua até Claude completar a tarefa:
while True:
response = client.beta.messages.create(
model="claude-opus-4-7",
max_tokens=4096,
messages=messages,
tools=tools,
betas=["computer-use-2025-11-24"],
)
# 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})Ao implementar a ferramenta de uso de computador, vários erros podem ocorrer. Veja como lidar com eles:
Claude Opus 4.7 suporta até 2576 pixels na borda mais longa, e suas coordenadas são 1
com pixels de imagem (nenhuma conversão de fator de escala é necessária). A orientação de 1568 pixels abaixo se aplica a modelos anteriores.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:
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.
O uso de computador é uma ferramenta do lado do cliente. Todos os screenshots, ações do mouse, entradas de teclado e quaisquer arquivos envolvidos em uma sessão são capturados e armazenados em seu ambiente, não pela Anthropic. A Anthropic processa as imagens de screenshot e solicitações de ação em tempo real como parte da chamada da API, mas não as retém após a resposta ser retornada.
Como sua aplicação controla onde e como os dados de uso de computador são armazenados, o uso de computador é elegível para ZDR. Para elegibilidade de ZDR em todos os recursos, veja API e retenção de dados.
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 |
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 a implementação completa baseada em Docker
Saiba mais sobre uso de ferramentas e criação de ferramentas personalizadas
Was this page helpful?