Claude 4 Opus y Sonnet, junto con Claude Sonnet 3.7 y Claude Sonnet 3.5 (nuevo), son capaces de interactuar con herramientas que pueden manipular un entorno de escritorio de computadora. Los modelos Claude 4 utilizan versiones actualizadas de herramientas optimizadas para la nueva arquitectura. Claude Sonnet 3.7 introduce herramientas adicionales y te permite habilitar el pensamiento, dándote más información sobre el proceso de razonamiento del modelo.

El uso de computadora es una función beta. Ten en cuenta que el uso de computadora presenta riesgos únicos que son distintos de las funciones de API estándar o interfaces de chat. Estos riesgos aumentan cuando se utiliza el uso de computadora para interactuar con internet. Para minimizar los riesgos, considera tomar precauciones como:

  1. Utiliza una máquina virtual dedicada o un contenedor con privilegios mínimos para prevenir ataques directos al sistema o accidentes.
  2. Evita dar al modelo acceso a datos sensibles, como información de inicio de sesión de cuentas, para prevenir el robo de información.
  3. Limita el acceso a internet a una lista de dominios permitidos para reducir la exposición a contenido malicioso.
  4. Pide a un humano que confirme decisiones que puedan resultar en consecuencias significativas en el mundo real, así como cualquier tarea que requiera consentimiento afirmativo, como aceptar cookies, ejecutar transacciones financieras o aceptar términos de servicio.

En algunas circunstancias, Claude seguirá comandos encontrados en el contenido incluso si entran en conflicto con las instrucciones del usuario. Por ejemplo, instrucciones para Claude en páginas web o contenidas en imágenes pueden anular instrucciones o hacer que Claude cometa errores. Sugerimos tomar precauciones para aislar a Claude de datos y acciones sensibles para evitar riesgos relacionados con la inyección de instrucciones.

Hemos entrenado al modelo para resistir estas inyecciones de instrucciones y hemos añadido una capa adicional de defensa. Si utilizas nuestras herramientas de uso de computadora, ejecutaremos automáticamente clasificadores en tus instrucciones para marcar posibles casos de inyecciones de instrucciones. Cuando estos clasificadores identifiquen posibles inyecciones de instrucciones en capturas de pantalla, dirigirán automáticamente al modelo para que solicite 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 proceso), así que si deseas optar por no utilizarla y desactivarla, por favor contáctanos.

Seguimos sugiriendo tomar precauciones para aislar a Claude de datos y acciones sensibles para evitar riesgos relacionados con la inyección de instrucciones.

Finalmente, por favor informa a los usuarios finales de los riesgos relevantes y obtén su consentimiento antes de habilitar el uso de computadora en tus propios productos.

Implementación de referencia para uso de computadora

Comienza rápidamente con nuestra implementación de referencia para 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 Claude 4 como para Claude Sonnet 3.7. Asegúrate de obtener la última versión del repositorio para acceder a estas nuevas funciones.

Por favor, utiliza este formulario para proporcionar comentarios sobre la calidad de las respuestas del modelo, la API en sí, o la calidad de la documentación - ¡estamos ansiosos por escuchar tus opiniones!

Aquí hay un ejemplo de cómo proporcionar herramientas de uso de computadora a Claude utilizando la API de Messages:

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-20250514",
    "max_tokens": 1024,
    "tools": [
      {
        "type": "computer_20250124",
        "name": "computer",
        "display_width_px": 1024,
        "display_height_px": 768,
        "display_number": 1
      },
      {
        "type": "text_editor_20250429",
        "name": "str_replace_based_edit_tool"
      },
      {
        "type": "bash_20250124",
        "name": "bash"
      }
    ],
    "messages": [
      {
        "role": "user",
        "content": "Save a picture of a cat to my desktop."
      }
    ],
    "thinking": {
      "type": "enabled",
      "budget_tokens": 1024
    }
  }'

Cómo funciona el uso de computadora

