Claude puede interactuar con entornos de computadora a través de la herramienta de uso de computadora, que proporciona capacidades de captura de pantalla y control de ratón/teclado para interacción autónoma de escritorio.
El uso de computadora está actualmente en beta y requiere un encabezado 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, y Sonnet 3.7 (deprecado)Por favor, comuníquese a través de nuestro formulario de comentarios para compartir sus comentarios sobre esta función.
El uso de computadora es una función beta que permite a Claude interactuar con entornos de escritorio. Esta herramienta proporciona:
Aunque el uso de computadora puede aumentarse con otras herramientas como bash y editor de texto para flujos de trabajo de automatización más completos, el uso de computadora se refiere específicamente a la capacidad de la herramienta de uso de computadora de ver y controlar entornos de escritorio.
El uso de computadora está disponible para los siguientes modelos de Claude:
| Modelo | Versión de herramienta | Bandera Beta |
|---|---|---|
| Claude Opus 4.6, Claude Opus 4.5 | computer_20251124 | computer-use-2025-11-24 |
| Todos los demás modelos compatibles | computer_20250124 | computer-use-2025-01-24 |
Claude Opus 4.6 y Claude Opus 4.5 introducen la versión de herramienta computer_20251124 con nuevas capacidades incluyendo la acción de zoom para inspección detallada de regiones de pantalla. Todos los demás modelos (Sonnet 4.5, Haiku 4.5, Sonnet 4, Opus 4, Opus 4.1, y Sonnet 3.7) utilizan la versión de herramienta computer_20250124.
Las versiones de herramienta más antiguas no se garantiza que sean compatibles hacia atrás con modelos más nuevos. Siempre use la versión de herramienta que corresponda a su versión de modelo.
El uso de computadora es una función beta con riesgos únicos distintos de las funciones estándar de API. Estos riesgos se aumentan cuando se interactúa con internet.
Para minimizar riesgos, considere tomar precauciones tales como:
En algunas circunstancias, Claude seguirá comandos encontrados en contenido incluso si entra en conflicto con las instrucciones del usuario. Por ejemplo, las instrucciones de Claude en páginas web o contenidas en imágenes pueden anular instrucciones o causar que Claude cometa errores. Sugerimos tomar precauciones para aislar a Claude de datos sensibles y acciones para evitar riesgos relacionados con inyección de indicaciones.
Hemos entrenado el modelo para resistir estas inyecciones de indicaciones y hemos añadido una capa adicional de defensa. Si usa nuestras herramientas de uso de computadora, ejecutaremos automáticamente clasificadores en sus indicaciones para marcar posibles instancias de inyecciones de indicaciones. Cuando estos clasificadores identifican posibles inyecciones de indicaciones en capturas de pantalla, automáticamente dirigirán el modelo a pedir confirmación del usuario antes de proceder con la siguiente acción. Reconocemos que esta protección adicional no será ideal para todos los casos de uso (por ejemplo, casos de uso sin un humano en el bucle), así que si desea optar por no participar y desactivarla, por favor contáctenos.
Aún sugerimos tomar precauciones para aislar a Claude de datos sensibles y acciones para evitar riesgos relacionados con inyección de indicaciones.
Finalmente, por favor informe a los usuarios finales de los riesgos relevantes y obtenga su consentimiento antes de habilitar el uso de computadora en sus propios productos.
Comience rápidamente con nuestra implementación de referencia de uso de computadora que incluye una interfaz web, contenedor Docker, implementaciones de herramientas de ejemplo, y un bucle de agente.
Nota: La implementación ha sido actualizada para incluir nuevas herramientas tanto para modelos Claude 4 como para Claude Sonnet 3.7. Asegúrese de extraer la última versión del repositorio para acceder a estas nuevas funciones.
Por favor use este formulario para proporcionar comentarios sobre la calidad de las respuestas del modelo, la API en sí, o la calidad de la documentación - ¡no podemos esperar a escuchar de usted!
Aquí está cómo comenzar con el uso de computadora:
import anthropic
client = anthropic.Anthropic()
response = client.beta.messages.create(
model="claude-opus-4-6", # 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)Un encabezado beta solo es requerido para la herramienta de uso de computadora.
El ejemplo anterior muestra las tres herramientas siendo utilizadas juntas, lo que requiere el encabezado beta porque incluye la herramienta de uso de computadora.
Proporcione a Claude la herramienta de uso de computadora y una indicación del usuario
Claude decide usar la herramienta de uso de computadora
stop_reason de tool_use, señalando la intención de Claude.Extraiga la entrada de herramienta, evalúe la herramienta en una computadora, y devuelva resultados
user que contenga un bloque de contenido tool_result.Claude continúa llamando herramientas de uso de computadora hasta que haya completado la tarea
stop_reason de tool_use y debe volver al paso 3.Nos referimos a la repetición de los pasos 3 y 4 sin entrada del usuario como el "bucle de agente" - es decir, Claude respondiendo con una solicitud de uso de herramienta y su aplicación respondiendo a Claude con los resultados de evaluar esa solicitud.
El uso de computadora requiere un entorno informático aislado donde Claude pueda interactuar de forma segura con aplicaciones e internet. Este entorno incluye:
Pantalla virtual: Un servidor de pantalla X11 virtual (usando Xvfb) que renderiza la interfaz de escritorio que Claude verá a través de capturas de pantalla y controlará con acciones de ratón/teclado.
Entorno de escritorio: Una interfaz de usuario ligera con gestor de ventanas (Mutter) y panel (Tint2) ejecutándose en Linux, que proporciona una interfaz gráfica consistente para que Claude interactúe.
Aplicaciones: Aplicaciones Linux preinstaladas como Firefox, LibreOffice, editores de texto, y gestores de archivos que Claude puede usar para completar tareas.
Implementaciones de herramientas: Código de integración que traduce solicitudes de herramientas abstractas de Claude (como "mover ratón" o "tomar captura de pantalla") en operaciones reales en el entorno virtual.
Bucle de agente: Un programa que maneja la comunicación entre Claude y el entorno, enviando las acciones de Claude al entorno y devolviendo los resultados (capturas de pantalla, salidas de comandos) de vuelta a Claude.
Cuando usa el uso de computadora, Claude no se conecta directamente a este entorno. En su lugar, su aplicación:
Para seguridad y aislamiento, la implementación de referencia ejecuta todo esto dentro de un contenedor Docker con asignaciones de puerto apropiadas para ver e interactuar con el entorno.
Hemos construido una implementación de referencia que incluye todo lo que necesita para comenzar rápidamente con el uso de computadora:
El núcleo del uso de computadora es el "bucle de agente" - un ciclo donde Claude solicita acciones de herramientas, su aplicación las ejecuta, y devuelve resultados a Claude. Aquí hay un ejemplo 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-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})El bucle continúa hasta que Claude responda sin solicitar ninguna herramienta (finalización de tarea) o se alcance el límite máximo de iteraciones. Esta salvaguarda previene posibles bucles infinitos que podrían resultar en costos de API inesperados.
Recomendamos probar la implementación de referencia antes de leer el resto de esta documentación.
Aquí hay algunos consejos sobre cómo obtener las mejores salidas de calidad:
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 el uso de computadora dentro de aplicaciones que requieren inicio de sesión aumenta el riesgo de malos resultados como resultado de inyección de indicaciones. Por favor revise nuestra guía sobre mitigación de inyecciones de indicaciones antes de proporcionar al modelo credenciales de inicio de sesión.Si encuentra repetidamente un conjunto claro de problemas o sabe de antemano las tareas que Claude necesitará completar, use la indicación del sistema para proporcionar a Claude consejos explícitos o instrucciones sobre cómo hacer las tareas exitosamente.
Cuando una de las herramientas definidas por Anthropic se solicita a través de la API de Claude, se genera una indicación del sistema específica para el uso de computadora. Es similar a la indicación del sistema de uso de herramientas pero comienza con:
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 con el uso regular de herramientas, el campo system_prompt proporcionado por el usuario aún se respeta y se usa en la construcción de la indicación del sistema combinada.
La herramienta de uso de computadora soporta estas acciones:
Acciones básicas (todas las versiones)
[x, y]Acciones mejoradas (computer_20250124)
Disponibles en modelos Claude 4 y Claude Sonnet 3.7:
Acciones mejoradas (computer_20251124)
Disponibles en Claude Opus 4.6 y Claude Opus 4.5:
computer_20250124enable_zoom: true en la definición de herramienta. Toma un parámetro region con coordenadas [x1, y1, x2, y2] definiendo las esquinas superior-izquierda e inferior-derecha del área a inspeccionar.| Parámetro | Requerido | Descripción |
|---|---|---|
type | Sí | Versión de herramienta (computer_20251124, computer_20250124, o computer_20241022) |
name | Sí | Debe ser "computer" |
display_width_px | Sí | Ancho de pantalla en píxeles |
display_height_px | Sí | Alto de pantalla en píxeles |
display_number | No | Número de pantalla para entornos X11 |
enable_zoom | No | Habilitar acción de zoom (computer_20251124 solo). Establezca en true para permitir que Claude haga zoom en regiones específicas de la pantalla. Predeterminado: false |
Importante: La herramienta de uso de computadora debe ser ejecutada explícitamente por su aplicación - Claude no puede ejecutarla directamente. Usted es responsable de implementar la captura de pantalla, movimientos del ratón, entradas de teclado, y otras acciones basadas en las solicitudes de Claude.
Claude Sonnet 3.7 introdujo una nueva capacidad de "pensamiento" que le permite ver el proceso de razonamiento del modelo mientras trabaja a través de tareas complejas. Esta función le ayuda a entender cómo Claude está abordando un problema y puede ser particularmente valiosa para depuración o propósitos educativos.
Para habilitar el pensamiento, agregue un parámetro thinking a su solicitud de API:
"thinking": {
"type": "enabled",
"budget_tokens": 1024
}El parámetro budget_tokens especifica cuántos tokens Claude puede usar para pensar. Esto se resta de su presupuesto general de max_tokens.
Cuando el pensamiento está habilitado, Claude devolverá su proceso de razonamiento como parte de la respuesta, lo que puede ayudarle a:
Aquí hay un ejemplo de cómo podría verse la salida de pensamiento:
[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...La herramienta de uso de computadora puede combinarse con otras herramientas para crear flujos de trabajo de automatización más poderosos. Esto es particularmente útil cuando necesita:
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
}
}'La implementación de referencia está diseñada para ayudarte a comenzar con el uso de computadora. Incluye todos los componentes necesarios para que Claude use una computadora. Sin embargo, puedes construir tu propio entorno para el uso de computadora según tus necesidades. Necesitarás:
tool_use usando tus implementaciones de herramientasLa herramienta de uso de computadora se implementa como una herramienta sin esquema. Al usar esta herramienta, no necesitas proporcionar un esquema de entrada como con otras herramientas; el esquema está integrado en el modelo de Claude y no se puede modificar.
Configurar tu entorno informático
Crea una pantalla virtual o conéctate a una pantalla existente con la que Claude interactuará. Esto típicamente implica configurar Xvfb (X Virtual Framebuffer) o tecnología similar.
Implementar manejadores de acciones
Crea funciones para manejar cada tipo de acción que Claude podría 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"])
# ... manejar otras accionesProcesar las llamadas de herramientas de Claude
Extrae y ejecuta llamadas de herramientas de las respuestas de Claude:
for content in response.content:
if content.type == "tool_use":
action = content.input["action"]
result = handle_computer_action(action, content.input)
# Devolver resultado a Claude
tool_result = {
"type": "tool_result",
"tool_use_id": content.id,
"content": result
}Implementar el bucle del agente
Crea un bucle que continúe hasta que Claude complete la tarea:
while True:
response = client.beta.messages.create(...)
# Verificar si Claude usó alguna herramienta
tool_results = process_tool_calls(response)
if not tool_results:
# Sin más uso de herramientas, tarea completada
break
# Continuar conversación con resultados de herramientas
messages.append({"role": "user", "content": tool_results})Al implementar la herramienta de uso de computadora, pueden ocurrir varios errores. Aquí te mostramos cómo manejarlos:
La API limita las imágenes a un máximo de 1568 píxeles en el borde más largo y aproximadamente 1,15 megapíxeles en total (consulta cambio de tamaño de imagen para obtener detalles). Por ejemplo, una pantalla de 1512x982 se reduce a aproximadamente 1330x864. Claude analiza esta imagen más pequeña y devuelve coordenadas en ese espacio, pero tu herramienta ejecuta clics en el espacio de pantalla original.
Esto puede causar que las coordenadas de clic de Claude pierdan sus objetivos a menos que manejes la transformación de coordenadas.
Para solucionar esto, cambia el tamaño de las capturas de pantalla tú mismo y escala las coordenadas de Claude hacia arriba:
import math
def get_scale_factor(width, height):
"""Calcular el factor de escala para cumplir con las restricciones de la 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)
# Al capturar pantalla
scale = get_scale_factor(screen_width, screen_height)
scaled_width = int(screen_width * scale)
scaled_height = int(screen_height * scale)
# Cambiar el tamaño de la imagen a dimensiones escaladas antes de enviar a Claude
screenshot = capture_and_resize(scaled_width, scaled_height)
# Al manejar las coordenadas de Claude, escálalas hacia arriba
def execute_click(x, y):
screen_x = x / scale
screen_y = y / scale
perform_click(screen_x, screen_y)La funcionalidad de uso de computadora está en beta. Aunque las capacidades de Claude son de vanguardia, los desarrolladores deben ser conscientes de sus limitaciones:
left_mouse_down, left_mouse_up y nuevo soporte de teclas modificadoras. La selección de celdas puede ser más confiable usando estos controles granulares y combinando teclas modificadoras con clics.Siempre revisa y verifica cuidadosamente las acciones y registros de uso de computadora de Claude. No uses Claude para tareas que requieran precisión perfecta o información sensible del usuario sin supervisión 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.
Comienza rápidamente con nuestra implementación completa basada en Docker
Obtén más información sobre el uso de herramientas y la creación de herramientas personalizadas
Was this page helpful?