O detector de Claude falso agora é uma biblioteca de código aberto
ai-model-verifier é o motor por trás do nosso testador de modelos, publicado no npm sob AGPL-3.0. Dê a ele uma URL base, uma chave e um modelo e ele diz se o endpoint entrega o que vende, agora com verificação da assinatura de raciocínio e da cobrança de tokens.
Em abril publicamos os números sobre revendedores falsos de Claude: 183 canais em 8 provedores que respondiam como Kiro, Codeium ou outro modelo usando o crachá do Claude. As sondas que os pegaram viviam dentro do nosso pipeline de sincronização. Agora vivem em um pacote que qualquer um pode instalar.
ai-model-verifier está no npm e no GitHub sob AGPL-3.0. Ele recebe uma URL base, uma chave de API e um nome de modelo e devolve um de três veredictos, genuine, suspicious ou unverified, junto com a regra acionada e as respostas brutas das sondas.
Por que uma biblioteca
As mesmas verificações rodam agora em três lugares: no seu navegador no testador de modelos, nos nossos servidores para o ranking público e dentro do pipeline de sincronização que decide quais vias upstream o UnoRouter expõe. Três cópias de uma lista de padrões acabam divergindo. Um único pacote, não.
Ele é isomórfico de propósito. Apenas APIs padrão da web, nenhum import node:, zero dependências em tempo de execução. A chamada HTTP é injetada, então um navegador pode contornar o CORS e um servidor pode passar por um fetch protegido contra SSRF. Provedores e detectores são pontos de entrada separados, então verificar a Anthropic nunca empacota a configuração do Gemini.
O que há de novo desde abril
As quatro sondas de comportamento do primeiro artigo continuam sendo o núcleo: a história do gatinho, o haicai, a pergunta de identidade e a pergunta do nome do modelo, agora para endpoints no formato Anthropic, OpenAI e Gemini. Em volta delas há verificações que não dependem de perguntar ao modelo quem ele é.
- Assinatura de raciocínio. O Claude anexa uma assinatura gerada no servidor a cada bloco de raciocínio. Um relay que serve outro modelo não consegue produzi-la. Sondas de identidade podem ser treinadas com um prompt de sistema; uma assinatura, não.
- Contabilidade de tokens. Um relay pode encaminhar Claude autêntico e ainda assim inflar
input_tokensem toda chamada. Dois prompts que diferem por um trecho fixo de texto devem diferir nos tokens cobrados dentro de uma faixa conhecida,count_tokensdeve bater com o que foi cobrado e a saída deve ficar abaixo demax_tokens. Opus 4.7 e 4.8 usam outro tokenizador, então a faixa também funciona como verificação de nível. - Nível errado e substituição. Cobrar Opus e servir Sonnet passa pelas sondas de comportamento, porque o Sonnet escreve uma história de gatinho perfeitamente boa. A sonda do nome do modelo pega uma resposta que nomeia o nível mais barato, e a verificação do envelope pega um endpoint que devolve um id de modelo diferente do solicitado.
- Mistura de respostas e vazamento de idioma. Todo prompt carrega um nonce. Uma resposta que devolve o nonce de outra pessoa significa que o proxy está misturando respostas entre usuários. Caracteres CJK na resposta a um prompt em inglês apontam para um modelo chinês substituído.
- Metadados do envelope. Um id
chatcmpl-dentro de uma resposta no formato Anthropic, ou chaves de uso da OpenAI em uma resposta Messages, significa que há uma camada de tradução entre você e o modelo. Relatado como observação, não como veredicto: o nosso próprio gateway é exatamente uma camada dessas. - Vazão. Modelos maiores são mais lentos por token, então uma via cobrada como Opus que roda na velocidade do Sonnet merece uma olhada. Amostrada, nunca com limiar: a comparação útil é entre vias que servem o mesmo modelo, e só quem chama consegue montá-la.
O que ele não prova
Uma assinatura válida prova que um caminho Anthropic autêntico respondeu. Não prova qual nível: o Sonnet devolve uma assinatura perfeitamente válida quando vendido como Opus, então passar ali ainda exige as verificações de nível. Reenviar o bloco de raciocínio para a Anthropic revalidar a assinatura soa como o teste definitivo. Nós o construímos, e ele não funciona através de um relay. Dois upstreams em produção devolveram 200 para um bloco autêntico e para o mesmo bloco com 308 bytes de base64 aleatório no lugar da assinatura. Um relay reemite o turno para o próprio backend, então nada valida nunca. A opção fica desligada por padrão e está documentada assim.
As verificações de assinatura e de tokens foram portadas do veridrop, também AGPL, cujas tolerâncias foram calibradas contra a API oficial. Mantivemos os limites de aparência frouxa porque respostas reais da Anthropic ficavam perto deles.
Use
O testador de modelos roda o conjunto completo no seu navegador, verificações de assinatura e de tokens incluídas, e nada sai da sua máquina além das chamadas ao seu provedor. A página de ranking publica os resultados que as pessoas escolheram compartilhar. Para o seu próprio pipeline:
import { runVerification } from "ai-model-verifier";
const result = await runVerification({
provider: "anthropic",
baseUrl: "https://YOUR-PROVIDER",
apiKey: process.env.YOUR_KEY,
model: "claude-opus-4-8",
mode: "server",
checkSignature: true,
checkTokenTruth: true,
});
console.log(result.verdict, result.reasons);
// "suspicious" [ "tier-mismatch: requested claude-opus-4-8, served sonnet" ]Ative o que precisar. checkSignature e checkTokenTruth custam requisições extras, então ficam desligados a menos que sejam pedidos. Metadados do envelope e vazão são lidos das respostas que a execução já fez e não custam nada.
Teste um provedor, leia o artigo de abril para ver os números que começaram tudo isso, ou abra uma issue no GitHub se um endpoint real receber um veredicto errado.
Um gateway de LLM é um endpoint e uma chave que roteiam pedidos para muitos provedores de modelos. Aqui está o que ele faz, por que ajuda e quem realmente precisa de um.
Conectamos 18 provedores gratuitos ao UnoRouter: 190+ linhas de modelos gratuitos, um endpoint OpenAI-compatible, $0 per token. Eles carregam limites de origem que não podemos aumentar, mais um pequeno teto de 1 por minuto que nós adicionamos para manter os pools compartilhados justos. Aqui vai a versão honesta.
O UnoRouter está listado nos diretórios de ferramentas de IA e de startups. Aqui você nos encontra, verifica os registros e lê análises independentes.