1. Proporciona a Claude herramientas de uso de computadora y una instrucción del usuario

  • Añade herramientas de uso de computadora definidas por Anthropic a tu solicitud de API.
  • Incluye una instrucción del usuario que podría requerir estas herramientas, por ejemplo, “Guarda una imagen de un gato en mi escritorio.”

2. Claude decide usar una herramienta

  • Claude carga las definiciones almacenadas de herramientas de uso de computadora y evalúa si alguna herramienta puede ayudar con la consulta del usuario.
  • Si es así, Claude construye una solicitud de uso de herramienta con el formato adecuado.
  • La respuesta de la API tiene un stop_reason de tool_use, señalando la intención de Claude.

3. Extrae la entrada de la herramienta, evalúa la herramienta en una computadora y devuelve los resultados

  • En tu lado, extrae el nombre de la herramienta y la entrada de la solicitud de Claude.
  • Usa la herramienta en un contenedor o Máquina Virtual.
  • Continúa la conversación con un nuevo mensaje de user que contiene un bloque de contenido tool_result.

4. Claude continúa llamando a herramientas de uso de computadora hasta que haya completado la tarea

  • Claude analiza los resultados de la herramienta para determinar si se necesita más uso de herramientas o si la tarea se ha completado.
  • Si Claude decide que necesita otra herramienta, responde con otro stop_reason de tool_use y deberías volver al paso 3.
  • De lo contrario, elabora una respuesta de texto para el usuario.

Nos referimos a la repetición de los pasos 3 y 4 sin entrada del usuario como el “bucle del agente” - es decir, Claude respondiendo con una solicitud de uso de herramienta y tu aplicación respondiendo a Claude con los resultados de evaluar esa solicitud.

El entorno de computación

El uso de computadora requiere un entorno de computación aislado donde Claude pueda interactuar de manera segura con aplicaciones y la web. Este entorno incluye:

  1. 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.

  2. 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.

  3. Aplicaciones: Aplicaciones Linux preinstaladas como Firefox, LibreOffice, editores de texto y gestores de archivos que Claude puede usar para completar tareas.

  4. 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.

  5. 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) a Claude.

Cuando usas el uso de computadora, Claude no se conecta directamente a este entorno. En su lugar, tu aplicación:

  1. Recibe las solicitudes de uso de herramientas de Claude
  2. Las traduce en acciones en tu entorno de computación
  3. Captura los resultados (capturas de pantalla, salidas de comandos, etc.)
  4. Devuelve estos resultados a Claude

Para seguridad y aislamiento, la implementación de referencia ejecuta todo esto dentro de un contenedor Docker con los mapeos de puertos apropiados para ver e interactuar con el entorno.


Cómo implementar el uso de computadora

Comienza con nuestra implementación de referencia

Hemos construido una implementación de referencia que incluye todo lo que necesitas para comenzar rápidamente con el uso de computadora:

Entendiendo el bucle multi-agente

