View a markdown version of this page

Integraciones marco para pagos AgentCore - 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.

Integraciones marco para pagos AgentCore

AgentCore Los pagos se integran con los marcos de agentes más populares para proporcionar un procesamiento de pagos automatizado. Cada marco utiliza un patrón de integración diferente:

  • Strands Agents : Plugin-based integración mediante ganchos

  • LangGraph— Middleware-based integración que resume las llamadas a las herramientas

Strands Agents

El complemento de AgentCore pagos proporciona un procesamiento de pagos automatizado para los agentes de Strands. Es compatible con el protocolo x402 Payment Required, que permite a los agentes gestionar automáticamente las respuestas HTTP 402.

Instalación

pip install 'bedrock-agentcore[strands-agents]'

Configura y usa el complemento

from strands import Agent from strands_tools import http_request from bedrock_agentcore.payments.integrations.config import AgentCorePaymentsPluginConfig from bedrock_agentcore.payments.integrations.strands.plugin import AgentCorePaymentsPlugin # Configure the plugin config = AgentCorePaymentsPluginConfig( payment_manager_arn="arn:aws:bedrock-agentcore:us-west-2:123456789012:payment-manager/pm-abc123", user_id="test-user-123", payment_instrument_id="payment-instrument-XJU4RSQP9VO0ler", payment_session_id="payment-session-xuzrnUCd7RT725G", region="us-west-2", ) # Create the plugin plugin = AgentCorePaymentsPlugin(config=config) # Create agent with the plugin agent = Agent( system_prompt="You are a helpful assistant that can access paid APIs.", tools=[http_request], plugins=[plugin], ) # Use the agent -- 402 responses are automatically handled agent("access https://drvd12nxpcyd5.cloudfront.net/market-recap")

Cómo gestionar las interrupciones de pago

Cuando el procesamiento del pago falla, el complemento almacena el error y genera una interrupción. Tu aplicación debería gestionar estas interrupciones:

result = agent("Access the premium endpoint at https://api.example.com/premium") while result.stop_reason == "interrupt": responses = [] for interrupt in result.interrupts: if interrupt.name.startswith("payment-failure-"): reason = interrupt.reason exception_type = reason.get("exceptionType") if exception_type == "PaymentInstrumentConfigurationRequired": plugin.config.update_payment_instrument_id("payment-instrument-new123") responses.append({ "interruptResponse": { "interruptId": interrupt.id, "response": "Payment instrument configured. Please retry.", } }) elif exception_type == "PaymentSessionConfigurationRequired": plugin.config.update_payment_session_id("payment-session-new456") responses.append({ "interruptResponse": { "interruptId": interrupt.id, "response": "Payment session configured. Please retry.", } }) else: responses.append({ "interruptResponse": { "interruptId": interrupt.id, "response": f"Payment failed: {reason.get('exceptionMessage')}", } }) result = agent(responses)

Desactivar el pago automático

Para acceder únicamente a las herramientas de visibilidad de los pagos sin la ejecución automática de los pagos (por ejemplo, para mantener al día una lógica humana o personalizada antes de realizar cualquier transacción de pago), desactiva el procesamiento automático:

