Hoe geef je een AI-agent een portemonnee zonder blut te eindigen
Stel je voor dat je een AI-assistent de opdracht hebt gegeven om een zeldzaam boek te bestellen, een server te betalen of een conferentieticket te kopen. Het script bereikt het betalingsformulier, en dan—doodlopende weg. Je hoofdkaartgegevens aan een agent toevertrouwen is eng: één hallucinatie of buggy parser, en het geld gaat ergens naartoe waar het niet hoort. Een persoon dwingen om elke kassa handmatig in te vullen ondermijnt het doel van automatisering.
Stripe-ingenieurs hebben een interessante tool uitgebracht genaamd link-cli. Het lost dit probleem op via Link wallet door eenmalige virtuele kaarten of tokens uit te geven voor specifieke transacties, maar pas nadat de eigenaar bevestigt.
In dit artikel leggen we uit hoe de tool werkt, hoe je hem via het MCP-protocol verbindt met een LLM, en waar de valkuilen liggen.
Hoe het proces werkt
De hele workflow draait om de spend request-entiteit. De agent krijgt geen toegang tot je bankrekening en ziet nooit opgeslagen kaarten.
De stroom is eenvoudig:
- De agent analyseert de winkelpagina, bouwt een winkelmandje en verzamelt bestelparameters.
- Via CLI wordt een aankoopverzoek aangemaakt met de handelaar, het bedrag en gedetailleerde context die het doel van de uitgave uitlegt.
- Er arriveert een pushnotificatie op je telefoon in de Link-app met een bevestigingsverzoek.
- Na goedkeuring ontvangt de CLI een tijdelijke virtuele kaart of token.
- De agent voegt de gegenereerde inloggegevens in het betalingsformulier in en voltooit de aankoop.
De --context parameter is niet alleen voor de show. Stripe vereist een gedetailleerde beschrijving van minimaal 100 tekens, zodat je precies weet waar de kosten voor zijn in de pushnotificatie. Bevestiging moet binnen exact 10 minuten worden gedaan, waarna het verzoek vervalt.
Credential-indelingen
De tool kan drie soorten betaalgegevens retourneren, afhankelijk van waar en hoe de agent de betaling uitvoert.
De eerste optie is een standaard eenmalige virtuele kaart (PAN). Deze werkt met elke online winkel met een standaard HTML-uitcheckformulier, zelfs als de site nog nooit van Stripe heeft gehoord.
De tweede optie is een Shared Payment Token (SPT). Deze is bedoeld voor scenario's waarin de handelaar het Machine Payments Protocol (MPP) ondersteunt. Hier gaat de betaling programmatisch via HTTP 402, zonder browsergedrag na te bootsen.
De derde optie is een Link Pay Token (LPT). Als het uitchecken via Stripe loopt en de pagina een speciaal blok voor AI-agents bevat, genereert de CLI een token dat direct aan de handelaarsrekening is gekoppeld.
Logbeveiliging en werken met MCP
Het grootste probleem bij het verwerken van betalingen in LLMs is het lekken van inloggegevens. Als de tool het volledige kaartnummer en CVC naar stdout uitvoert, blijven deze gegevens achter in de context van het model, systeemprompts, terminal logs en agent-transcripties.
De ontwikkelaars van Stripe hebben dit opgelost met het --output-file-argument. De opdracht slaat volledige kaartgegevens op in een lokaal bestand met 0600-toegangsrechten, terwijl gemaskeerde JSON naar standaard output wordt gestuurd:
Agent neemt het bestandspad, geeft dit door aan een interne browser runner zoals Playwright, en alleen het kaartmerk en de laatste vier cijfers blijven in de logs achter.
Voor integratie met frameworks zoals Claude Code of Cursor kan de tool draaien als een MCP (Model Context Protocol) server:
Als de agent in een geïsoleerde container of op een externe server draait, start het link-cli serve commando een lokaal HTTP-eindpunt voor MCP.
Overigens wordt voor communicatie met taalmodellen standaard het toon formaat gebruikt. Dit is een compacte tekstoutput zonder JSON-syntaxisruis die tokens bespaart in het contextvenster.
Limieten en beperkingen
De tool is nog in een vroeg stadium, dus het Stripe-team heeft strikte beveiligingsgrenzen ingebouwd:
- Maximale enkele aankoopbedrag is beperkt tot $500 (50.000 cent).
- Dagelijkse uitgabenlimiet is ook $500, met een maandelijks maximum van $20.000.
- Uitgegeven kaarten of tokens zijn slechts 12 uur actief vanaf het moment dat het verzoek wordt aangemaakt.
- Er kunnen maximaal 10 bevestigde actieve verzoeken tegelijkertijd bestaan.
Voor lokale experimenten en integratietests is er de --test vlag. Deze genereert testkaartnummers (bijvoorbeeld 4000009990001984) en rekent geen echt geld van de Link-rekening af.
Waar dit toepasbaar is
De tool is gemaakt voor een specifieke niche: autonome scripts en assistenten die periodiek transacties moeten uitvoeren namens een persoon.
Typische gebruiksscenario's:
- Persoonlijke agents voor het kopen van verbruiksmaterialen, boeken van tickets of abonnementen.
- Automatisch saldo aanvullen in clouddiensten en externe API's wanneer limieten worden bereikt.
- Betalen voor premium eindpunten via het Machine Payments Protocol (HTTP 402).
- Load testing en end-to-end testing van e-commerce uitcheckprocessen.
Na een betaalpoging kan de agent een resultaatrapport sturen via link-cli report, met de status (geslaagd, CAPTCHA, Cloudflare-blokkering of bankafwijzing). Dit helpt bij het verzamelen van faalstatistieken.
Het link-cli project is smal gespecialiseerd, maar het pakt een echte beveiligingslacune in autonome agents aan. In plaats van privé-sleutels en inloggegevens te delen, krijgt de ontwikkelaar een gecontroleerde gateway met bevestiging van elke stap via smartphone.
Het belangrijkste nadeel nu: de tool werkt alleen met op de VS gebaseerde Link-accounts. Als je toegang hebt tot US Link, kun je de tool nu testen via npx @stripe/link-cli onboard. Alle anderen moeten de TypeScript-broncode in de repository bestuderen en wachten op geografische uitbreiding.
Gerelateerde projecten