El núcleo del uso de computadora es el “bucle de agente” - un ciclo donde Claude solicita acciones de herramientas, tu 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,  # Añadir límite de iteraciones para prevenir bucles infinitos
):
    """
    Un bucle de agente simple para interacciones de uso de computadora de Claude.

    Esta función maneja el ida y vuelta entre:
    1. Enviar mensajes de usuario a Claude
    2. Claude solicitando usar herramientas
    3. Tu aplicación ejecutando esas herramientas
    4. Enviando 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 - deberías tenerlas ya 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 principal del agente (con límite de iteraciones 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
        )

        # Añadir la respuesta de Claude al historial de conversación
        response_content = response.content
        messages.append({"role":  "assistant", "content": response_content})

        # Comprobar si Claude usó alguna herramienta
        tool_results = []
        for block in response_content:
            if block.type == "tool_use":
                # En una aplicación real, ejecutarías 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 usaron herramientas, Claude ha terminado - devolver los mensajes finales
        if not tool_results:
            return messages

        # Añadir resultados de herramientas a los mensajes para la siguiente iteración con Claude
        messages.append({"role": "user", "content": tool_results})

El bucle continúa hasta que Claude responde sin solicitar ninguna herramienta (completando la tarea) o se alcanza el límite máximo de iteraciones. Esta salvaguarda previene posibles bucles infinitos que podrían resultar en costos de API inesperados.

Para cada versión de las herramientas, debes usar la bandera beta correspondiente en tu solicitud de API:

Recomendamos probar la implementación de referencia antes de leer el resto de esta documentación.

Optimiza el rendimiento del modelo con instrucciones

Aquí hay algunos consejos sobre cómo obtener las mejores salidas de calidad:

  1. Especifica tareas simples y bien definidas y proporciona instrucciones explícitas para cada paso.
  2. Claude a veces asume los resultados de sus acciones sin verificarlos explícitamente. Para evitar esto, puedes instruir a Claude con Después de cada paso, toma una captura de pantalla y evalúa cuidadosamente si has logrado el resultado correcto. Muestra explícitamente tu razonamiento: "He evaluado el paso X..." Si no es correcto, inténtalo de nuevo. Solo cuando confirmes que un paso se ejecutó correctamente deberías pasar al siguiente.
  3. Algunos elementos de la interfaz de usuario (como menús desplegables y barras de desplazamiento) pueden ser difíciles de manipular para Claude usando movimientos del ratón. Si experimentas esto, intenta instruir al modelo para que use atajos de teclado.
  4. Para tareas repetibles o interacciones de interfaz de usuario, incluye capturas de pantalla de ejemplo y llamadas a herramientas de resultados exitosos en tu instrucción.
  5. Si necesitas que el modelo inicie sesión, proporciónale el nombre de usuario y la contraseña en tu instrucción dentro de etiquetas xml como <robot_credentials>. Usar el uso de computadora dentro de aplicaciones que requieren inicio de sesión aumenta el riesgo de resultados negativos como consecuencia de la inyección de instrucciones. Por favor, revisa nuestra guía sobre mitigación de inyecciones de instrucciones antes de proporcionar al modelo credenciales de inicio de sesión.

Si encuentras repetidamente un conjunto claro de problemas o sabes de antemano las tareas que Claude necesitará completar, usa el mensaje del sistema para proporcionar a Claude consejos explícitos o instrucciones sobre cómo realizar las tareas con éxito.

Mensajes del sistema

Cuando se solicita una de las herramientas definidas por Anthropic a través de la API de Anthropic, se genera un mensaje del sistema específico para el uso de computadora. Es similar al mensaje del sistema de uso de herramientas pero comienza con:

Tienes acceso a un conjunto de funciones que puedes usar para responder a la pregunta del usuario. Esto incluye acceso a un entorno de computación aislado. Actualmente NO tienes la capacidad de inspeccionar archivos o interactuar con recursos externos, excepto invocando las funciones a continuación.

Al igual que con el uso regular de herramientas, el campo system_prompt proporcionado por el usuario sigue siendo respetado y utilizado en la construcción del mensaje del sistema combinado.

Comprende las herramientas definidas por Anthropic

Como beta, estas definiciones de herramientas están sujetas a cambios.

Hemos proporcionado un conjunto de herramientas que permiten a Claude usar computadoras de manera efectiva. Al especificar una herramienta definida por Anthropic, los campos description y tool_schema no son necesarios ni permitidos.

Las herramientas definidas por Anthropic son ejecutadas por el usuario

Las herramientas definidas por Anthropic son definidas por Anthropic, pero tú debes evaluar explícitamente los resultados de la herramienta y devolver los tool_results a Claude. Como con cualquier herramienta, el modelo no ejecuta automáticamente la herramienta.

Proporcionamos un conjunto de herramientas definidas por Anthropic, cada una con versiones optimizadas para Claude 4, Claude Sonnet 3.7 y Claude Sonnet 3.5:

El campo type identifica la herramienta y sus parámetros para fines de validación, el campo name es el nombre de la herramienta expuesto al modelo.

Si quieres instruir al modelo para que use una de estas herramientas, puedes referirte explícitamente a la herramienta por el campo name. El campo name debe ser único dentro de la lista de herramientas; no puedes definir una herramienta con el mismo nombre que una herramienta definida por Anthropic en la misma llamada a la API.

No recomendamos definir herramientas con los nombres de herramientas definidas por Anthropic. Aunque todavía puedes redefinir herramientas con estos nombres (siempre que el nombre de la herramienta sea único en tu bloque tools), hacerlo puede resultar en un rendimiento degradado del modelo.

Habilita la capacidad de pensamiento en Claude 4 y Claude Sonnet 3.7

Claude Sonnet 3.7 introdujo una nueva capacidad de “pensamiento” que te permite ver el proceso de razonamiento del modelo mientras trabaja en tareas complejas. Esta función te 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, añade un parámetro thinking a tu solicitud de API:

"thinking": {
  "type": "enabled",
  "budget_tokens": 1024
}

El parámetro budget_tokens especifica cuántos tokens puede usar Claude para pensar. Esto se resta de tu presupuesto general de max_tokens.

Cuando el pensamiento está habilitado, Claude devolverá su proceso de razonamiento como parte de la respuesta, lo que puede ayudarte a:

  1. Entender el proceso de toma de decisiones del modelo
  2. Identificar posibles problemas o conceptos erróneos
  3. Aprender del enfoque de Claude para resolver problemas
  4. Obtener más visibilidad en operaciones complejas de múltiples pasos

Aquí hay un ejemplo de cómo podría verse la salida de pensamiento:

[Thinking]
Necesito guardar una imagen de un gato en el escritorio. Vamos a 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

Empecemos tomando una captura de pantalla para ver qué está disponible...

Combina el uso de computadora con otras herramientas

Puedes combinar el uso regular de herramientas con las herramientas definidas por Anthropic para el uso de computadora.

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-20250514",
    "max_tokens": 1024,
    "tools": [
      {
        "type": "computer_20250124",
        "name": "computer",
        "display_width_px": 1024,
        "display_height_px": 768,
        "display_number": 1
      },
      {
        "type": "text_editor_20250124",
        "name": "str_replace_editor"
      },
      {
        "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
    }
  }'

Construye un entorno personalizado de uso de computadora

La implementación de referencia está destinada a 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:

  • Un entorno virtualizado o en contenedor adecuado para el uso de computadora con Claude
  • Una implementación de al menos una de las herramientas de uso de computadora definidas por Anthropic
  • Un bucle de agente que interactúe con la API de Anthropic y ejecute los resultados de tool_use usando tus implementaciones de herramientas
  • Una API o interfaz de usuario que permita la entrada del usuario para iniciar el bucle de agente

Comprende las limitaciones del uso de computadora

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:

  1. Latencia: la latencia actual del uso de computadora para interacciones humano-IA puede ser demasiado lenta en comparación con las acciones de computadora dirigidas por humanos regulares. Recomendamos centrarse en casos de uso donde la velocidad no sea crítica (por ejemplo, recopilación de información en segundo plano, pruebas automatizadas de software) en entornos de confianza.
  2. Precisión y fiabilidad de la visión por computadora: Claude puede cometer errores o alucinar al generar coordenadas específicas mientras genera acciones. Claude Sonnet 3.7 introduce la capacidad de pensamiento que puede ayudarte a entender el razonamiento del modelo e identificar posibles problemas.
  3. Precisión y fiabilidad en la selección de herramientas: Claude puede cometer errores o alucinar al seleccionar herramientas mientras genera acciones o tomar acciones inesperadas para resolver problemas. Además, la fiabilidad puede ser menor al interactuar con aplicaciones especializadas o múltiples aplicaciones a la vez. Recomendamos que los usuarios instruyan al modelo cuidadosamente cuando soliciten tareas complejas.
  4. Fiabilidad del desplazamiento: Aunque Claude Sonnet 3.5 (nuevo) tenía limitaciones con el desplazamiento, Claude Sonnet 3.7 introduce acciones de desplazamiento dedicadas con control de dirección que mejora la fiabilidad. El modelo ahora puede desplazarse explícitamente en cualquier dirección (arriba/abajo/izquierda/derecha) por una cantidad específica.
  5. Interacción con hojas de cálculo: Los clics del ratón para la interacción con hojas de cálculo han mejorado en Claude Sonnet 3.7 con la adición de acciones de control del ratón más precisas como left_mouse_down, left_mouse_up, y nuevo soporte para teclas modificadoras. La selección de celdas puede ser más fiable usando estos controles detallados y combinando teclas modificadoras con clics.
  6. Creación de cuentas y generación de contenido en plataformas sociales y de comunicación: Aunque Claude visitará sitios web, estamos limitando su capacidad para crear cuentas o generar y compartir contenido o de otra manera participar en la suplantación humana en sitios web y plataformas de redes sociales. Podemos actualizar esta capacidad en el futuro.
  7. Vulnerabilidades: Vulnerabilidades como jailbreaking o inyección de instrucciones pueden persistir en sistemas de IA de frontera, incluida la API beta de uso de computadora. En algunas circunstancias, Claude seguirá comandos encontrados en el contenido, a veces incluso en conflicto con las instrucciones del usuario. Por ejemplo, instrucciones para Claude en páginas web o contenidas en imágenes pueden anular instrucciones o hacer que Claude cometa errores. Recomendamos: a. Limitar el uso de computadora a entornos de confianza como máquinas virtuales o contenedores con privilegios mínimos b. Evitar dar acceso de uso de computadora a cuentas o datos sensibles sin supervisión estricta c. Informar a los usuarios finales de los riesgos relevantes y obtener su consentimiento antes de habilitar o solicitar permisos necesarios para las funciones de uso de computadora en tus aplicaciones
  8. Acciones inapropiadas o ilegales: Según los términos de servicio de Anthropic, no debes emplear el uso de computadora para violar ninguna ley o nuestra Política de Uso Aceptable.

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.


Precios

Consulta la documentación de precios de uso de herramientas para una explicación detallada de cómo se cobran las solicitudes de API de Uso de Herramientas de Claude.

Como un subconjunto de solicitudes de uso de herramientas, las solicitudes de uso de computadora tienen el mismo precio que cualquier otra solicitud de API de Claude.

También incluimos automáticamente un mensaje del sistema especial para el modelo, que habilita el uso de computadora.

ModeloElección de herramientaRecuento de tokens del mensaje del sistema
Claude 4 Opus & Sonnetauto
any, tool
466 tokens
499 tokens
Claude Sonnet 3.7auto
any, tool
466 tokens
499 tokens
Claude Sonnet 3.5 (nuevo)auto
any, tool
466 tokens
499 tokens

Además de los tokens base, se necesitan los siguientes tokens de entrada adicionales para las herramientas definidas por Anthropic:

HerramientaTokens de entrada adicionales
computer_20250124 (Claude 4)735 tokens
computer_20250124 (Claude Sonnet 3.7)735 tokens
computer_20241022 (Claude Sonnet 3.5)683 tokens
text_editor_20250429 (Claude 4)700 tokens
text_editor_20250124 (Claude Sonnet 3.7)700 tokens
text_editor_20241022 (Claude Sonnet 3.5)700 tokens
bash_20250124 (Claude 4)245 tokens
bash_20250124 (Claude Sonnet 3.7)245 tokens
bash_20241022 (Claude Sonnet 3.5)245 tokens

Si habilitas el pensamiento con Claude 4 o Claude Sonnet 3.7, los tokens utilizados para el pensamiento se contarán contra tu presupuesto de max_tokens basado en los budget_tokens que especifiques en el parámetro de pensamiento.