Os famosos CAPTCHAs sempre nos perguntaram: "você é humano?". Contudo, em um mundo onde agentes de Inteligência Artificial (IA) são usuários legítimos da web, essa pergunta não faz mais sentido. A questão que realmente importa agora é: "você é um agente de IA legítimo?"
Foi com essa premissa que surgiu o imrobot, um anti-CAPTCHA de código aberto. Ele tem a missão de verificar a autenticidade de agentes de IA, em vez de simplesmente bloquear o acesso.
O Desafio dos Agentes de IA
Ao desenvolver uma API voltada para agentes, percebemos uma lacuna importante. Não existia uma maneira padronizada de verificar se um cliente era, de fato, um agente de IA.
Chaves de API até provam a identidade, mas não a capacidade. Os CAPTCHAs tradicionais comprovam a humanidade, o que é o oposto do que se precisava para legitimar uma IA. Além disso, raspadores não autorizados estavam acessando os endpoints, se passando por agentes legítimos.
Era fundamental criar algo que fosse fácil de resolver para um LLM (Large Language Model), mas impraticável para um humano realizar manualmente.
Como o imrobot Funciona
O imrobot gera desafios determinísticos usando operações de string combináveis. Isso inclui base64, rot13, codificação hexadecimal e inversão, entre outras.
Essas operações formam um pipeline de desafios, como este exemplo:
seed: "a7f3b2c1d4e5f609"
1. reverse()
2. base64_encode()
3. rot13()
Um LLM interpreta as instruções, executa cada etapa em sequência e retorna o resultado. Esse processo leva aproximadamente 0,3 segundos. Já um humano precisaria de ferramentas de decodificação e muito tempo para realizar as transformações manualmente, o que o torna inviável.
A dificuldade pode ser escalonada linearmente: mais operações no encadeamento significam um desafio mais complexo. A verificação é totalmente sem estado e determinística, bastando reexecutar o pipeline e comparar os resultados.
Diferenciais do imrobot
O imrobot se destaca por diversas características que o tornam uma solução robusta.
Ele funciona em qualquer lugar, com integrações para React, Vue, Svelte e componentes web. Além disso, possui uma API headless para qualquer ambiente JavaScript, garantindo suporte abrangente.
Não possui dependências externas, o que significa zero risco na cadeia de suprimentos e sem conflitos de versão. A biblioteca inteira tem cerca de 15KB, sendo leve e eficiente.
A API REST pode ser auto-hospedada, utilizando apenas o módulo http do Node.js. Com cinco endpoints (desafio, solução, verificação, saúde, informação), ele oferece um servidor completo em um arquivo leve, fácil de implantar.
Para agentes de IA baseados em navegador, o imrobot pode incorporar desafios diretamente no DOM como Web Components. O agente lê, resolve e submete o desafio sem precisar de chamadas API separadas.
A verificação é determinística: cada desafio tem uma única resposta correta. Não há pontuação probabilística, janelas de tempo ou ambiguidades, garantindo que o agente resolveu o desafio corretamente ou não.
Primeiros Passos
Começar a usar o imrobot é rápido e leva cerca de 30 segundos. Basta instalar via npm:
npm install imrobot
Em seguida, você pode importá-lo em seu projeto TypeScript ou JavaScript:
import { generateChallenge, solveChallenge, verifyAnswer } from 'imrobot';
// Geração de um pipeline de desafio
const challenge = generateChallenge({ difficulty: 'medium' });
// Um agente de IA o resolve
const answer = solveChallenge(challenge);
// Verificação da resposta
const isVerified = verifyAnswer(challenge, answer);
Com essa ferramenta, a verificação de agentes de IA se torna uma tarefa simples e eficaz. É uma mudança de paradigma que valida a legitimidade da IA na web, como acompanhamos aqui no Brasil Vibe Coding.