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.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 (obsoleto)El uso de computadora es una característica 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 para 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.5 | computer_20251124 | computer-use-2025-11-24 |
| Todos los demás modelos compatibles | computer_20250124 | computer-use-2025-01-24 |
Claude Opus 4.5 introduce 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 característica beta con riesgos únicos distintos de las características estándar de API. Estos riesgos se intensifican 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 utiliza nuestras herramientas de uso de computadora, ejecutaremos automáticamente clasificadores en sus indicaciones para marcar posibles instancias de inyecciones de indicaciones. Cuando estos clasificadores identifiquen 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 desactivarlo, 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 para ambos modelos Claude 4 y Claude Sonnet 3.7. Asegúrese de extraer la última versión del repositorio para acceder a estas nuevas características.
Por favor use este formulario para proporcionar retroalimentación 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í se explica cómo comenzar con el uso de computadora:
import anthropic
client = anthropic.Anthropic()
response = client.beta.messages.create(
model="claude-sonnet-4-5", # o otro modelo compatible
max_tokens=1024,
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"
}
],
messages=[{"role": "user", "content": "Guarda una foto de un gato en mi escritorio."}],
betas=["computer-use-2025-01-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.
1. Proporcione a Claude la herramienta de uso de computadora y una indicación del usuario
2. Claude decide usar la herramienta de uso de computadora
stop_reason de tool_use, señalando la intención de Claude.3. Extraiga la entrada de la herramienta, evalúe la herramienta en una computadora, y devuelva resultados
user que contenga un bloque de contenido tool_result.4. Claude continúa llamando herramientas de uso de computadora hasta que complete 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 las 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 utiliza 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, # Agregue límite de iteración para prevenir bucles infinitos
):
"""
Un bucle de agente simple para interacciones de uso de computadora de Claude.
Esta función maneja el ir y venir entre:
1. Enviar mensajes del usuario a Claude
2. Claude solicitando usar herramientas
3. Su aplicación ejecutando esas herramientas
4. Enviar resultados de herramientas de vuelta a Claude
"""
# Configurar herramientas y 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"
# Configurar herramientas - ya debería tenerlas inicializadas en otro 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"}
]
# Bucle de agente principal (con límite de iteración para prevenir costos de API descontrolados)
iterations = 0
while True and iterations < max_iterations:
iterations += 1
# Configurar parámetro de pensamiento opcional (para Claude Sonnet 3.7)
thinking = None
if thinking_budget:
thinking = {"type": "enabled", "budget_tokens": thinking_budget}
# Llamar a la API de Claude
response = client.beta.messages.create(
model=model,
max_tokens=max_tokens,
messages=messages,
tools=tools,
betas=[beta_flag],
thinking=thinking
)
# Agregar la respuesta de Claude al historial de conversación
response_content = response.content
messages.append({"role": "assistant", "content": response_content})
# Verificar si Claude utilizó alguna herramienta
tool_results = []
for block in response_content:
if block.type == "tool_use":
# En una aplicación real, ejecutaría la herramienta aquí
# Por ejemplo: result = run_tool(block.name, block.input)
result = {"result": "Tool executed successfully"}
# Formatear el resultado para Claude
tool_results.append({
"type": "tool_result",
"tool_use_id": block.id,
"content": result
})
# Si no se utilizaron herramientas, Claude ha terminado - devolver los mensajes finales
if not tool_results:
return messages
# Agregar resultados de herramientas a mensajes para la siguiente iteración con 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 iteración. 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 los mejores resultados de calidad:
Después de cada paso, tome una captura de pantalla y evalúe cuidadosamente si ha logrado el resultado correcto. Muestre explícitamente su pensamiento: "He evaluado el paso X..." Si no es correcto, intente de nuevo. Solo cuando confirme que un paso se ejecutó correctamente debe pasar al siguiente.<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 de uso de computadora. Es similar a la indicación del sistema de uso de herramientas pero comienza con:
Tiene acceso a un conjunto de funciones que puede usar para responder la pregunta del usuario. Esto incluye acceso a un entorno informático aislado. Actualmente NO tiene la capacidad de inspeccionar archivos o interactuar con recursos externos, excepto invocando las siguientes funciones.
Como con el uso de herramientas regular, el campo system_prompt proporcionado por el usuario aún se respeta y se utiliza en la construcción de la indicación del sistema combinada.
La herramienta de uso de computadora admite 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.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 de pantalla específicas. 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 en tareas complejas. Esta característica lo 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:
[Pensamiento]
Necesito guardar una foto de un gato en el escritorio. Déjame desglosar esto en pasos:
1. Primero, tomaré una captura de pantalla para ver qué hay en el escritorio
2. Luego buscaré un navegador web para buscar imágenes de gatos
3. Después de encontrar una imagen adecuada, necesitaré guardarla en el escritorio
Déjame comenzar tomando una captura de pantalla para ver qué está disponible...La herramienta de uso de computadora se puede combinar 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-sonnet-4-5",
"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": "Obtener el clima actual en una ubicación determinada",
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "La ciudad y estado, por ejemplo San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "La unidad de temperatura, ya sea 'celsius' o 'fahrenheit'"
}
},
"required": ["location"]
}
}
],
"messages": [
{
"role": "user",
"content": "Encuentra vuelos desde San Francisco a un lugar con clima más cálido."
}
],
"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. Así es 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 más 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):
"""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)La funcionalidad de uso de computadora está en beta. Si bien 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 de grano fino 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 de usuario sensible 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.