Probabilidade e confiança no Jev: qual é a diferença e o que fazer com cada número?

Diferença entre probabilidade e confiança no Jev representada em gráfico
Resposta rápida

Probabilidade e confiança no Jev são dois sinais diferentes que vêm na mesma resposta. A probabilidade diz o quanto o modelo distribuiu de peso em cada opção ou nível, e é ela que escolhe o caminho: é calibrada no agregado, ou seja, algo com 0,2 deve acontecer cerca de 20% das vezes. A confiança é um valor de 0 a 1 derivado da forma dessa distribuição, e responde outra pergunta: dá para agir sem revisão humana? Concentrada, confiança alta. Espalhada, confiança baixa. Uma roteia, a outra autoriza.

O erro mais comum com o Jev não é errar o prompt, é achar que probabilidade e confiança são a mesma coisa escrita de duas formas

Não são. E tratar uma como sinônimo da outra é o caminho mais rápido pra automatizar uma decisão que jamais deveria rodar sozinha 😅

Fala aí, beleza? O Jev é o modelo da TypeSafe AI que não gera texto. Ele recebe um estado e devolve valores tipados, acompanhados de probabilidades e de confiança, feitos pra serem consumidos por software e não lidos por gente. A própria empresa chama essa classe de modelo de System One: em vez de você pedir um parágrafo e depois tentar extrair JSON dele na gambiarra, você pede uma decisão e recebe uma decisão

E aí vêm os dois números. Um pra escolher o caminho, outro pra decidir se aquele caminho pode ser seguido sem ninguém olhando

Bora destrinchar cada um?

O que é o Jev e de onde vêm esses dois números

A TypeSafe AI foi fundada em 2024 por Diogo Almeida, Erik Gafni e Sasha Sheng

Almeida, o CEO, passou cerca de quatro anos na OpenAI trabalhando em RLHF, InstructGPT, ChatGPT e GPT-4. Ou seja, não é gente que caiu de paraquedas no assunto de alinhar modelo a preferência humana

O Jev foi lançado em early access limitado em 15/09/2026, junto do anúncio de uma rodada seed de US$ 40 milhões liderada pela DCVC

Depois disso a TypeSafe anunciou no X que o modelo tinha ficado disponível pra todos, sem waitlist. Só que a demanda apertou: em 22/09/2026 os novos cadastros foram pausados, com as contas já existentes continuando a funcionar normalmente

Se liga nisso porque muda o seu plano de teste: quem já tem conta segue rodando, quem ia criar agora pode bater nessa parede

E o desenho do modelo é o que importa pro nosso assunto. O Jev não te devolve "eu acho que é a opção B". Ele devolve a opção B, a probabilidade de cada opção disponível, e um valor de confiança calculado a partir do formato dessa distribuição

Dois eixos, na mesma resposta. Vamos ver cada primitiva pra ficar concreto

O que cada primitiva devolve: Choice, Score e Noul

O Jev tem três tipos de pergunta, que a documentação chama de primitivas: Choice, Score e Noul

Cada uma devolve uma coisa diferente, e a confiança não aparece em todas. Esse detalhe já derruba muita lógica

Choice: escolher uma entre N opções

A resposta de um Choice traz três coisas:

  • a opção escolhida (campo choice)
  • probabilities, com a probabilidade de cada opção
  • confidence, um valor de 0 a 1

É a primitiva de roteamento clássica: qual intenção é essa, pra qual fila vai, qual categoria se aplica

Score: dar uma nota dentro de um rubric

O Score devolve:

  • o score
  • probabilities por nível do rubric
  • confidence

E tem um detalhe que é o coração deste post: o score é a média ponderada dos números dos níveis pelas probabilidades

Média ponderada, entendeu? Então ele é um número derivado, não um número observado. Já volto nisso

Noul: a probabilidade de sim

O Noul devolve um único número entre 0 e 1: a probabilidade de a resposta ser sim

E ele não tem campo de confiança separado. Não é esquecimento nem bug: com dois resultados possíveis, o próprio valor já descreve a distribuição inteira

Perto de 1, sim forte

Perto de 0, não forte

Perto de 0,5, o modelo deu probabilidade parecida pra sim e pra não, e você está com um empate na mão

Se a sua camada de decisão espera confidence em toda resposta, um Noul vai quebrar ela. Tome cuidado!

Probabilidade x confiança: o que cada número responde

Antes de sair codando limiar, cola essa tabela na parede:

