View a markdown version of this page

Acción del sistema operativo del navegador - Base amazónica AgentCore

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Acción del sistema operativo del navegador

La InvokeBrowser API proporciona un control directo a nivel del sistema operativo sobre las sesiones del navegador Amazon Bedrock AgentCore . Si bien el punto final de WebSocket-based automatización utiliza el DevTools protocolo Chrome (CDP) para interactuar con el navegador, InvokeBrowser funciona a nivel del sistema operativo, lo que permite realizar acciones que CDP no puede gestionar, como interactuar con los cuadros de diálogo de impresión, los métodos abreviados del teclado, los menús contextuales con el botón derecho, las alertas y la captura de pantallas a pantalla completa. JavaScript

Descripción general de

El navegador Amazon Bedrock ofrece dos formas de interactuar con una sesión de AgentCore navegador:

  • WebSocket-based automatización (CDP): utiliza el DevTools protocolo Chrome a través de una WebSocket conexión. Esto es ideal para las tareas estándar de automatización del navegador, como navegar por las páginas, hacer clic en los elementos del DOM, rellenar formularios y extraer el contenido de la página. Las bibliotecas como Playwright y Browseruse se conectan a través de este punto final.

  • OS-level actions (InvokeBrowser): utiliza una API REST para realizar interacciones a nivel del sistema operativo mediante acciones del ratón, el teclado y las capturas de pantalla. Esto complementa el CDP al gestionar los escenarios en los que la automatización a nivel del navegador es insuficiente.

Úselo InvokeBrowser cuando su agente necesite:

  • Interactúe con los cuadros de diálogo nativos del sistema operativo, como los cuadros de diálogo de impresión, los cuadros de upload/download diálogo de archivos o las solicitudes de autenticación que se encuentran fuera del DOM del navegador

  • Descarte las JavaScript alertas, confirmaciones o solicitudes que bloqueen la ejecución del CDP

  • Utilice métodos abreviados de teclado (por ejemplo, ctrl+a, ctrl+p) para activar el comportamiento OS-level

  • Interactúe con los menús contextuales creados con el botón derecho del ratón por el sistema operativo

  • Realice capturas de pantalla completas del escritorio que incluyan contenido externo a la ventana gráfica del navegador, como notificaciones del sistema operativo o diseños de ventanas múltiples

  • Realice operaciones de arrastrar y soltar en distintas ventanas del navegador o entre el navegador y el escritorio

InvokeBrowser sigue el mismo patrón que InvokeCodeInterpreter: una única operación unificada con un envío de tipos de acción. Envías una solicitud con exactamente una acción y recibes el resultado correspondiente.

Acciones admitidas

InvokeBrowser admite los siguientes tipos de acciones a través de la BrowserAction unión. Se debe establecer exactamente un miembro de la acción por solicitud.

Acciones del ratón

Para todas las acciones del ratón, los valores de las coordenadas (x,y) deben estar estrictamente dentro de los límites de la ventana gráfica de la sesión del navegador. Los rangos válidos son 1 < x < ventana gráfica Width-2 y 1 < y < ventana gráfica. Height-2 El tamaño predeterminado de la ventana gráfica es de 1456 × 819 píxeles, que se puede configurar al iniciar una sesión con el parámetro. viewPort

Action Campos obligatorios Campos opcionales Description (Descripción)

mouseClick

x(Entero), (Entero) y

button(MouseButton), clickCount (Entero)

Haga clic en las coordenadas especificadas. clickCount : 1—10. button : IZQUIERDA, DERECHA, CENTRO.

mouseMove

x(Entero), y (Entero)

—

Mueva el cursor a las coordenadas especificadas.

mouseDrag

startX(Entero), startY (Entero), endX (Entero), endY (Entero)

button (MouseButton)

Arrastre desde la posición inicial hasta la final. buttonel valor predeterminado es IZQUIERDA.

mouseScroll

x(Entero), y (Entero)

deltaX(Entero), deltaY (Entero)

Desplázate hasta la posición especificada. deltaX/deltaY: de -1000 a 1000. El negativo se deltaY desplaza hacia abajo.

Acciones del teclado

Action Campos obligatorios Campos opcionales Description (Descripción)

keyType

text (Cadena)

—

Escriba una cadena de texto. Longitud máxima: 10 000 caracteres.

keyPress

key (Cadena)

presses(Entero)

Pulse una tecla N veces. presses : 1—100. El valor predeterminado es 1.

keyShortcut

keys (KeyList)

—

Pulse una combinación de teclas (por ejemplo,["ctrl", "s"]). Máximo 5 teclas.

Acción de captura de pantalla

Action Campos obligatorios Campos opcionales Description (Descripción)

screenshot

—

format (ScreenshotFormat)

Capture todo el escritorio del sistema operativo (no solo la ventana gráfica del navegador). Formato: solo PNG.

