O Jev é um modelo de IA que, quando você envia um texto, retorna uma escolha, uma pontuação ou a probabilidade de Sim/Não. Ele não gera texto. É indicado para usos em que julgamentos, como o direcionamento de solicitações, se repetem dentro de um aplicativo. O preço é de US$ 0,042 por 1 milhão de tokens de entrada, e a saída é gratuita.
Sumário
- 1. O que é o Jev?
- 2. Diferenças entre Choice, Score e Noul
- 3. Garantia de tipo e precisão do julgamento são coisas diferentes
- 4. Exemplo: direcionando as solicitações de suporte
- 5. Tarefas que não combinam e fraquezas conhecidas
- 6. Como ler preço, limites de entrada e velocidade
- 7. O que verificar ao testar
- FAQ
1. O que é o Jev?
A TypeSafe anunciou o acesso antecipado ao Jev em 15 de setembro de 2026. Em vez de um chat que devolve longas explicações, ele foi pensado para julgamentos dentro de um aplicativo, como decidir "qual equipe deve cuidar disso" ou "quão bem isto corresponde aos critérios".
Sua principal característica é que o formato dos valores retornados é fixo. No entanto, uma resposta com o formato correto ainda pode ser um julgamento errado. Se você ler a expressão "sem alucinações", usada no anúncio, como se significasse que ele acerta qualquer conteúdo, vai usá-lo de forma incorreta.
A TypeSafe chama o Jev de "System One model". Segundo o anúncio, o nome é uma denominação da própria empresa, inspirada na distinção feita no livro "Rápido e Devagar", do psicólogo Daniel Kahneman, entre o "Sistema 1", rápido e intuitivo, e o "Sistema 2", que pensa com calma e deliberação. Não é uma classificação unificada de desempenho para a IA como um todo. A explicação oficial do System One o descreve como um modelo que compreende linguagem natural e retorna julgamentos tipados que o software pode usar diretamente.
O nome Jev homenageia o economista William Stanley Jevons. Ele expressa a ideia de que, à medida que o custo da inteligência cai, seus usos crescem em ordens de grandeza, como no paradoxo de Jevons, em que ganhos de eficiência aumentam a demanda em vez de reduzi-la (Os empregos de escritório vão desaparecer por causa da IA?).
- state
- O material a ser julgado. Texto ou dados em formato JSON. Inclua o corpo da consulta, os itens escolhidos pelo usuário, informações de contexto para a classificação e assim por diante.
- questions
- O que decidir. Uma pergunta como "para qual equipe isto deve ir?", junto com os candidatos e os critérios de julgamento.
Como as opções de saída são definidas antecipadamente, você não precisa de uma etapa que extraia um nome de categoria de um texto como "provavelmente é a equipe técnica". Por outro lado, ele não é adequado para gerar textos longos, como respostas, código ou explicações de raciocínio. Se você combiná-lo com uma IA generativa, a divisão de tarefas fica assim: o Jev determina para onde o trabalho deve ir, e um modelo generativo é chamado apenas quando é preciso texto.
Qual é a diferença em relação a pedir ao LLM uma resposta em JSON?
Receber a saída em JSON não é exclusivo do Jev. O Claude, por exemplo, tem saídas estruturadas, que restringem a saída a um JSON Schema. Se você já implementa classificação com um modelo generativo, não precisa substituí-lo só porque "o formato é fixo".
O Jev é especializado em retornar escolhas, avaliações em graus e julgamentos binários, junto com suas probabilidades. Se você precisa de explicações ou respostas depois do julgamento, use um modelo generativo; se precisa escolher repetidamente candidatos a partir de textos, o Jev também é um candidato a comparar; se precisa de cálculos exatos de valores ou datas, use código comum. Divida o trabalho assim. Na prática, o mais sensato é comparar precisão, tempo de espera e custo com a mesma entrada e os mesmos critérios antes de escolher.
2. Diferenças entre Choice, Score e Noul
A explicação oficial de Primitives divide os tipos de pergunta em três. Mesmo perguntas parecidas são escolhidas de acordo com a saída que você quer.
Choice: selecionar um candidato
Prepare candidatos sem ordem, como "Cobrança", "Técnico" e "Outro", e escolha um.
Os números de seleções, probabilidades e contagens neste artigo são exemplos ilustrativos.
Inclua "Outro" ou "Informação insuficiente para decidir" para cobrir entradas que não se encaixem. Se os candidatos forem muito restritos, a classificação pode ser válida no formato, mas não corresponder à realidade.
Score: medir em uma escala
Descreve uma escala ordenada de 2 a 10 níveis. O valor retornado é uma média ponderada pelas probabilidades de cada nível, por isso pode ser decimal.
Exemplo de cálculo com 3 níveis: supondo probabilidades de 10%, 40% e 50%
Não há informação
0 × 0,1 = 0
Parcialmente compreendido
1 × 0,4 = 0,4
Os passos para reprodução estão completos
2 × 0,5 = 1,0
= 1,4
Entre "parcialmente compreendido" e "os passos para reprodução estão completos". Leia como um valor na escala definida de 0 a 2, não como uma taxa de acerto.
Fonte do método de cálculo: TypeSafe "Primitives" e "API reference".
Usar o valor do Score para decidir se um limiar foi ultrapassado é aceitável. No entanto, a documentação oficial alerta contra interpolar entre os níveis para calcular de volta um número do tipo "1,4, então a quantidade real é mais ou menos esta". Os níveis do Jev 1.13 têm calibração numérica fraca (limitações conhecidas do Jev 1.13).
Noul: probabilidade de Sim
Deixe a condição explícita, por exemplo: "O texto diz que o serviço está indisponível no momento?"
Com 0,5, Sim e Não são igualmente prováveis
Não significa "gravidade média". Para medir gravidade, use um Score com níveis definidos.
- Onde escrever a condição
- Deixe-a explícita em
instructions. A chave que identifica a pergunta não é passada ao raciocínio do modelo, então não tente transmitir a intenção apenas pelo nome da pergunta. - Campo de confidence
- Choice e Score têm, mas Noul não tem campo separado.
3. Garantia de tipo e precisão do julgamento são coisas diferentes
A garantia de tipo destacada no anúncio da TypeSafe significa que a saída é restringida aos candidatos ou à faixa de valores definidos. Se você separar consultas entre equipes de cobrança ou técnica, ele não inventará um nome de departamento não especificado em texto livre. No entanto, se ele escolhe a equipe certa é outra questão.
Segundo a explicação oficial, o confidence de Choice e Score é uma estatística que resume em um único número de 0 a 1 o quanto a distribuição de probabilidade está concentrada. É a métrica padrão. Se ela não se adequar ao seu uso, você pode calcular outra métrica por conta própria a partir de probabilities, que também é retornado.
- Os candidatos estão próximos
- O confidence fica baixo.
- Concentrado em um candidato
- O confidence fica alto.
Não leia "0,9, então este caso tem 90% de chance de estar correto". A calibração de probabilidade é uma propriedade avaliada em muitas previsões juntas. Ela não indica se um caso individual está certo.
Na prática, você escreve código que se ramifica pelo confidence. A página oficial de Confidence mostra a ramificação a seguir, depois de deixar o usuário escolher sua solicitação entre "Ver saldo", "Aprovar saque pendente" ou "Suporte" (trecho; os comentários são tradução do autor).
if confidence < 0.5:
# O modelo realmente está em dúvida. Não adivinhar
route_to_human(user_message)
elif action.choice == "check_balance":
# Impacto baixo. Mostrar outra tela pode ser revertido
show_balance(account_id)
elif action.choice == "approve_transfer":
if confidence > 0.9:
# Impacto alto e confiança alta. Confirmar e então executar
confirm_then_execute(account_id)
else:
# Impacto alto, confiança moderada. Verificar antes
ask_user_to_confirm(account_id)
O limite inferior de 0,5 serve para pegar casos em que o modelo indicou que realmente está em dúvida. Além disso, uma operação que não pode ser desfeita, como aprovar um saque, exige um limiar mais alto do que uma operação só de leitura. Observe que, mesmo acima de 0,9, o código não executa imediatamente; ele pede confirmação. Confidence alto não substitui a permissão para executar.
0,5 e 0,9 são exemplos, não valores recomendados de forma geral. A documentação oficial também diz que o valor adequado depende da área e do desempenho do modelo para o seu uso. Ela recomenda começar com limiares conservadores e ajustá-los com os seus próprios dados.
4. Exemplo: direcionando as solicitações de suporte
Por exemplo, considere a consulta "Clico no botão de download da minha fatura, mas nada acontece". Se você a direcionar para cobrança por causa da palavra "fatura", vai deixar passar um defeito de tela. Se quiser que o Jev faça o julgamento, explique os limites de cada equipe e depois faça-o escolher um candidato.
Seguindo o guia de início rápido oficial e a referência da API, a requisição fica assim. Obtenha uma chave de API e envie JSON para POST https://api.typesafe.ai/v1/systemone.
{
"model": "jev-1.13.0",
"state": "Clico no botão de download da minha fatura, mas nada acontece.",
"questions": {
"team": {
"type": "choice",
"instructions": "Escolha o candidato de equipe que corresponde ao principal pedido da mensagem.",
"criteria": {
"billing": "Perguntas sobre o valor cobrado, a forma de pagamento ou cobranças em duplicidade.",
"technical": "Operações na tela, erros ou recursos que não funcionam.",
"review": "Vários pedidos misturados, ou informação insuficiente para decidir quem deve tratar."
}
},
"service_unavailable": {
"type": "noul",
"instructions": "A mensagem relata que uma tela ou funcionalidade está indisponível no momento?"
}
}
}
Envio e tratamento da resposta
Obtenha uma chave de API no console e defina em HTTP os cabeçalhos Authorization: Bearer <API_KEY> e Content-Type: application/json. Guarde a chave em variáveis de ambiente ou similares no servidor, e não a incorpore em HTML público nem em repositórios.
Para testar a conexão primeiro, você pode colar o exemplo de curl do guia de início rápido oficial como está e executá-lo. Coloque a chave na variável de ambiente TYPESAFE_API_KEY e depois execute. Este exemplo usa Noul para perguntar se uma consulta em inglês expressa urgência.
curl -X POST https://api.typesafe.ai/v1/systemone \
-H "Authorization: Bearer $TYPESAFE_API_KEY" \
-H "Content-Type: application/json" \
-d @- <<'EOF'
{
"state": "Hi, I've been trying to connect my Stripe account for 3 days and the integration keeps failing. I'm losing sales. Please help ASAP.",
"model": "jev-latest",
"questions": {
"urgency": {
"type": "noul",
"instructions": "Esta mensagem expressa urgência?"
}
}
}
EOF
Para enviar o exemplo em português acima, substitua o JSON entre <<'EOF' e EOF por aquele JSON. Ao chamar pelo código, ou quando um agente que ajuda no desenvolvimento lê a especificação, a documentação oficial oferece os seguintes pontos de entrada.
- Chamada pelo Python:
pip install typesafe-sdk(Python 3.10 ou superior). O cliente do SDK lê a variável de ambienteTYPESAFE_API_KEYe, por padrão, chama ojev-latest. - Desenvolvimento com Claude Code:
claude plugin marketplace add typesafe-ai/skillse depoisclaude plugin install typesafe@typesafe-ai. Isso instala uma skill oficial que passa ao agente de programação os três tipos de pergunta e os padrões de projeto (Agent skill).
Voltando ao exemplo em português, os campos a ler e suas finalidades estão na figura e na tabela a seguir. Com Choice você obtém o candidato de equipe, e com Noul verifica se há relato de funcionalidade indisponível.
| Campo a ler | Valor de exemplo / significado | O que fazer no seu aplicativo |
|---|---|---|
team.choice | technical (equipe técnica) | Mostrar o candidato da equipe |
team.probabilities | {"technical": 0.80, "billing": 0.15, "review": 0.05} | Verificar se o julgamento está dividido entre os candidatos |
team.confidence | Concentração calculada a partir da distribuição de probabilidade | Comparar com uma condição definida com base nos seus próprios dados de avaliação |
service_unavailable.noul | 0,85 (avaliado como relato de indisponibilidade) | Não confundir com gravidade; usar como item de confirmação |
Cada campo fica sob answers. Prepare também um destino de revisão para os casos em que os candidatos estão próximos, a informação é insuficiente ou a resposta não pode ser obtida. Base dos tipos: TypeSafe "API reference".
- 401 e 422: corrija a configuração ou a entrada
- 401 indica chave ausente ou inválida; 422 indica falha na validação do formato da entrada. Corrija a configuração ou a mensagem e reenvie.
- 429 e 529: espere e tente de novo
- Não repita em sequência rápida; aumente gradualmente o tempo de espera. O SDK oficial faz essa nova tentativa automaticamente por padrão.
Erros HTTP são diferentes de confidence baixo. Não os trate como valores de resposta. A base é a referência da API acima.
No início, basta não alterar o roteamento atual e apenas colocar lado a lado a equipe escolhida por uma pessoa e os candidatos do Jev. Verifique se um problema técnico continua sendo roteado corretamente mesmo que contenha a palavra "fatura", se mensagens com vários pedidos podem ser enviadas para revisão e se ele evita concluir precipitadamente quando faltam informações. Ao encontrar um erro, adicione-o como caso de falha e revise se as descrições dos candidatos se sobrepõem.
Ao incorporar a um agente de IA, separe "o modelo que julga", "as ferramentas que executam" e "as condições sob as quais a execução é permitida", e mantenha os cálculos de valores e as verificações de permissão no código. Isso facilita rastrear onde ocorreu o erro quando houver um julgamento equivocado.
A documentação oficial da TypeSafe também traz outros exemplos de implementação: guardrails para apps com LLM, seleção de documentos recuperados com RAG, reordenação de resultados de busca e verificação de citações. Mesmo ao usar para guardrails ou seleção de documentos, a fraqueza das "entradas que induzem a resposta", tratada na próxima seção, continua existindo. (A abordagem de parar tanto na entrada quanto na saída é explicada em O que são guardrails de IA?)
5. Tarefas que não combinam e fraquezas conhecidas
A TypeSafe publica as limitações conhecidas do Jev 1.13. Não presuma que ele é preciso só porque é apenas para julgamento. Divida o trabalho da seguinte forma.
| Condição em que tem dificuldade | Problema possível | Contramedida de design |
|---|---|---|
| Contar e calcular | Confunde contagens de caracteres, de itens ou números exatos | Calcule com um parser ou com código comum |
| Comparar datas | Julgamentos sobre ordem ou se algo está dentro de um período ficam instáveis | Extraia os elementos necessários e compare como tipos de data |
| Duplas negações e perguntas indiretas | Fica preso à superfície do texto, e não à intenção | Escreva a condição diretamente e separe vários julgamentos |
| Entradas com muita informação irrelevante | Informações desnecessárias atrapalham o julgamento | Pesquise e extraia primeiro, depois envie apenas os itens necessários |
| Entradas que induzem a resposta | É afetado por instruções dentro do texto ou por frases que afirmam como ele deve se classificar | Avalie com casos de falha que incluam entradas indutivas e gerencie as permissões de execução separadamente |
| Divergência entre instructions e criteria | Se a pergunta e os critérios pedem coisas diferentes, pode haver confusão (por exemplo, atribuir o significado de "não" ao true no Noul reduz a precisão) | Escreva os critérios como extensão da pergunta e alinhe o sentido dos dois |
| Geração de texto livre | Não é adequado para respostas, explicações ou geração de código | Use modelos de texto ou uma IA generativa |
Além disso, as probabilidades de perguntas de Sim/Não feitas separadamente não necessariamente satisfazem relações matemáticas. Mesmo que você faça a mesma condição e sua negação com Noul separados, a soma não é garantidamente 1, e você não pode tratar as probabilidades de Choice e de Noul com o mesmo limiar. Ao mudar a forma de uma pergunta, avalie novamente em vez de reutilizar valores ajustados anteriormente.
Pontos a verificar ao usar em português
6. Como ler preço, limites de entrada e velocidade
Em 21 de setembro de 2026, a página Models da TypeSafe indicava que o modelo atual era jev-1.13.0. Em 14 de outubro de 2026, o jev-1.14.0 também foi lançado (preço e tamanho de contexto são os mesmos). Na verificação de 19 de outubro, o alias jev-latest (estável) apontava para a 1.13, e jev-preview para a 1.14. Aliases mudam quando uma nova versão é lançada; por isso, se quiser resultados estáveis, especifique um ID com versão. O preço é de US$ 0,042 por 1 milhão de tokens de entrada, e os tokens de saída são gratuitos. Não se trata de uma taxa fixa por solicitação: ela varia conforme a quantidade de tokens de entrada, que inclui state e questions. Como referência de escala, o exemplo de resposta do guia de início rápido oficial (uma consulta em inglês de três frases com três perguntas) mostra usage.input_tokens na faixa de algumas centenas de tokens. No anúncio, a TypeSafe também escreve que não consegue provar, neste momento, que esse preço não é subsidiado, e que só o tempo mostrará se ele pode ser sustentado. A empresa espera que os preços caiam, e não que subam.
O duplo limite de 64k e 32k
Condição 1: a requisição inteira
64k tokens no máximo
Condição 2: state + a pergunta mais longa
32k tokens no máximo
Ambas precisam ser atendidas. Isso não significa que você pode colocar um texto de 64k diretamente em state. Este é o valor padrão. Se você adicionar o cabeçalho TypeSafe-Danger-Zone-Long-Context: true à requisição, os dois limites sobem para 262k tokens (o preço é o mesmo, mas a documentação oficial explica que fica mais lento e a precisão cai).
A entrada é somente texto. Imagens, áudio e vídeo não podem ser enviados diretamente, por isso precisam ser convertidos em texto ou dados estruturados por outro processo.
Os limites de taxa podem mudar
Os limites de taxa são definidos por organização; verifique o limite da sua no console do desenvolvedor (na página Models de 19 de outubro de 2026; antes, a página listava números fixos). A unidade é tokens por segundo e requisições por segundo. Ao ultrapassar qualquer um deles, a API retorna 429 Too Many Requests. O SDK oficial faz novas tentativas com backoff por padrão e, se a resposta tiver o cabeçalho retry-after, segue esse valor. Se você chamar a API HTTP diretamente, escreva sua própria lógica de nova tentativa que aumente o tempo de espera, como descrito acima.
A documentação oficial observa que, como a demanda é muito grande, os limites são ajustados dinamicamente e podem mudar sem aviso prévio. Limites mais altos estão disponíveis em contratos personalizados ou empresariais. Para um projeto que envia grandes volumes de texto de uma vez, verifique os valores no início e defina antecipadamente como esperar quando atingir um limite.
Compare velocidade e custo na mesma tarefa
Em seu anúncio, a TypeSafe informa o tempo entre a requisição e o resultado como 70 ms a 500 ms. No entanto, as avaliações públicas da empresa foram executadas principalmente a partir de notebooks dela na costa oeste dos EUA, onde fica a sede do serviço.
Na comparação com modelos generativos, ela cita o número "193,6 vezes mais rápido e 444,6 vezes mais barato". Isso vem de uma avaliação de fluxo de trabalho criada pela própria empresa, e a própria TypeSafe considera que ele está na faixa alta das melhorias que podem ser alcançadas na prática. Ela afirma que os fluxos de avaliação não foram escolhidos para favorecer o próprio modelo e não estão nos dados de treinamento, mas também observa que, como foram criados por membros de sua própria equipe de capacidade de modelos, pode haver viés. Leia ambos como números do próprio fornecedor, e compare na sua tarefa, observando os pontos a seguir.
- Os resultados mudam quando as condições mudam: compare com a mesma distância de rede, o mesmo tamanho de entrada, o mesmo número de perguntas e as mesmas configurações do modelo de comparação.
- Não serve como multiplicador frente ao chat comum: a comparação oficial inclui o processamento para extrair uma distribuição de probabilidade de um modelo generativo.
O que comparar na prática
- Custo: preço unitário da API + esforço operacional
- Inclua a proporção de pré-processamento, novas tentativas e espera por revisão. Mesmo que a classificação seja barata, o esforço total não diminui se a revisão humana aumentar.
- Velocidade: média + requisições lentas
- Verifique se o trabalho não para em horários de congestionamento ou quando as respostas demoram.
7. O que verificar ao testar
Comece pelo Playground para ver se seus critérios de pergunta são compreendidos. O guia de início rápido oficial inclui etapas para obter uma chave de API e chamar a API. Como está em acesso antecipado, primeiro verifique suas permissões de uso depois de fazer login.
① Insira a mensagem
Se tiver acesso, digite o texto da consulta no Playground.
② Defina os candidatos
Defina as equipes candidatas e seus limites com Choice.
③ Varie a redação e compare
Observe as mudanças nos candidatos e nas probabilidades. Isso pode ser feito antes de preparar o ambiente de execução.
Quatro pontos a cobrir na avaliação
Prepare as respostas corretas e os limites.
Além de exemplos em que pessoas decidiram a equipe, inclua pedidos múltiplos, textos muito curtos, negações e frases indutivas. Ao usar dados reais, confirme que o conteúdo pode ser enviado a terceiros.
Fixe os critérios das perguntas.
Escreva o que conta como cada candidato e defina as condições para direcionar para "Outro". Confirme também com exemplos diferentes dos usados para ajustar os critérios.
Observe a precisão e a proporção enviada para revisão juntas.
Conte quantos itens foram processados automaticamente em cada limiar e quantos desses foram classificados errado. Informe também o volume que aguarda revisão, para que a precisão sozinha não pareça melhor do que é.
Registre o modelo e as perguntas.
Guarde o ID do modelo, o tipo de entrada, a versão das perguntas, as respostas e o tempo de processamento, e compare antes e depois das mudanças.
1 quadrado = 1 item.
Taxa de processamento automático
80%
80 itens ÷ 100 itens no total
Taxa de erro entre os automáticos
5%
4 classificados errado ÷ 80 automáticos
Enviado a uma pessoa
20 itens
100 no total − 80 automáticos
Observe as três juntas. 100 itens sozinhos não comprovam a precisão em produção.
Se for aplicar ao seu trabalho
- Aplicar repetidamente um julgamento com candidatos definidos a grandes volumes de texto
- Considere o Jev como candidato de comparação. Avalie a precisão com suas próprias entradas, critérios e idioma.
- Redigir textos como respostas, explicações ou código
- Use um modelo generativo ou modelos de texto.
- Calcular valores ou datas com exatidão
- Processe com código comum.
Premissa deste artigo: baseia-se no anúncio da TypeSafe e na documentação oficial (verificados em 21 de setembro de 2026, com atualização confirmada em 19 de outubro). O autor não executou a API e não mediu a precisão em português nem os tempos de espera reais.
FAQ
P. O Jev consegue conversar como o ChatGPT?
R. Não é um modelo que gera respostas livres. Você insere um texto e recebe julgamentos na forma que definiu com Choice, Score ou Noul. Se precisar de textos de resposta ou explicação, combine com um modelo generativo ou modelos de texto.
P. Se ele não tem alucinações, não vai errar?
R. Restringir a saída a um tipo ou a candidatos e julgar o conteúdo corretamente são coisas diferentes. A documentação oficial também lista fraquezas como cálculos, datas, entradas com muita informação irrelevante e frases indutivas. Você precisa medir a precisão com os seus próprios dados.
P. O 0,5 do Noul significa médio?
R. Significa que Sim e Não estão sendo avaliados com probabilidades semelhantes. Não é um valor que representa um ponto intermediário de gravidade ou qualidade. Para medir grau, um Score com níveis explicados é a alternativa.
P. Posso usar em português?
R. A documentação oficial afirma que processa outros idiomas além do inglês, incluindo as escritas CJK, mas explica que o inglês é o principal idioma de treinamento e atualmente é o que tem a melhor precisão. Verifique com dados de avaliação em português antes de usar em trabalho.
P. Também pode ser usado para julgar imagens ou áudios?
R. A entrada do modelo atual é somente texto; imagens e áudios não podem ser enviados diretamente. Se o seu projeto envia caracteres ou dados estruturados obtidos por outro processo, avalie incluindo os erros desse pré-processamento.