>_ DevTrendspt

Idioma

Início

Linguagens

Seções

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarcados Segurança
TypeScript

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:

  1. O agente analisa a página da loja, monta o carrinho e reúne os parâmetros do pedido.
  2. Via CLI, uma solicitação de compra é criada especificando o comerciante, valor e contexto detalhado explicando o propósito da despesa.
  3. Uma notificação push chega no seu celular no app Link solicitando confirmação.
  4. Após a aprovação, a CLI recebe um cartão virtual temporário ou token.
  5. 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