Consideraciones

  • ASCII-only entrada de texto: la keyType acción solo admite caracteres ASCII. Non-ASCII los caracteres (como los caracteres Unicode o de varios bytes) se omiten durante la entrada.

  • Sin validación de nombres de clave: las keyShortcut acciones keyPress y no validan si se admiten los nombres de clave especificados. Si proporcionas un nombre de clave no reconocido, la API mostrará un estado de ÉXITO sin realizar la acción prevista. Consulte los nombres de las claves compatibles que figuran más arriba.

  • Nombres de clave compatibles: los nombres de las claves keyPress y keyShortcut las acciones deben estar en minúsculas. Las claves admitidas incluyen caracteres individuales (a—z, 0 —9) y claves con nombre, comoenter,,,tab,space,backspace,delete,, escapectrl,alt. shift

Formatos de solicitud y respuesta

Solicitud

POST /browsers/{browserIdentifier}/sessions/invoke HTTP/1.1 x-amzn-browser-session-id: sessionId Content-type: application/json

El cuerpo de la solicitud contiene un action campo con exactamente un miembro del conjunto de BrowserAction uniones:

{ "action": { "mouseClick": { "x": 100, "y": 200, "button": "LEFT", "clickCount": 1 } } }

Respuesta

sessionIdSe devuelve a través del encabezado de x-amzn-browser-session-id respuesta. El cuerpo de la respuesta contiene un result campo con el resultado de la acción correspondiente.

En caso de éxito:

{ "result": { "mouseClick": { "status": "SUCCESS", "error": null } } }

En caso de error, el status campo se establece como FALLIDO y contiene una descripción del error. error

Ejemplos

Los siguientes ejemplos muestran cómo invocar acciones del navegador mediante la AWS CLI, el AWS SDK para Python (Boto3) y la API.

ejemplo
AWS CLI
  1. Para hacer clic en una posición específica:

    aws bedrock-agentcore invoke-browser \ --region <Region> \ --browser-identifier "aws.browser.v1" \ --session-id "<your-session-id>" \ --action '{"mouseClick": {"x": 100, "y": 200, "button": "LEFT", "clickCount": 1}}'

    Para escribir texto:

    aws bedrock-agentcore invoke-browser \ --region <Region> \ --browser-identifier "aws.browser.v1" \ --session-id "<your-session-id>" \ --action '{"keyType": {"text": "Hello, world!"}}'

    Para pulsar un método abreviado de teclado:

    aws bedrock-agentcore invoke-browser \ --region <Region> \ --browser-identifier "aws.browser.v1" \ --session-id "<your-session-id>" \ --action '{"keyShortcut": {"keys": ["ctrl", "s"]}}'

    Para hacer una captura de pantalla:

    aws bedrock-agentcore invoke-browser \ --region <Region> \ --browser-identifier "aws.browser.v1" \ --session-id "<your-session-id>" \ --action '{"screenshot": {"format": "PNG"}}'
Boto3
  1. Para hacer clic en una posición específica:

    response = dp_client.invoke_browser( browserIdentifier="aws.browser.v1", sessionId="<your-session-id>", action={ "mouseClick": { "x": 100, "y": 200, "button": "LEFT", "clickCount": 1 } } ) print(f"Status: {response['result']['mouseClick']['status']}")

    Para escribir texto:

    response = dp_client.invoke_browser( browserIdentifier="aws.browser.v1", sessionId="<your-session-id>", action={ "keyType": { "text": "Hello, world!" } } )

    Para hacer una captura de pantalla y guardarla:

    import base64 response = dp_client.invoke_browser( browserIdentifier="aws.browser.v1", sessionId="<your-session-id>", action={ "screenshot": { "format": "PNG" } } ) if response['result']['screenshot']['status'] == 'SUCCESS': image_data = base64.b64decode(response['result']['screenshot']['data']) with open("screenshot.png", "wb") as f: f.write(image_data) print("Screenshot saved as screenshot.png")
API
  1. Para hacer clic en una posición específica:

    awscurl -X POST \ "https://bedrock-agentcore.<Region>.amazonaws.com/browsers/aws.browser.v1/sessions/invoke" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -H "x-amzn-browser-session-id: <your-session-id>" \ --service bedrock-agentcore \ --region <Region> \ -d '{ "action": { "mouseClick": { "x": 100, "y": 200, "button": "LEFT", "clickCount": 1 } } }'

    Para hacer una captura de pantalla:

    awscurl -X POST \ "https://bedrock-agentcore.<Region>.amazonaws.com/browsers/aws.browser.v1/sessions/invoke" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -H "x-amzn-browser-session-id: <your-session-id>" \ --service bedrock-agentcore \ --region <Region> \ -d '{ "action": { "screenshot": { "format": "PNG" } } }'