Aspecto Probabilidade Confiança
O que mede Quanto peso o modelo colocou em cada opção ou nível O quanto a distribuição está concentrada em um resultado
Escala 0 a 1 por opção, somando o conjunto todo 0 a 1, um valor único por resposta
De onde sai Direto da distribuição devolvida pelo modelo Derivada da forma da distribuição, não é a resposta em si
O que decide na aplicação Qual caminho a aplicação segue Se aquele caminho pode ser seguido sem revisão
Garantia que oferece Calibrada no agregado: 0,2 acontece cerca de 20% das vezes, 0,8 cerca de 80% Nenhuma garantia de verdade objetiva, só de concentração
Quando engana Quando você lê o número isolado de um caso só Quando você trata confiança alta como "está certo"
Existe no Noul? É o próprio valor devolvido Não tem campo separado

A leitura curta é essa: probabilidade roteia, confiança autoriza

O que fazer com a probabilidade: escolher o caminho

A probabilidade é o sinal que responde "qual". É com ela que você decide a rota, a categoria, a fila, o nível

Mas tem uma armadilha bonita no Score, e a documentação avisa dela: distribuições diferentes podem produzir o mesmo score

O exemplo da doc é cristalino. Um score 1.0 pode ser:

  • toda a probabilidade concentrada no nível 1
  • ou metade no nível 0 e metade no nível 2

Nos dois casos a média ponderada dá 1.0. Só que o significado é completamente diferente!

No primeiro, o modelo está dizendo "é nível 1, ponto". No segundo, ele está dizendo "ou é 0 ou é 2, eu não sei, e a média caiu no meio"

É por isso que a documentação do Score orienta ler probabilities e confidence junto do score, nunca o score sozinho

Se a sua aplicação só persiste o número final e joga a distribuição no lixo, você perdeu a informação mais útil da resposta

Outro ponto: a calibração das probabilidades do Jev vale no agregado

Resultados com probabilidade 0,2 devem acontecer cerca de 20% das vezes, e resultados com 0,8 cerca de 80% das vezes. Isso é medido em grupos de previsões

O que isso NÃO quer dizer: que aquela sua resposta específica, aquela ali, com 0,8, está correta. Calibração é uma propriedade estatística de um conjunto, não um selo de garantia por item

Pensa como bola de loteria: você pode saber exatamente a chance de cada número e ainda assim não saber qual sai agora

O que fazer com a confiança: decidir se o caminho vai sozinho

A documentação da TypeSafe posiciona a confiança como segundo eixo: a resposta diz o que é, a confiança diz se dá pra agir em cima dela

Ela vem de 0 a 1, derivada da forma da distribuição de probabilidades. Concentrada em um resultado significa confiança alta, espalhada significa confiança baixa

Confiança 1.0 em um Score quer dizer uma coisa bem específica: a distribuição devolvida colocou toda a probabilidade em um único nível

E aqui vem a parte que mais gente lê errado: confiança alta significa peso concentrado em uma opção, não que a resposta seja objetivamente verdadeira

Um modelo pode estar concentradíssimo e errado. Acontece com gente também, né? 😛

A doc sugere três caminhos pra usar esse sinal:

  1. agir quando a confiança está alta
  2. revisar o que cai no meio
  3. escalar pra humano quando a confiança está baixa

E reforça que limiar de confiança não é um número único. Ações diferentes no mesmo sistema devem ser liberadas em níveis diferentes, conforme a consequência do erro

O exemplo do padrão de roteamento por confiança é ótimo pra fixar. No caso de intent routing:

  • abaixo de 0,5, o caso vai pra humano
  • acima de 0,9 pra seguir em ação de alto risco, tipo aprovar transferência
  • limiar menor pra uma ação recuperável, tipo consultar saldo

Repara na lógica: consultar saldo errado você desfaz explicando. Transferência errada você desfaz no jurídico 💸

Se você quer descer ao detalhe de como calibrar esses cortes, vale ver como definir thresholds de confiança por tipo de ação

Em pseudocódigo, a espinha da coisa é essa:

# pseudocódigo: dois sinais, duas decisões

resposta = jev.choice(estado, opcoes)

caminho = resposta.choice          # probabilidade escolhe o caminho
conf    = resposta.confidence      # confiança autoriza (ou não)

limiar = limiar_da_acao(caminho)   # varia por consequência do erro

if conf < 0.5:
    escalar_para_humano(estado, resposta)
elif conf < limiar:
    executar_com_revisao(caminho, resposta)
else:
    executar(caminho)

O ponto do trecho não é a sintaxe, é a separação: choice decide o que, confidence decide como aquilo roda

E antes que você pergunte: e se a resposta simplesmente não chegar? Aí é outro assunto, que passa por timeout e fallback na decisão

