Jev da TypeSafe: o que significam calibração, probabilidade, amostragem paralela e type-safe?

O Jev é o primeiro modelo público da TypeSafe AI e inaugura a classe System One: você manda um state (objeto ou array JSON) mais perguntas tipadas e recebe decisões tipadas de volta, numa chamada só. Quem vem de dev web trava em quatro palavras da documentação: probabilidade, calibração, amostragem paralela e type-safe. Este glossário traduz cada uma com definição curta, código e a consequência prática na integração, além de comparar os três primitivos da API (Noul, Choice e Score) e mostrar o que muda na sua conta e no seu código quando o Jev entra em produção.
Fala aí, beleza? A TypeSafe soltou o Jev, o primeiro modelo público da casa, e a página dele está escrita em dialeto de machine learning puro
Aí você, que vem de dev web e não de pesquisa em IA, bate de frente com quatro palavras logo nos primeiros parágrafos: calibração, probabilidade, amostragem paralela e type-safe
O Jev inaugura uma classe que a empresa chama de System One, e entrou em early access no dia 15 de setembro de 2026
Cada termo aqui ganha definição curta, exemplo em código e a consequência prática na hora de integrar 🙂
Por que o Jev usa esse vocabulário (e não o de um chat):
Se você conhece a rotina de chamar um LLM de chat, o modelo mental é mais ou menos esse: manda um prompt em texto, recebe texto de volta, e aí reza pra esse texto ser um JSON válido
O Jev quebra esse ciclo
Você manda um state (um objeto ou array JSON com contexto, exemplos e informações relacionadas) mais um conjunto de perguntas tipadas, e recebe decisões tipadas que o código consome direto
É por isso que o vocabulário muda. Não existe "resposta" no sentido de parágrafo, existe valor

