Cómo darle una billetera a un agente de IA sin terminar en la bancarrota
Imagina que le has pedido a un asistente de IA que compre un libro raro, pague un servidor o compre una entrada para una conferencia. El script llega al formulario de pago, y entonces—callejón sin salida. Entregar los datos de tu tarjeta principal a un agente es aterrador: una alucinación o un analizador defectuoso, y el dinero termina en un lugar que no debería. Obligar a una persona a completar manualmente cada compra anula el propósito de la automatización.
Los ingenieros de Stripe han lanzado una utilidad interesante llamada link-cli. Resuelve este problema a través de Link wallet emitiendo tarjetas virtuales de un solo uso o tokens para transacciones específicas únicamente después de la confirmación del propietario.
En este artículo, desglosaremos cómo funciona la herramienta, cómo conectarla a un LLM mediante el protocolo MCP y qué obstáculos evitar.
Cómo funciona el proceso
Todo el flujo de trabajo gira en torno a la entidad de solicitud de gasto. El agente no accede a tu cuenta bancaria y nunca ve las tarjetas guardadas.
El flujo es directo:
- El agente analiza la página de la tienda, construye un carrito y recopila los parámetros del pedido.
- Mediante CLI, se crea una solicitud de compra especificando el comerciante, el monto y el contexto detallado que explica el propósito del gasto.
- Una notificación push llega a tu teléfono en la aplicación Link solicitando confirmación.
- Después de la aprobación, la CLI recibe una tarjeta virtual o token temporal.
- El agente inserta las credenciales generadas en el formulario de pago y completa la compra.
El parámetro --context no es solo para mostrar. Stripe requiere una descripción detallada de al menos 100 caracteres para que sepas exactamente para qué es el cargo en la notificación push. La confirmación debe realizarse en exactamente 10 minutos, después de lo cual la solicitud caduca.
Formatos de credenciales
La utilidad puede devolver tres tipos de datos de pago dependiendo de dónde y cómo el agente esté realizando el pago.
La primera opción es una tarjeta virtual estándar de un solo uso (PAN). Funciona con cualquier tienda en línea que use un formulario de pago HTML estándar, incluso si el sitio nunca ha escuchado hablar de Stripe.
La segunda opción es un Token de Pago Compartido (SPT). Esto es para escenarios donde el comerciante soporta el Protocolo de Pagos Automatizados (MPP). Aquí, el pago se procesa mediante programación a través de HTTP 402 sin emular la entrada de datos del navegador.
La tercera opción es un Token de Pago Link (LPT). Si el pago se ejecuta en Stripe y la página contiene un bloque especial para agentes de IA, la CLI genera un token directamente vinculado a la cuenta del comerciante.
Seguridad de logs y trabajo con MCP
El principal problema al manejar pagos en LLMs es la filtración de credenciales. Si la utilidad envía el número completo de tarjeta y CVC a stdout, estos datos permanecerán en el contexto del modelo, los prompts del sistema, los logs del terminal y las transcripciones del agente.
Los desarrolladores de Stripe resolvieron esto con el argumento --output-file. El comando guarda los datos completos de la tarjeta en un archivo local con permisos de acceso 0600, mientras envía JSON enmascarado a la salida estándar:
El agente toma la ruta del archivo, la pasa a un ejecutor de navegador interno como Playwright, y solo la marca de la tarjeta y los últimos cuatro dígitos permanecen en los logs.
Para integración con marcos de trabajo como Claude Code o Cursor, la utilidad puede ejecutarse como servidor MCP (Model Context Protocol):
Si el agente se ejecuta en un contenedor aislado o en un servidor remoto, el comando link-cli serve inicia un endpoint HTTP local para MCP.
Por cierto, para comunicarse con modelos de lenguaje, el formato toon se usa por defecto. Esta es una salida de texto compacta sin ruido de sintaxis JSON que ahorra tokens en la ventana de contexto.
Límites y restricciones
La herramienta está en etapas iniciales, por lo que el equipo de Stripe incorporó límites de seguridad estrictos:
- El monto máximo de compra única está limitado a $500 (50,000 centavos).
- El límite de gasto diario también es de $500, con un tope mensual de $20,000.
- Las tarjetas o tokens emitidos solo están activos durante 12 horas desde el momento en que se crea la solicitud.
- No puede haber más de 10 solicitudes activas confirmadas simultáneamente.
Para experimentos locales y pruebas de integración, existe el indicador --test. Genera números de tarjeta de prueba (por ejemplo, 4000009990001984) y no cobra fondos reales de la cuenta Link.
Dónde se aplica esto
La utilidad fue creada para un nicho específico: scripts autónomos y asistentes que periódicamente necesitan ejecutar transacciones en nombre de una persona.
Casos de uso típicos:
- Agentes personales para comprar consumibles, reservar entradas o suscripciones.
- Recargas automáticas de saldo en servicios en la nube y APIs de terceros cuando se alcanzan los límites.
- Pago de endpoints premium a través del Protocolo de Pagos Automatizados (HTTP 402).
- Pruebas de carga y pruebas de extremo a extremo de pagos de comercio electrónico.
Después de un intento de cargo, el agente puede enviar un informe de resultados a través de link-cli report, indicando el estado (éxito, CAPTCHA, bloqueo de Cloudflare o rechazo del banco). Esto ayuda a recopilar estadísticas de fallos.
El proyecto link-cli es de nicho especializado, pero aborda una brecha de seguridad real en los agentes autónomos. En lugar de compartir claves privadas y credenciales, el desarrollador obtiene una pasarela controlada con confirmación de cada paso a través del smartphone.
La principal desventaja actualmente: la herramienta solo funciona con cuentas Link basadas en EE.UU. Si tienes acceso a US Link, puedes probar la utilidad ahora mismo a través de npx @stripe/link-cli onboard. Los demás deberán estudiar el código fuente en TypeScript del repositorio y esperar la expansión geográfica.
Proyectos relacionados