Como Dar uma Carteira a um Agente de IA Sem Ficar Pobre
Imagine que você pediu a um assistente de IA para comprar um livro raro, pagar um servidor ou comprar um ingresso de conferência. O script chega ao formulário de pagamento e então—beco sem saída. Entregar os dados do seu cartão principal a um agente é aterrorizante: uma única alucinação ou um parser com bugs, e o dinheiro vai para algum lugar que não deveria. Forçar uma pessoa a preencher manualmente cada checkout elimina o propósito da automação.
Engenheiros da Stripe lançaram um utilitário interessante chamado link-cli. Ele resolve esse problema através da carteira Link, emitindo cartões virtuais de uso único ou tokens para transações específicas somente após a confirmação do proprietário.
Neste artigo, vamos detalhar como a ferramenta funciona, como conectá-la a um LLM via protocolo MCP e quais armadilhas evitar.
Como o Processo Funciona
O fluxo de trabalho inteiro gira em torno da entidade de solicitação de gasto. O agente não acessa sua conta bancária e nunca vê cartões salvos.
O fluxo é direto:
- O agente analisa a página da loja, monta o carrinho e reúne os parâmetros do pedido.
- Via CLI, uma solicitação de compra é criada especificando o comerciante, valor e contexto detalhado explicando o propósito da despesa.
- Uma notificação push chega no seu celular no app Link solicitando confirmação.
- Após a aprovação, a CLI recebe um cartão virtual temporário ou token.
- O agente insere as credenciais geradas no formulário de pagamento e conclui a compra.
O parâmetro --context não é apenas para exibição. A Stripe exige uma descrição detalhada de pelo menos 100 caracteres para que você saiba exatamente para que serve a cobrança na notificação push. A confirmação deve ser feita em exatamente 10 minutos, após os quais a solicitação expira.
Formatos de Credenciais
O utilitário pode retornar três tipos de dados de pagamento dependendo de onde e como o agente está fazendo o pagamento.
A primeira opção é um cartão virtual padrão de uso único (PAN). Ele funciona com qualquer loja online que use um formulário de checkout HTML padrão, mesmo que o site nunca tenha ouvido falar da Stripe.
A segunda opção é um Shared Payment Token (SPT). Isso é para cenários onde o comerciante suporta o Machine Payments Protocol (MPP). Aqui, o pagamento é feito programaticamente via HTTP 402 sem emular entrada de dados do navegador.
A terceira opção é um Link Pay Token (LPT). Se o checkout for na Stripe e a página contiver um bloco especial para agentes de IA, a CLI gera um token diretamente vinculado à conta do comerciante.
Segurança de Logs e Trabalho com MCP
O principal problema ao lidar com pagamentos em LLMs é o vazamento de credenciais. Se o utilitário exibir o número completo do cartão e CVC para stdout, esses dados permanecerão no contexto do modelo, prompts do sistema, logs do terminal e transcrições do agente.
Os desenvolvedores da Stripe contornaram isso com o argumento --output-file. O comando salva os dados completos do cartão em um arquivo local com permissões de acesso 0600, enquanto exibe JSON mascarado na saída padrão:
O agente recebe o caminho do arquivo, passa para um executor de navegador interno como o Playwright, e apenas a bandeira do cartão e os últimos quatro dígitos permanecem nos logs.
Para integração com frameworks como Claude Code ou Cursor, o utilitário pode funcionar como um servidor MCP (Model Context Protocol):
Se o agente for executado em um container isolado ou em um servidor remoto, o comando link-cli serve inicia um endpoint HTTP local para MCP.
A propósito, para comunicação com modelos de linguagem, o formato toon é usado por padrão. É uma saída de texto compacta sem ruído de sintaxe JSON que economiza tokens na janela de contexto.
Limites e Restrições
A ferramenta está em estágios iniciais, então a equipe da Stripe construiu limites de segurança rígidos:
- O valor máximo de uma única compra é limitado a $500 (50.000 centavos).
- O limite diário de gastos também é de $500, com um teto mensal de $20.000.
- Os cartões ou tokens emitidos ficam ativos por apenas 12 horas a partir do momento em que a solicitação é criada.
- Não pode haver mais de 10 solicitações ativas confirmadas simultaneamente.
Para experimentos locais e testes de integração, existe a flag --test. Ela gera números de cartão de teste (por exemplo, 4000009990001984) e não cobra fundos reais da conta Link.
Onde Isso Se Aplica
O utilitário foi criado para um nicho específico: scripts autônomos e assistentes que precisam periodicamente executar transações em nome de uma pessoa.
Casos de uso típicos:
- Agentes pessoais para compra de consumíveis, reserva de passagens ou assinaturas.
- Recargas automáticas de saldo em serviços cloud e APIs de terceiros quando os limites são atingidos.
- Pagamento de endpoints premium via Machine Payments Protocol (HTTP 402).
- Teste de carga e teste end-to-end de checkouts de e-commerce.
Após uma tentativa de cobrança, o agente pode enviar um relatório de resultado via link-cli report, indicando o status (sucesso, CAPTCHA, bloqueio do Cloudflare ou recusa do banco). Isso ajuda a coletar estatísticas de falhas.
O projeto link-cli é altamente especializado, mas aborda uma lacuna real de segurança em agentes autônomos. Em vez de compartilhar chaves privadas e credenciais, o desenvolvedor obtém um gateway controlado com confirmação de cada etapa via smartphone.
O principal ponto negativo agora: a ferramenta funciona apenas com contas Link baseadas nos EUA. Se você tem acesso ao Link dos EUA, pode testar o utilitário agora via npx @stripe/link-cli onboard. Todos os outros precisarão estudar o código-fonte TypeScript no repositório e esperar pela expansão geográfica.
Projetos relacionados