View a markdown version of this page

Acción del sistema operativo del navegador - Amazon Bedrock AgentCore

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 terminal de WebSocket-based automatización utiliza el DevTools protocolo Chrome (CDP) para interactuar con el navegador, InvokeBrowser funciona a nivel del sistema operativo y permite realizar acciones que el CDP no puede gestionar, como interactuar con los cuadros de diálogo de impresión, los atajos de teclado, los menús contextuales que aparecen al hacer clic con el botón derecho del ratón, las alertas y la captura de capturas de pantalla a pantalla completa. JavaScript

Descripción general de

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

  • WebSocket-based automatización (CDP): utiliza el DevTools protocolo Chrome a través de una WebSocket conexión. Es ideal para las tareas de automatización estándar 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. Bibliotecas como Playwright y Browser-Use 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 situaciones en las 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 atajos de teclado (por ejemplo, ctrl+a, ctrl+p) que activen el comportamiento OS-level

  • Interactúe con los menús contextuales representados por el sistema operativo al hacer clic con el botón derecho

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

  • Realice operaciones de arrastrar y soltar que abarquen todas las ventanas del navegador o entre el navegador y el escritorio

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

Acciones admitidas

InvokeBrowser apoya los siguientes tipos de acciones a través del BrowserAction sindicato. Se debe establecer exactamente un miembro de 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 x 819 píxeles, que se puede configurar al iniciar una sesión mediante 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: -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 multibyte) se omiten durante la entrada.

  • Sin validación del nombre de clave: las keyShortcut acciones keyPress y no validan si se admiten los nombres de clave especificados. Si proporciona un nombre de clave no reconocido, la API devuelve el estado CORRECTO sin realizar la acción prevista. Consulta los nombres de clave compatibles que se indican más arriba.

  • Nombres de clave admitidos: los nombres de las claves keyPress y keyShortcut las acciones deben estar en minúsculas. Las claves admitidas incluyen caracteres individuales (a0z, —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 en ERROR 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" } } }'