Domine o Jev e coloque decisões de IA dentro do seu sistema
Você vai aprender a usar o Jev, o System One Model da TypeSafe AI, pra automatizar decisões com resposta tipada e confiança medida, sem depender de chat nem de alguém revisando cada passo. Entre na lista de espera para garantir a condição de lançamento!
Os três primitivos da API:
São três tipos de pergunta que você pode declarar:
- Noul: sim ou não
- Choice: escolhe uma opção dentro de um conjunto
- Score: dá uma nota numa escala
E se liga nisso: os três podem ser misturados na MESMA chamada
A avaliação acontece no endpoint:
curl -X POST https://api.typesafe.ai/v1/systemone \
-H "Authorization: Bearer $TYPESAFE_API_KEY" \
-H "Content-Type: application/json" \
-d @payload.json
Dentro do payload.json vão o state e as perguntas tipadas daquela rodada
Agora, sem entender as quatro palavras do título, qualquer exemplo da documentação do Jev vira sopa de letrinha. Bora destrinchar?
Os quatro termos explicados, um a um
Cada termo tem a definição, o código e o erro que quase todo mundo comete na primeira integração
1. Probabilidade: o número que você estava jogando fora
A resposta de um Noul é um único número: a probabilidade de a resposta ser sim
0 significa não, 1 significa sim, e tudo no meio é o grau de convicção do modelo
Repara numa coisa: o Noul NÃO tem campo separado de confidence
E o motivo é bonito de simples: a distribuição só tem dois resultados possíveis, então a própria probabilidade já carrega a incerteza. Um 0,51 é um quase empate, um 0,97 é convicção
Já o Choice devolve três coisas: a opção escolhida, a probabilidade de cada opção (no campo probabilities) e o confidence
A propriedade probabilities é a distribuição inteira: distribuição concentrada indica resposta confiante, distribuição espalhada indica incerteza
E o confidence colapsa essa distribuição num único número de 0 a 1, pra você aplicar threshold sem refazer a conta na mão
Erro comum deste passo: tratar a probabilidade como booleano
É o clássico if (resposta > 0.5) e segue o baile. Você acabou de transformar um 0,52 e um 0,99 na mesma coisa, e jogou fora exatamente a informação que o modelo foi treinado pra te dar
2. Calibração: a promessa que dá sentido ao número
A definição que a documentação usa é direta: num modelo bem calibrado, resultados aos quais se atribui probabilidade 0,2 acontecem cerca de 20% das vezes, e os de 0,8 acontecem cerca de 80% das vezes
Ou seja, calibração é a frequência observada bater com a probabilidade declarada
Parece óbvio, mas não é. É a diferença entre um número que significa alguma coisa e um número que é só decoração
A TypeSafe trata calibração como propriedade DO MODELO, não como pós-processamento: a arquitetura tem sampler paralelo e o treino é feito por um método que eles chamam de Reinforcement Learning for Calibrated Decisions (RLCD)
E a consequência prática disso vem no padrão de roteamento por confiança
Erro comum deste passo: supor que existe um threshold único pro sistema todo
Não existe. A doc orienta que ações diferentes no mesmo sistema devem ser liberadas em níveis diferentes, conforme a CONSEQUÊNCIA do erro
Marcar um post como destaque errado custa pouco. Banir uma conta errado custa caro. Os dois não podem passar pelo mesmo 0,8
E os casos incertos? A recomendação é escalar: manda pra uma pessoa ou pra um modelo de raciocínio mais caro
3. Amostragem paralela: por que perguntar mais quase não custa tempo
Aqui mora a parte mais contraintuitiva pra quem vem de chat
O Jev ingere o state UMA vez e avalia todas as perguntas em paralelo e isoladamente contra esse mesmo estado, numa única chamada
Resultado: acrescentar perguntas quase não muda o tempo de resposta
Se você conhece a diferença entre fazer N queries no banco num loop e fazer uma query que traz tudo, o raciocínio é bem semelhante. Só que aqui a economia é de ingestão de contexto, não de round-trip
E tem orçamento de contexto documentado, dois números diferentes que valem a pena anotar:
- 64k cobre o state mais TODAS as perguntas somadas
- 32k se aplica ao state mais a pergunta isolada mais longa
Ou seja, uma pergunta gigantesca sozinha pode estourar o segundo limite mesmo com folga no primeiro. Tome cuidado!
Erro comum deste passo: disparar N requests separadas, uma por pergunta, como se fosse conversa de chat
Você paga a ingestão do state N vezes e não ganha nada com isso
O segundo erro comum é esperar que uma pergunta enxergue a resposta da outra. Não enxerga. Cada pergunta é avaliada ISOLADAMENTE contra o state. Se a pergunta B depende do resultado de A, isso é orquestração no seu código, não encadeamento dentro da chamada
4. Type-safe: o contrato que dispensa parser defensivo
Esse termo aqui não é metáfora de marketing, é bem concreto no SDK
O pacote de JavaScript/TypeScript traz ESM, CommonJS e declarações TypeScript, e os tipos das respostas são inferidos a partir das perguntas que você declarou
Instalação:
npm install @typesafe-ai/sdk
E o import, com o cliente e o helper de Choice:
import { choice, TypeSafeClient } from "@typesafe-ai/sdk"
No Python o caminho é igualzinho de simples:
pip install typesafe-sdk
# ou, se tu usa uv:
uv add typesafe-sdk
O cliente lê a chave do ambiente:
export TYPESAFE_API_KEY="sua-chave-aqui"
E chama jev-latest por padrão, sem você precisar apontar modelo na mão
A parte forte do argumento: como o Jev não gera texto livre e só devolve valores tipados, a TypeSafe afirma que ele não pode alucinar string nem devolver um tipo fora do contrato
Erro comum deste passo: continuar embrulhando a resposta num try/catch com parser de JSON defensivo, regex de emergência e fallback pra quando o modelo "responder em português no meio do JSON"
Esse arsenal todo existe por causa do modelo de chat. Aqui a saída é restrita aos tipos declarados, então esse código vira peso morto
Como cada termo aparece no seu código no dia a dia
Teoria é legal, mas o negócio fica claro mesmo quando cai no cenário real. Três situações bem de dev web:
Roteamento por confiança (confidence-gated routing). Você tem três ações possíveis depois de avaliar um conteúdo: publicar direto, mandar pra fila de revisão ou bloquear. Cada uma dessas ações ganha um threshold próprio sobre o confidence, porque o custo de errar é diferente em cada uma. O que não atinge nenhum nível seguro é escalado pra uma pessoa ou pra um modelo de raciocínio mais caro
Rubrica inteira numa chamada só. Imagina uma triagem de conteúdo com oito checagens: tem spam? tem dado pessoal? qual a categoria? qual a severidade? Em vez de oito prompts, você monta um state com o conteúdo e manda os oito primitivos juntos, misturando Noul e Choice. É exatamente pra isso que a amostragem paralela serve. Só fica de olho na modelagem: um Choice aceita no máximo 255 opções numa mesma pergunta, então taxonomia gigante precisa virar duas perguntas em cascata no seu código
Checagem de estabilidade. A documentação traz cookbooks de autoconsistência que repetem a mesma avaliação várias vezes sobre o mesmo caso, usando um uid descartável a cada rodada, só pra ver se as respostas se mantêm estáveis. É o teste que eu faria antes de cravar qualquer threshold: se a mesma rubrica dança sobre o mesmo caso, o problema está na rubrica, não no número
Noul, Choice e Score: qual primitivo usar em cada caso
Tabela de consulta rápida, pra deixar aberta numa aba enquanto você modela as perguntas:
| Primitivo | O que responde | O que vem na resposta | Limites conhecidos | Quando escolher |
|---|---|---|---|---|
| Noul | Sim ou não | Um único número: a probabilidade de ser sim (0 = não, 1 = sim) | Não tem campo confidence próprio, porque a distribuição só tem dois resultados |
Checagem binária: é spam? contém dado pessoal? cumpre a regra? |
| Choice | Escolhe uma opção dentro de um conjunto | Opção selecionada + probabilities (distribuição entre as opções) + confidence |
Máximo de 255 opções por Choice | Classificação, roteamento, categoria, seleção de fluxo |
| Score | Nota numa escala | Nota + probabilities com a distribuição entre as opções |
Depende da escala que você declarar | Severidade, qualidade, prioridade, qualquer coisa graduada |
Os três podem conviver na mesma request, e todos dividem o mesmo orçamento de contexto: 64k pro state mais todas as perguntas, 32k pro state mais a pergunta isolada mais longa
O que muda na conta e no código quando você integra
Agora a parte que o time de produto vai perguntar na primeira reunião
A cobrança é só na entrada. Na página do provedor no OpenRouter, o Jev 1.13 aparece a US$ 0,042 por milhão de tokens de entrada e US$ 0 por milhão de tokens de saída
Isso casa direitinho com a lógica do modelo: mandar state grande e MUITAS perguntas é o uso pretendido, e a saída é um punhado de números tipados
Versão e alias. A versão listada nas páginas de dados é a jev-1.13. O alias jev-preview aponta pro mesmo modelo que jev-latest, e o jev-latest é o padrão dos SDKs e dos exemplos da documentação. Traduzindo: se você não apontou nada, está no jev-latest
Rate limits. A própria documentação avisa que são ajustados dinamicamente e podem mudar sem aviso, com limites maiores em planos custom/enterprise. Por isso não tem número aqui: qualquer valor que eu cravasse envelheceria em uma semana, e chutar isso eu acho zoado
O que dá pra fazer no seu lado é o de sempre: retry com backoff e fila, tratando 429 como cenário normal e não como incidente
Acesso. A fila de espera foi removida: o cadastro passou a ser aberto em console.typesafe.ai, com US$ 5 de crédito gratuito pra contas novas
Próximo passo: leia a doc já falando a língua
Destravou esses quatro termos, o resto da documentação do Jev fica legível. Probabilidade é o número, calibração é a promessa de que o número significa algo, amostragem paralela é por que perguntar mais sai barato e type-safe é por que você pode apagar o parser defensivo
O próximo passo que eu sugiro é bem concreto: cria a conta no console, roda UMA chamada com dois ou três primitivos misturados e fica olhando probabilities e confidence antes de escolher qualquer threshold
Escolher número antes de ver a distribuição é chute, e depois vira aquele bug chato que ninguém sabe explicar
E se tu trabalha com agente de código, tem um atalho: a TypeSafe publica uma agent skill com o contexto da API
No Claude Code a instalação é via marketplace de plugins:
claude plugin marketplace add typesafe-ai/skills
claude plugin install typesafe@typesafe-ai
E a invocação é por comando de barra:
/typesafe:typesafe-ai
Em outros agentes, o caminho é esse aqui:
npx skills add typesafe-ai/skills --skill typesafe-ai
É modelo novo, classe nova, vocabulário novo. Vale acompanhar de perto, porque a doc ainda vai mudar bastante…
Até o próximo post! 😀
Perguntas frequentes
Quanto custa usar o Jev na API da TypeSafe?
O Jev 1.13 cobra US$ 0,042 por milhão de tokens de entrada e US$ 0 por milhão de tokens de saída, segundo a página do provedor no OpenRouter. Ou seja, o custo está todo concentrado no state e nas perguntas que você envia, não na resposta tipada que volta.
Qual a diferença entre jev-preview e jev-latest?
Não tem diferença de modelo: o alias jev-preview aponta pro mesmo modelo que jev-latest. E jev-latest é o padrão usado pelos SDKs e pelos exemplos da documentação.
Quantas opções um Choice aceita no máximo?
Um Choice aceita no máximo 255 opções numa mesma pergunta. Isso vale independente de você misturar Choice com Noul e Score na mesma chamada.
Dá pra usar o Jev dentro do Claude Code?
Sim, a TypeSafe publica uma agent skill com o contexto da API pensada pra agentes de código. No Claude Code a instalação é via marketplace de plugins, com claude plugin marketplace add typesafe-ai/skills seguido de claude plugin install typesafe@typesafe-ai, e a invocação acontece pelo comando de barra /typesafe:typesafe-ai.
Os rate limits do Jev são fixos?
Não. A própria documentação diz que os rate limits são ajustados dinamicamente e podem mudar sem aviso. Limites maiores ficam reservados pra planos custom e enterprise.
Pra que servem os cookbooks de self-consistency da documentação?
Eles repetem a mesma avaliação várias vezes sobre o mesmo caso, usando um uid descartável a cada rodada, pra checar se as respostas do Noul e do Choice se mantêm estáveis. É uma forma de validar calibração na prática antes de confiar o threshold numa ação sensível.
Formações
Formação Claude Code
Domine Claude Code do absoluto zero até o avançado
- 120 aulas
- 4 projetos
- 9h 45min
Blog | Mais populares

Como montar um workflow de automação combinando decisões do Jev em código
Aprenda a montar um workflow com Jev: decisões tipadas encadeadas em código, alta confiança agindo sozinha e casos incertos escalando para revisão.

Para quem o Jev serve (e para quem não serve)?
Jev serve pra roteamento, scoring e guardrails em IA, não pra texto ou código. Veja pra quem o Jev serve e quando evitar.

Jev decide, LLM escreve: como dividir os papéis dentro de um agente de IA
Jev é o modelo que decide, não escreve: entenda como dividir papéis entre Jev e LLM dentro de um agente de IA e quando usar cada um.