config = AgentCorePaymentsPluginConfig( payment_manager_arn="arn:aws:bedrock-agentcore:us-east-1:123456789012:payment-manager/pm-abc123", user_id="user-123", region="us-east-1", auto_payment=False, # Disable automatic 402 processing )

Preferencias de red

Puedes especificar las redes blockchain preferidas para el procesamiento de pagos:

config = AgentCorePaymentsPluginConfig( payment_manager_arn="arn:aws:bedrock-agentcore:us-east-1:123456789012:payment-manager/pm-abc123", user_id="user-123", payment_instrument_id="payment-instrument-xyz789", payment_session_id="payment-session-def456", region="us-east-1", network_preferences_config=["eip155:8453", "base-sepolia", "solana-mainnet"], )

Si no se especifica, el sistema usa un orden de preferencias predeterminado que prioriza la red principal y la base de Solana (Ethereum L2) para obtener tarifas de transacción bajas.

Opciones de configuración

En la siguiente tabla se enumeran los parámetros: AgentCorePaymentsPluginConfig

Parámetro Tipo Obligatorio Descripción

payment_manager_arn

str

Sí

ARN del recurso Bedrock AgentCore Payment Manager

user_id

str

Sí

Identificador único para el usuario

payment_instrument_id

Optional[str]

No

ID del instrumento de pago. Se puede configurar más adelante mediante update_payment_instrument_id()

payment_session_id

Optional[str]

No

ID de sesión de pago. Se puede configurar más adelante mediante update_payment_session_id()

region

Optional[str]

No

AWS región para el administrador de pagos

network_preferences_config

Optional[list[str]]

No

Lista de CAIP-2 identificadores de red por orden de preferencia

auto_payment

bool

No (valor predeterminado: True)

Si se deben procesar automáticamente los 402 requisitos de pago

max_interrupt_retries

int

No (valor predeterminado: 5)

Número máximo de reintentos de interrupción por uso de la herramienta. Establézcalo en 0 para deshabilitar las interrupciones

agent_name

Optional[str]

No

El nombre del agente se propaga mediante el encabezado HTTP en las llamadas a la API

Built-in herramientas de agente

El complemento registra tres herramientas que los agentes pueden usar para consultar la información de pago durante el tiempo de ejecución:

Herramienta Description (Descripción)

get_payment_instrument

Recupera detalles sobre un instrumento de pago específico

list_payment_instruments

Enumera todos los instrumentos de pago de un usuario

get_payment_session

Recupera los detalles de una sesión de pago (presupuesto, estado, caducidad)

Estas herramientas permiten a los agentes tomar decisiones informadas sobre los métodos de pago y los límites de pago durante las conversaciones. Para obtener más detalles y ejemplos integrales, consulte la documentación de Strands Agents.

LangGraph

El middleware de AgentCore pagos proporciona un procesamiento de pagos automatizado para LangGraph los agentes. Es compatible con el protocolo x402 Payment Required, que permite a los agentes gestionar automáticamente las respuestas HTTP 402.

Instalación

pip install 'bedrock-agentcore[langgraph]'

Configure y utilice el middleware

from langchain.agents import create_agent from bedrock_agentcore.payments.integrations.langgraph import ( AgentCorePaymentsConfig, AgentCorePaymentsMiddleware, ) config = AgentCorePaymentsConfig( payment_manager_arn="arn:aws:bedrock-agentcore:us-west-2:123456789012:payment-manager/pm-abc123", user_id="test-user-123", payment_instrument_id="payment-instrument-XJU4RSQP9VO0ler", region="us-west-2", auto_session=True, ) payments = AgentCorePaymentsMiddleware(config) agent = create_agent( model="us.anthropic.claude-sonnet-4-20250514-v1:0", tools=[], middleware=[payments], ) result = agent.invoke({"messages": [{"role": "user", "content": "access https://drvd12nxpcyd5.cloudfront.net/market-recap"}]}) print(result)

Cómo funciona el middleware

El middleware intercepta las llamadas de la herramienta y gestiona el flujo de pagos del x402 en seis pasos:

  1. El agente realiza una llamada a la herramienta que da como resultado una solicitud HTTP a un punto final de pago.

  2. El terminal responde con el protocolo HTTP 402 (se requiere el pago) y una carga de pago x402.

  3. El middleware intercepta la respuesta 402 y extrae los requisitos de pago.

  4. El middleware utiliza el instrumento ProcessPayment de pago y la sesión para generar una prueba criptográfica.

  5. El middleware reintenta la solicitud original con el encabezado del comprobante de pago adjunto.

  6. El punto final valida la prueba y devuelve el contenido solicitado al agente.

Gestión de errores con las devoluciones de llamadas

Usa la on_payment_error devolución de llamada para gestionar correctamente los errores de pago:

from bedrock_agentcore.payments.integrations.langgraph import ( AgentCorePaymentsConfig, AgentCorePaymentsMiddleware, ErrorResolution, ) def handle_payment_error(error, context): """Custom error handler for payment failures.""" if "InsufficientFunds" in str(error): return ErrorResolution.STOP # Stop the agent return ErrorResolution.RETRY # Retry with updated config config = AgentCorePaymentsConfig( payment_manager_arn="arn:aws:bedrock-agentcore:us-west-2:123456789012:payment-manager/pm-abc123", user_id="test-user-123", payment_instrument_id="payment-instrument-XJU4RSQP9VO0ler", region="us-west-2", auto_session=True, on_payment_error=handle_payment_error, )

La ErrorResolution enumeración ofrece las siguientes opciones:

Valor Comportamiento

RETRY

Vuelva a intentar el pago con la configuración actual

STOP

Detenga el procesamiento y devuelva el error al agente

SKIP

Omita el pago y continúe sin el contenido de pago

Desactivar el pago automático

Para inhabilitar el procesamiento automático de pagos y solicitar la aprobación explícita del pago:

config = AgentCorePaymentsConfig( payment_manager_arn="arn:aws:bedrock-agentcore:us-west-2:123456789012:payment-manager/pm-abc123", user_id="test-user-123", region="us-west-2", auto_payment=False, # Disable automatic 402 processing )

FalseEn auto_payment ese momento, el middleware envía 402 respuestas al agente sin procesarlas, lo que permite la lógica personalizada o la aprobación humana antes del pago.

Lista de herramientas de pago permitidas

Restrinja las herramientas que pueden activar los pagos automáticos:

config = AgentCorePaymentsConfig( payment_manager_arn="arn:aws:bedrock-agentcore:us-west-2:123456789012:payment-manager/pm-abc123", user_id="test-user-123", payment_instrument_id="payment-instrument-XJU4RSQP9VO0ler", region="us-west-2", auto_session=True, tool_allowlist=["http_request", "web_fetch", "mcp_call"], )

Solo las llamadas a herramientas desde las herramientas de la lista de pagos permitidos activan el procesamiento automático de los pagos. Las llamadas a herramientas desde otras herramientas se realizan sin interceptar el pago.

Preferencias de red

Puedes especificar las redes blockchain preferidas para el procesamiento de pagos:

config = AgentCorePaymentsConfig( payment_manager_arn="arn:aws:bedrock-agentcore:us-west-2:123456789012:payment-manager/pm-abc123", user_id="test-user-123", payment_instrument_id="payment-instrument-XJU4RSQP9VO0ler", region="us-west-2", auto_session=True, network_preferences_config=["eip155:8453", "base-sepolia", "solana-mainnet"], )

Si no se especifica, el sistema usa un orden de preferencias predeterminado que prioriza la red principal y la base de Solana (Ethereum L2) para obtener tarifas de transacción bajas.

Opciones de configuración

En la siguiente tabla se enumeran los parámetros: AgentCorePaymentsConfig

Parámetro Tipo Obligatorio Descripción

payment_manager_arn

str

Sí

ARN del recurso Bedrock AgentCore Payment Manager

user_id

str

Sí

Identificador único para el usuario

payment_instrument_id

Optional[str]

No

ID del instrumento de pago

payment_session_id

Optional[str]

No

ID de sesión de pago. No es obligatorio cuando auto_session es True

region

Optional[str]

No

AWS región para el administrador de pagos

auto_session

bool

No (valor predeterminado: False)

Crea o reutiliza automáticamente una sesión de pago

auto_session_expiry_minutes

int

No (valor predeterminado: 60)

Tiempo de caducidad de las sesiones creadas automáticamente en minutos

auto_session_max_spend

str

No (valor predeterminado: "5.00")

Importe máximo de gasto para las sesiones creadas automáticamente

auto_session_currency

str

No (valor predeterminado: "USD")

Moneda para los límites de gasto de las sesiones creadas automáticamente

auto_payment

bool

No (valor predeterminado: True)

Si se deben procesar automáticamente los 402 requisitos de pago

network_preferences_config

Optional[list[str]]

No

Lista de CAIP-2 identificadores de red en orden de preferencia

tool_allowlist

Optional[list[str]]

No

Lista de nombres de herramientas que pueden activar pagos automáticos. Si no se configuran, todas las herramientas pueden activar los pagos

max_retries

int

No (valor predeterminado: 3)

Número máximo de reintentos de pago por llamada a la herramienta

on_payment_error

Optional[Callable]

No

Se invoca la función de devolución de llamada en caso de error en el pago

on_payment_success

Optional[Callable]

No

La función de devolución de llamada se invoca cuando el pago se realiza correctamente

on_payment_start

Optional[Callable]

No

La función de devolución de llamada se invoca antes de que comience el procesamiento del pago

agent_name

Optional[str]

No

El nombre del agente se propaga a través del encabezado HTTP en las llamadas a la API

endpoint_url

Optional[str]

No

URL de punto final personalizada para el servicio de AgentCore pagos

Built-in herramientas de agente

El middleware registra cinco herramientas que los agentes pueden utilizar para consultar y gestionar la información de pago en tiempo de ejecución:

Herramienta Description (Descripción)

get_payment_instrument

Recupera detalles sobre un instrumento de pago específico

list_payment_instruments

Enumera todos los instrumentos de pago de un usuario

get_payment_session

Recupera los detalles de una sesión de pago (presupuesto, estado, caducidad)

get_payment_balance

Recupera el saldo actual de un instrumento de pago

list_payment_sessions

Enumera todas las sesiones de pago de un usuario

Sincronización frente a asincrónica

El LangGraph middleware admite la ejecución sincrónica y asincrónica:

Sincrónico:

result = agent.invoke({"messages": [{"role": "user", "content": "access the paid endpoint"}]})

Asincrónico:

result = await agent.ainvoke({"messages": [{"role": "user", "content": "access the paid endpoint"}]})

Ambos modos admiten las mismas opciones de configuración y comportamiento de procesamiento de pagos. Utilice la tecnología asincrónica cuando se integre con marcos asíncronos o cuando gestione varios agentes simultáneos.