Engenharia reversa sem programar: como a IA criou o claude-agy (Google Antigravity)

O Google tem um plano corporativo invisível chamado Antigravity (Code Assist). Veja como usei comandos simples de IA para extrair credenciais de um app e rodar modelos gigantes de graça no meu terminal.

Se o artigo sobre o claude-oc (DeepSeek) e OpenCode te pareceu mágica de um Agente de IA, o caso do claude-agy eleva isso à máxima potência.

O cenário: o Google possui um plano corporativo (daily-cloudcode-pa.googleapis.com) que roda modelos gigantes (como o Gemini 3.6 Flash de 1M de tokens, e até o GPT-OSS-120b). É parte de um sistema chamado Antigravity. Eu tinha na minha máquina um arquivo executável chamado agy, que conseguia se conectar nesse serviço sem pedir cartão de crédito, usando apenas um token do plano escondido no meu computador.

Eu queria que o Claude Code usasse a inteligência absurda desses modelos. Mas a API crua que o agy usava era completamente bizarra: envelopada, cheia de regras escondidas, e devolvia erros crípticos na menor das vírgulas.

Aqui está o passo-a-passo de como o claude-agy foi construído por um Agente de IA, enquanto eu estava apenas sentado na cadeira do diretor, dizendo o que fazer.

1. O roubo do Token

Eu não ia ficar catando arquivos de texto ocultos na mão para descobrir como o app agy se autenticava.

Meu comando: “O app ‘agy’ roda e conecta com o servidor do Google. Ele esconde a credencial dele em algum lugar da minha pasta home. Descobre onde ele guarda, extrai isso pra mim e me diz como a gente renova esse token caso ele vença.”

O agente vasculhou as pastas ponto (.) do meu sistema. Em segundos ele reportou: “Achei. O token OAuth fica em ~/.gemini/antigravity-cli/antigravity-oauth-token. E lendo as strings de dentro do arquivo agy, eu achei o ‘Client ID’ fixo dele. Dá pra gente escrever uma rotina que finge ser o app e renova o token sozinho para sempre.”

Isso eliminou o problema de login.

2. Traduzindo o Idioma Bizarro da API

Nós precisávamos de um “shim” (uma porta intermediária) porque o Claude Code fala a língua da OpenAI, e o Google Antigravity fala uma língua própria. Pedi pra IA fazer a ponte na porta 4014. O inferno começou quando fomos testar:

Erro Genérico 500. O servidor simplesmente recusava responder à ponte.

Meu comando: “O servidor tá rejeitando a ponte com Erro 500, mas quando eu rodo o binário original ‘agy’, ele aceita. Olha como o original monta a conexão e arruma a ponte.”

O agente não teve dúvidas: ele forçou o binário original a rodar por um túnel, farejou os cabeçalhos HTTP que ele mandava pro Google, e achou a trava: o Google só falava com quem mandasse o cabeçalho exato User-Agent: antigravity-cli/1.1.10. Adicionamos na ponte e o erro 500 sumiu.

Erro 403 (Projeto). Em seguida, bateu o acesso proibido, dizendo que a API não estava ativada. A IA leu o log e deduziu sozinha: “A ponte do LiteLLM tenta mandar um número de projeto do Google Cloud. Mas essa conta não tem projeto, é corporativa-direta. Removi o campo ‘project’ do pacote.” Passou de novo.

3. O Problema das Ferramentas (Tool Calling)

A pior parte. O Claude Code adora mandar schemas de ferramentas super complexos pro servidor (dizendo “eu sei criar arquivos, eu sei usar o bash”). Mas o backend do Google devolvia Erro 400.

Meu comando: “As chamadas de chat vão, mas quando o Claude tenta mandar as Ferramentas dele, o Google devolve erro de validação do JSON (Erro 400). Pega uma lupa na API original e vê o que o Google permite.”

O agente analisou a estrutura e descobriu que o Google usava uma “lista-branca” extremamente restrita. Se o Claude mandasse uma propriedade extra (tipo propertyNames ou $defs), o Google surtava e recusava a mensagem inteira.

A solução que a IA codificou no shim: um filtro implacável que lê a ferramenta do Claude, arranca fora qualquer atributo que o Google não conheça, e empacota bonitinho antes de entregar.

Por fim, o Google exigia que uma thoughtSignature (Assinatura de pensamento) fosse guardada e devolvida exata no final. A API da OpenAI não suporta enviar isso de volta. A IA, de novo, deu a volta por cima: armazenou essas assinaturas localmente numa memória temporária indexada pelo ID da ferramenta, e reinjetava na saída da resposta invisível para o Claude.

O Resultado

Hoje, no meu terminal, eu digito claude-agy e imediatamente meu Claude Code é turbinado por modelos gigantes do Google Antigravity. Eu não entendo de formatação de envelopamento JSON do Google e não conheço OAuth Client-Secrets.

Eu agi como Diretor. A IA agiu como Especialista de Redes, Analista de Segurança e Desenvolvedor Backend Python. Quando o conhecimento se torna comoditizado dentro de um Agente de IA, a única coisa que separa o leigo do impossível é a coragem de pedir o que se quer da forma certa.

Leia também

Comentários

Carregando comentários…

Deixe um comentário