Claude 3.7 Sonnet y Claude 3.5 Sonnet (nuevo) son capaces de interactuar con herramientas que pueden manipular un entorno de escritorio de computadora. Claude 3.7 Sonnet introduce herramientas adicionales y permite habilitar el pensamiento, brindá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 estándar de la API o las interfaces de chat. Estos riesgos aumentan cuando se usa la computadora para interactuar con internet. Para minimizar los riesgos, considera tomar precauciones como:

  1. Usar una máquina virtual dedicada o contenedor con privilegios mínimos para prevenir ataques directos al sistema o accidentes.
  2. Evitar 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. Limitar el acceso a internet a una lista blanca de dominios para reducir la exposición a contenido malicioso.
  4. Pedir confirmación humana para 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, las instrucciones de 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 prompts.

Finalmente, por favor informa a los usuarios finales sobre 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 para Claude 3.7 Sonnet. Asegúrate de obtener la última versión del repositorio para acceder a estas nuevas funciones.

Por favor usa 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 de ti!

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


Cómo funciona el uso de computadora

1. Proporciona a Claude herramientas de uso de computadora y un prompt de usuario

  • Agrega herramientas de uso de computadora definidas por Anthropic a tu solicitud de API. - Incluye un prompt de 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 correctamente formateada. - 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 resultados

  • En tu extremo, 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 debes 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 mouse/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 abstractas de herramientas de Claude (como “mover mouse” 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

Por 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:

Entender el bucle multi-agente

El núcleo del uso de computadora es el “bucle del 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,  # Agregar 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 ir y venir entre:
    1. Enviar mensajes de usuario a Claude
    2. Claude solicitando usar herramientas
    3. Tu app 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 - 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 opcional de pensamiento (para Claude 3.7 Sonnet)
        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 usó alguna herramienta
        tool_results = []
        for block in response_content:
            if block.type == "tool_use":
                # En una app real, ejecutarías la herramienta aquí
                # Por ejemplo: result = run_tool(block.name, block.input)
                result = {"result": "Herramienta ejecutada exitosamente"}
                
                # 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
            
        # 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 responde sin solicitar ninguna herramienta (completación de 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.

Optimizar el rendimiento del modelo con prompting

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 resultados de sus acciones sin verificar explícitamente sus resultados. Para prevenir esto puedes indicar 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 pensamiento: "He evaluado el paso X..." Si no es correcto, intenta de nuevo. Solo cuando confirmes que un paso se ejecutó correctamente debes 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 mouse. Si experimentas esto, intenta indicar al modelo que use atajos de teclado.
  4. Para tareas repetibles o interacciones con la interfaz de usuario, incluye capturas de pantalla y llamadas a herramientas de ejemplo de resultados exitosos en tu prompt.
  5. Si necesitas que el modelo inicie sesión, proporciónale el nombre de usuario y contraseña en tu prompt 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 malos resultados como consecuencia de la inyección de prompts. Por favor revisa nuestra guía sobre mitigación de inyecciones de prompts 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 prompt del sistema para proporcionar a Claude consejos o instrucciones explícitas sobre cómo hacer las tareas exitosamente.

Prompts del sistema

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

Tienes acceso a un conjunto de funciones que puedes usar para responder 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 aún se respeta y se usa en la construcción del prompt del sistema combinado.

Entender 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 efectivamente. 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, con cada herramienta teniendo versiones optimizadas tanto para Claude 3.5 Sonnet (nuevo) como para Claude 3.7 Sonnet:

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

Si quieres indicar al modelo 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 defin

idas por Anthropic. Si bien aún 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.

Habilitar la capacidad de pensamiento en Claude 3.7 Sonnet

Claude 3.7 Sonnet introduce una nueva capacidad de “pensamiento” que te permite ver el proceso de razonamiento del modelo mientras trabaja en tareas complejas. Esta característica 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, agrega 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 problemas o conceptos erróneos potenciales
  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:

[Pensando]
Necesito guardar una imagen 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 empezar tomando una captura de pantalla para ver qué está disponible...

Combinar uso de computadora con otras herramientas

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

Construir 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 uso de computadora según tus necesidades. Necesitarás:

  • Un entorno virtualizado o containerizado adecuado para uso de computadora con Claude
  • Una implementación de al menos una de las herramientas definidas por Anthropic para uso de computadora
  • 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

Entender las limitaciones del uso de computadora

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:

  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. Recomendamos enfocarse 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 confiables.
  2. Precisión y confiabilidad de la visión por computadora: Claude puede cometer errores o alucinar al generar coordenadas específicas mientras genera acciones. Claude 3.7 Sonnet introduce la capacidad de pensamiento que puede ayudarte a entender el razonamiento del modelo e identificar problemas potenciales.
  3. Precisión y confiabilidad 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 confiabilidad puede ser menor al interactuar con aplicaciones especializadas o múltiples aplicaciones a la vez. Recomendamos que los usuarios indiquen cuidadosamente al modelo cuando soliciten tareas complejas.
  4. Confiabilidad del desplazamiento: Si bien Claude 3.5 Sonnet (nuevo) tenía limitaciones con el desplazamiento, Claude 3.7 Sonnet introduce acciones dedicadas de desplazamiento con control de dirección que mejora la confiabilidad. 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 mouse para interacción con hojas de cálculo han mejorado en Claude 3.7 Sonnet con la adición de acciones de control del mouse 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 confiable 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: Si bien 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 de humanos a través de sitios web y plataformas de redes sociales. Podemos actualizar esta capacidad en el futuro.
  7. Vulnerabilidades: Las vulnerabilidades como el jailbreaking o la inyección de prompts pueden persistir en los 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, las instrucciones de 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 confiables 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 sobre 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 prompt de sistema especial para el modelo, que habilita el uso de computadora.

ModeloElección de herramientaConteo de tokens del prompt de sistema
Claude 3.5 Sonnet (nuevo)auto
any, tool
466 tokens
499 tokens
Claude 3.7 Sonnetauto
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_20241022 (Claude 3.5 Sonnet)683 tokens
computer_20250124 (Claude 3.7 Sonnet)735 tokens
text_editor_20241022 (Claude 3.5 Sonnet)700 tokens
text_editor_20250124 (Claude 3.7 Sonnet)700 tokens
bash_20241022 (Claude 3.5 Sonnet)245 tokens
bash_20250124 (Claude 3.7 Sonnet)245 tokens

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