View a markdown version of this page

Utilisation AgentCore du navigateur avec Playwright - Amazon Bedrock AgentCore

Utilisation AgentCore du navigateur avec Playwright

Vous pouvez utiliser le framework d'automatisation de Playwright avec le Browser Tool :

Étape 1 : installer les dépendances

Créez un dossier de projet (si vous n'en avez pas créé un auparavant) et installez les packages requis :

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

Sous Windows, utilisez : .venv\Scripts\activate

Installez les packages requis :

pip install bedrock-agentcore playwright boto3 nest-asyncio

Ces packages fournissent :

  • bedrock-agentcore: Le SDK pour les AgentCore outils Amazon Bedrock, y compris le navigateur AgentCore

  • playwright: bibliothèque Python pour l'automatisation des navigateurs

  • boto3: AWS SDK pour Python (Boto3) pour créer, configurer et gérer des services AWS

  • nest-asyncio: Permet d'exécuter des boucles d'événements asyncio dans des boucles d'événements existantes

Étape 2 : Contrôler le navigateur avec Playwright

Vous pouvez utiliser Browser directement sans infrastructure d'agent ni LLM. Cela est utile lorsque vous souhaitez contrôler par programmation l'automatisation du navigateur. Amazon Bedrock AgentCore intègre Playwright pour automatiser le navigateur.

Exemple de dramaturge asynchrone

Créez un fichier nommé direct_browser_playwright.py et ajoutez le code suivant :

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())

Synchroniser un exemple de dramaturge avec une vue en direct

Vous pouvez également utiliser l'API de synchronisation avec le serveur Live View intégré :

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)

Exécutez le script

Exécutez l'un des scripts suivants :

python direct_browser_playwright.py

Résultat attendu

Vous devriez voir le titre de la page imprimé (par exemple,Page title: What is Amazon Bedrock AgentCore? - Amazon Bedrock AgentCore). Le script maintient la session du navigateur active pendant 2 minutes avant de se fermer.

Les deux exemples :

  • Créez une session de navigateur gérée à l'aide du navigateur Amazon Bedrock AgentCore

  • Connectez-vous au navigateur Chrome distant à l'aide du DevTools protocole Chrome (CDP) de Playwright

  • Accédez à la AgentCore documentation et imprimez le titre de la page

  • Maintenez la session active pendant 2 minutes, ce qui vous permet de la visualiser dans la AWS console

  • Fermez correctement le navigateur et nettoyez les ressources