View a markdown version of this page

Usando o AgentCore navegador com o Playwright - Amazon Bedrock AgentCore

Usando o AgentCore navegador com o Playwright

Você pode usar a estrutura de automação do Playwright com a ferramenta Browser:

Etapa 1: instalar dependências

Crie uma pasta de projeto (se você não criou uma antes) e instale os pacotes necessários:

mkdir agentcore-browser-quickstart cd agentcore-browser-quickstart python3 -m venv .venv source .venv/bin/activate
nota

No Windows, use: .venv\Scripts\activate

Instale os pacotes obrigatórios:

pip install bedrock-agentcore playwright boto3 nest-asyncio

Esses pacotes fornecem:

  • bedrock-agentcore: O SDK para as AgentCore ferramentas Amazon Bedrock, incluindo o navegador AgentCore

  • playwright: biblioteca Python para automação de navegadores

  • boto3: AWS SDK para Python (Boto3) para criar, configurar e gerenciar serviços AWS

  • nest-asyncio: Permite executar loops de eventos asyncio dentro de loops de eventos existentes

Etapa 2: controlar o navegador com o Playwright

Você pode usar o Browser diretamente sem uma estrutura de agente ou um LLM. Isso é útil quando você deseja controle programático sobre a automação do navegador. O Amazon Bedrock AgentCore fornece integração com o Playwright para automação do navegador.

Exemplo de dramaturgo assíncrono

Crie um arquivo chamado direct_browser_playwright.py e adicione o seguinte código:

from playwright.async_api import async_playwright, Playwright, BrowserType from bedrock_agentcore.tools.browser_client import browser_session import asyncio async def run(playwright: Playwright): # Create and maintain a browser session with browser_session('us-west-2') as client: # Get WebSocket URL and authentication headers ws_url, headers = client.generate_ws_headers() # Connect to the remote browser chromium: BrowserType = playwright.chromium browser = await chromium.connect_over_cdp( ws_url, headers=headers ) # Get the browser context and page context = browser.contexts[0] page = context.pages[0] try: # Navigate to a website await page.goto("https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/what-is-bedrock-agentcore.html") # Print the page title title = await page.title() print(f"Page title: {title}") # Keep the session alive for 2 minutes to allow viewing print("\n\nBrowser session is active. Check the AWS Console for live view.") await asyncio.sleep(120) finally: # Clean up resources await page.close() await browser.close() async def main(): async with async_playwright() as playwright: await run(playwright) # Run the async function if __name__ == "__main__": asyncio.run(main())

Exemplo de sincronização de dramaturgo com visualização ao vivo

Como alternativa, você pode usar a API de sincronização com o servidor de visualização ao vivo integrado:

from playwright.sync_api import sync_playwright, Playwright, BrowserType from bedrock_agentcore.tools.browser_client import browser_session from browser_viewer import BrowserViewerServer import time def run(playwright: Playwright): # Create the browser session and keep it alive with browser_session('us-west-2') as client: ws_url, headers = client.generate_ws_headers() # Start viewer server viewer = BrowserViewerServer(client, port=8005) viewer_url = viewer.start(open_browser=True) # Connect using headers chromium: BrowserType = playwright.chromium browser = chromium.connect_over_cdp( ws_url, headers=headers ) context = browser.contexts[0] page = context.pages[0] try: page.goto("https://amazon.com/") print(page.title()) time.sleep(120) finally: page.close() browser.close() with sync_playwright() as playwright: run(playwright)

Execute o script

Execute qualquer um dos scripts:

python direct_browser_playwright.py

Saída esperada

Você deve ver o título da página impresso (por exemplo,Page title: What is Amazon Bedrock AgentCore? - Amazon Bedrock AgentCore). O script mantém a sessão do navegador ativa por 2 minutos antes de fechar.

Ambos os exemplos:

  • Crie uma sessão gerenciada do navegador usando o Amazon Bedrock AgentCore Browser

  • Conecte-se ao navegador Chrome remoto usando o DevTools Protocolo Chrome (CDP) da Playwright

  • Navegue até a AgentCore documentação e imprima o título da página

  • Mantenha a sessão ativa por 2 minutos, permitindo que você a visualize no AWS console

  • Feche corretamente o navegador e limpe os recursos