View a markdown version of this page

Integración de AgentCore pagos con Browser Tool - 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.

Integración de AgentCore pagos con Browser Tool

Su agente puede acceder al contenido de pago de x402 de dos maneras: mediante la herramienta de navegación o mediante llamadas HTTP estándar.

Integración con la herramienta de navegación (Playwright)

La herramienta de navegación proporciona a tu agente una sesión de AgentCore navegador Chromium gestionada y sin interrupciones durante el AgentCore tiempo de ejecución. Tu agente se conecta WebSocket mediante el DevTools protocolo Chrome (CDP), lo que le permite navegar por las páginas JavaScript, ejecutar e interceptar las respuestas HTTP a nivel de red. Para empezar, consulta la guía de incorporación del navegador.

Esta opción utiliza el SDK de Strands junto con la herramienta de navegación y la herramienta de pagos para navegar por sitios web y procesar los pagos. Cuando un agente utiliza la herramienta de navegación para navegar por sitios web, utiliza las capacidades de interceptación de respuestas de Playwright para detectar automáticamente los sitios de pago:

  1. Navegación por el navegador: el agente utiliza browse_with_payment una herramienta desarrollada por Playwright.

  2. Detección automática de 402: Playwright intercepta todas las respuestas HTTP y activa el controlador de respuestas del agente para detectar 402 códigos de estado.

  3. Extracción del x402: las herramientas de pago analizan automáticamente los detalles del pago del x402 a partir de la respuesta. headers/body Esto también se puede hacer mediante la lógica empresarial del agente.

  4. Procesamiento de AgentCore pagos: el procesador de pagos crea firmas criptográficas utilizando carteras CDP configuradas.

  5. Reintentar: las herramientas de pago insertan los encabezados de autorización y vuelven a intentar la solicitud en la misma sesión del navegador.

from agentcore.payments import PaymentClient from agentcore.browser import browser_tool @tool async def browse_with_payment(url: str, auto_pay: bool = True) -> dict: payment_requirements = None async def handle_response(response): nonlocal payment_requirements if response.status == 402: payment_requirements = await extract_x402_requirements(response) async def add_payment_header(route, request): headers = {**request.headers, **payment_result["authorization"]} await route.continue_(headers=headers) async with async_playwright() as p: # 1. Browser setup browser = await p.chromium.connect_over_cdp(AGENTCORE_BROWSER_WS_URL) page = await browser.contexts[0].new_page() # 2. Register response interceptor page.on("response", handle_response) # 3. Initial navigation (handle_response runs automatically here) response = await page.goto(url) # 4. Payment processing logic (runs AFTER navigation completes) if response.status == 402 and payment_requirements and auto_pay: payment_result = payment_client.process_payment( payment_session, payment_instrument, payment_requirements=payment_requirements ) if payment_result["success"]: await page.route("**/*", add_payment_header) response = await page.goto(url) # Retry with payment else: raise PaymentError(f"Payment failed: {payment_result['error_message']}") # 5. Capture content, cleanup, and return content = await page.content() await browser.close() return {"content": content, "status": response.status}

Non-browser Integración HTTP

Para las llamadas directas a la API y los escenarios sin conexión directa, los desarrolladores pueden crear una lógica de herramientas personalizada utilizando el SDK de Strands junto con una biblioteca de solicitudes HTTP estándar para procesar los pagos con la detección x402:

  1. El agente utiliza una herramienta personalizada para realizar llamadas HTTP directas.

  2. La herramienta monitorea los códigos de estado de respuesta HTTP para detectar 402.

  3. La herramienta extrae los requisitos de la versión 402 y procesa el pago.

  4. La herramienta reintenta la solicitud HTTP con los encabezados de autorización de pago.

@tool async def make_payment(method, url, headers, body) -> dict: # Make initial HTTP request response = requests.request(method, url, headers=headers, data=body) # Check for 402 Payment Required if response.status_code == 402: payment_requirements = extract_x402_requirements(response) payment_result = payment_client.process_payment( payment_session, payment_instrument, payment_requirements=payment_requirements ) if payment_result["success"]: # Retry request with payment authorization headers.update(payment_result["authorization"]) response = requests.request(method, url, headers=headers, data=body) else: raise PaymentError(f"Payment failed: {payment_result['error_message']}")