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.
Modelos gratuitos são servidos por provedores que podem usar suas entradas para fins próprios. Agora você confirma isso uma vez por modelo. Veja por que e como.
Cada página de modelo agora mostra onde cada provedor está sediado e sinaliza países sem salvaguardas de proteção de dados da UE. Veja o que os rótulos significam, como escolher sua rota e o que mais mudou.
Durante quatro dias oferecemos o modelo próprio do LoreBary sem permissão. Veja o que aconteceu, o que mudamos e exatamente o que o UnoRouter guarda sobre você.