Quatro armadilhas de quem trata os dois números como iguais

1. Usar confiança como se fosse probabilidade de acerto

Sintoma: o time cria uma regra do tipo "confiança 0,9 então é praticamente certeza de acerto" e monta o SLA em cima disso

Causa: confundir concentração com veracidade. A confiança é calculada a partir da forma da distribuição, não é a resposta em si nem uma taxa de acerto medida

Solução: tratar confiança como "o modelo está indeciso ou não", e medir acerto contra rótulos reais seus, separadamente

Como prevenir: nunca nomear a variável de accuracy ou chance_de_acerto no código. Nome importa, engana o próximo dev que abrir o arquivo

2. Ler o score sem olhar a distribuição

Sintoma: dois casos com score 1.0 recebem o mesmo tratamento, e um deles vive dando problema

Causa: o score é média ponderada dos níveis pelas probabilidades, então um 1.0 pode ser tudo no nível 1 ou metade no 0 e metade no 2

Solução: persistir probabilities junto do score e usar confidence como desempate na regra

Como prevenir: deixar a leitura do score sozinho impossível na sua camada de acesso: quem pede score recebe o pacote completo

3. Usar um limiar único pra todas as ações

Sintoma: ou o sistema escala tudo pra humano e ninguém dá conta, ou ele libera automático até o que não devia

Causa: um número só tentando servir pra ação recuperável e pra ação irreversível ao mesmo tempo

Solução: limiar por risco da ação, como no exemplo da doc (abaixo de 0,5 vai pra humano, acima de 0,9 pra aprovar transferência, menor pra consultar saldo)

Como prevenir: declarar o limiar junto da definição da ação, não numa constante global perdida no config

4. Confiar na calibração em um caso isolado

Sintoma: alguém aponta um caso específico com 0,8 que deu errado e o time conclui que "o modelo não é calibrado"

Causa: calibração é medida em grupos de previsões e não garante que uma resposta individual esteja correta

Solução: avaliar calibração em lote, comparando o que o modelo previu com 0,8 contra o que realmente aconteceu naquele grupo

Como prevenir: montar um conjunto rotulado seu desde o começo, mesmo pequeno. Sem isso você está discutindo sensação, não dado

Os números não mentem, mas dependem da tarefa: o que os testes mostram

Aqui entra a parte honesta: a qualidade desses dois sinais varia com a tarefa. E tem evidência pública pros dois lados

No teste da OpenRouter comparando o Jev com LLM como juiz na mesma tarefa:

  • Brier score de 0,043 pro Jev contra 0,054 do juiz LLM
  • nos 88 itens de faithfulness, o Jev concordou com os rótulos em 84 e o juiz LLM em 83
  • precisão 0,98 nos dois
  • quando o Jev deu probabilidade acima de 0,8, a resposta foi aceitável em 98% dos casos

Massa, né? Esse último número é exatamente o tipo de coisa que você quer medir antes de fixar um corte

Tem também uma auditoria de terceiros com 8.801 exemplos rotulados de sentimento. O erro de calibração esperado (ECE) das probabilidades brutas do Jev ficou em 0,117 e caiu pra 0,008 após regressão isotônica

Ou seja: a ordenação estava boa, mas a escala precisava de um ajuste em cima do conjunto real. Recalibrar não é desconfiar do modelo, é fechar a conta com o seu domínio

E o contraponto, que é importante não varrer pra baixo do tapete: em teste de terceiro publicado em newsletter, o Jev escolheu quase sempre a mesma opção com confiança média em torno de 83% e acertou cerca de 19% das vezes

19% é o esperado de um chute em um dado de seis faces 🎲

Isso é resultado de terceiro numa tarefa específica, não um veredito sobre o modelo inteiro. Mas ele ilustra perfeitamente o argumento central deste post: confiança alta é concentração, não acerto. Naquela tarefa, o modelo estava concentrado e errado ao mesmo tempo

A conclusão prática é chata e inegociável: meça a calibração no seu conjunto antes de fixar limiar

Vídeo: contexto sobre modelos de IA e o que eles entregam

Pra começar do zero no assunto de modelos e do que cada um entrega na prática, este vídeo do canal dá um panorama do que dá pra fazer com esse tipo de ferramenta:

Onde chamar o Jev e quanto custa hoje

O preço publicado é US$ 0,042 por 1 milhão de tokens de entrada, com tokens de saída gratuitos

Faz sentido com o desenho do modelo: ele não está te devolvendo parágrafo, está te devolvendo número tipado. A saída é minúscula por natureza

Dá pra chamar o Jev pela Workers AI da Cloudflare, com o identificador de modelo typesafe/jev. A resposta traz a versão no campo model (numa chamada documentada apareceu jev-1.13.0)

Ele também está listado na OpenRouter, com entrada versionada como typesafe/jev-1.13

E o lembrete de logística: os novos cadastros foram pausados em 22/09/2026 por causa da demanda, com as contas já criadas seguindo em funcionamento. Se você depende de criar conta agora pra testar, planeja com isso na cabeça

Conclusão

A regra de bolso que eu queria deixar gravada é de cinco palavras: probabilidade roteia, confiança autoriza

A probabilidade (e a distribuição inteira, não só o número final) diz qual caminho a aplicação segue. Ela é calibrada no agregado, e isso não vira garantia no caso isolado

A confiança, de 0 a 1, derivada da forma da distribuição, diz se aquele caminho pode ser seguido sozinho ou se precisa de revisão. Ela não promete que a resposta é verdadeira, só que o modelo não está indeciso

E o Noul não tem confiança separada, porque o valor de 0 a 1 já é a distribuição toda

Próximo passo pra quem vai colocar isso em produção: definir limiares por consequência do erro em cada ação (não um número global) e medir a calibração no seu próprio conjunto de exemplos antes de automatizar qualquer coisa que você não consiga desfazer

Entender probabilidade e confiança no Jev é menos sobre o modelo e mais sobre desenhar onde o software pode decidir sem pedir licença…

Até o próximo post! =)

Perguntas frequentes

Por que o Noul do Jev não tem campo de confiança separado?

Porque o Noul devolve um único número entre 0 e 1, a probabilidade de a resposta ser sim. Com só dois resultados possíveis, esse valor já descreve a distribuição inteira, então um campo de confidence separado seria redundante. Perto de 0,5 é o caso que exige atenção, porque o modelo deu peso parecido pra sim e pra não.

Confiança alta no Jev significa que a resposta está certa?

Não. Confiança alta significa que a distribuição de probabilidades ficou concentrada em uma opção ou nível, não que essa opção seja objetivamente verdadeira. A documentação da TypeSafe é clara nesse ponto: confiança é sobre concentração, não sobre garantia de acerto.

Como definir o limiar de confiança pra liberar uma ação automática no Jev?

A documentação diz que não existe um número único de limiar, cada ação deve ter o seu conforme a consequência do erro. No exemplo de intent routing, a doc manda pra humano quando a confiança fica abaixo de 0,5 e exige acima de 0,9 pra ação de alto risco, como aprovar transferência. Uma ação recuperável, como consultar saldo, aceita um limiar menor.

Dois scores iguais no Jev sempre significam a mesma coisa?

Não, e esse é um dos pontos mais importantes da documentação. Um score 1.0 pode vir de toda a probabilidade concentrada em um único nível, ou de metade da probabilidade no nível 0 e metade no nível 2. A média ponderada dá o mesmo número nos dois casos, mas o significado é bem diferente, por isso é preciso olhar probabilities e confidence junto do score.

A calibração das probabilidades do Jev garante que uma resposta individual está correta?

Não. A calibração é medida em grupos de previsões: resultados com probabilidade 0,2 devem acontecer cerca de 20% das vezes, e com 0,8 cerca de 80%, mas isso vale no agregado. Uma resposta isolada com 0,8 pode estar errada mesmo assim, calibração não é selo de garantia por item.

Quanto custa usar o Jev e onde ele está disponível hoje?

O preço publicado é de US$ 0,042 por 1 milhão de tokens de entrada, com tokens de saída gratuitos, como já vimos acima. Dá pra chamar o modelo pela Workers AI da Cloudflare com o identificador typesafe/jev, e ele também está listado na OpenRouter. Só fica de olho no acesso: depois de a TypeSafe anunciar o Jev disponível pra todos, os novos cadastros foram pausados em 22/09/2026 por causa da demanda, com as contas já criadas seguindo em funcionamento.




Escrito por | Matheus Battisti

Matheus Battisti
Fundador da Hora de Codar

Programador apaixonado pelo mundo das tecnologias, sempre buscando em aprender e se aprofundar em linguagens, frameworks e o que mais for necessário para executar um bom trabalho. Agora tem uma nova missão que é de passar seu conhecimento adiante para formar novos programadores e especializar mais os que já são.

Subscribe
Notify of
guest

0 Comentários
Oldest
Newest Most Voted

Formações

Formação Claude Code

Formação Claude Code

Domine Claude Code do absoluto zero até o avançado

  • 120 aulas
  • 4 projetos
  • 9h 48min

Blog | Mais populares