# Jev para processos: decisões rápidas dentro de um agente procedural

> O Jev não conversa: devolve decisões tipadas com probabilidade. Por que isso encaixa nas pequenas decisões de um processo, e como ligá-lo a um procedimento na Sublime.

**URL:** https://www.sublime.am/blog/jev-para-processos-agentes-procedurais
**Data:** 2026-10-14
**Categoria:** Engenharia de Agentes
**Tags:** Agentes de IA, Jev, Procedimentos

---


Em 15 de setembro de 2026, a TypeSafe AI lançou o Jev, um modelo que não sabe conversar, e foi feito assim de propósito. Você manda um conteúdo e uma lista de perguntas fechadas, e ele devolve decisões tipadas, cada uma com a probabilidade de estar certa.

Para quem se acostumou com modelos que escrevem de tudo, parece um passo atrás. Para quem desenha processos, é a peça que faltava. A maior parte das decisões de um atendimento não pede um texto, pede uma escolha.

## O que o Jev faz, e o que não faz

A TypeSafe chama o Jev de [modelo System One](https://typesafe.ai/blog/introducing-system-one-models-and-jev), em referência ao pensamento rápido e intuitivo descrito por Daniel Kahneman. A entrada é um estado, em texto ou dados estruturados, mais perguntas de três tipos:

| Tipo | Pergunta | Devolve |
|---|---|---|
| **Choice** | Qual destas opções? (até 255) | A opção escolhida, a probabilidade de cada uma e a confiança |
| **Score** | Onde isso fica numa escala? | A posição na escala, com probabilidade por nível |
| **Noul** | Sim ou não? | A probabilidade de a resposta ser sim, de 0 a 1 |

Todas as perguntas são respondidas juntas, numa única passada. E a resposta nunca sai do conjunto que você declarou: uma Choice entre "suporte", "venda" e "financeiro" devolve uma dessas três, nunca uma quarta.

Os números da empresa são agressivos: de 70 a 500 milissegundos por resposta e US$ 0,042 por milhão de tokens de entrada, com a saída gratuita. A página inicial fala em até 193 vezes mais rápido e 444 vezes mais barato que um LLM nas tarefas para as quais o Jev foi feito. As medições independentes são mais modestas. Uma análise de 12.759 posts de usuários depois do lançamento, citada pela [InfoQ](https://www.infoq.com/news/2026/10/typesafe-ai-jev-released/), encontrou uma mediana de 7 vezes mais velocidade e 30 vezes menos custo. Continua sendo muito.

O que ele não faz também está escrito: não gera texto, não conversa e não raciocina em várias etapas. Para isso continua existindo o LLM.

## A documentação do Jev parece um manual de processo

A parte mais interessante da documentação é a página de [limitações da versão 1.13](https://docs.typesafe.ai/model-jaggedness/jev-1.13). Algumas linhas:

- "O Jev não é uma calculadora. Recomendamos fortemente implementar qualquer lógica matemática em código."
- Ele lê datas como texto, e não como quantidades ordenadas. Ordenar, somar dias e comparar prazos fica com o código.
- Ele não conta de forma confiável. Conte no código, com uma pergunta por item.
- A precisão cai quando o estado cresce com conteúdo que não tem a ver com a decisão. Filtre antes e mande só o que a pergunta precisa.

É a mesma divisão de trabalho que vale para qualquer modelo: o modelo entende e a regra decide. Um modelo feito para decidir rápido chegou à mesma conclusão e deixou isso escrito na própria documentação. Mostramos essa divisão no caso do preço em [Seu agente de IA não deveria calcular preço](/blog/agente-de-ia-nao-deveria-calcular-preco).

## Onde ele entra num processo

Um processo de atendimento tem muitas decisões pequenas e poucas conversas longas. Qual é o assunto? A pessoa quer falar com alguém? O pedido é urgente? O lead está pronto para comprar? A ação que o agente vai executar é a que o cliente pediu?

Todas são perguntas de múltipla escolha. Um LLM consegue respondê-las, mas custa caro para o que é, demora segundos em vez de milissegundos e não diz quão seguro está.

Num agente procedural, cada decisão tem a ferramenta certa, e o Jev ocupa a camada do meio:

| Camada | Quem decide | Exemplo |
|---|---|---|
| **Regra** | O seu código | Prazo de troca menor que 30 dias, valor acima da alçada |
| **Decisão rápida** | O Jev | Assunto da mensagem, pedido de humano, urgência, temperatura do lead |
| **Conversa** | O LLM | Entender um pedido confuso, responder no tom da casa |
| **Fronteira** | Uma pessoa | Desconto, exceção, cliente insatisfeito |

O que liga as camadas é a confiança. Acima de um limiar que você define, o processo segue pela decisão do Jev. Abaixo dele, a decisão sobe para o LLM ou para uma pessoa.

Armin Ronacher, CTO da Earendil, criticou o Jev dizendo que o desenho "delega um pouco o problema da alucinação ao usuário": alguém precisa decidir se 50% de probabilidade basta para agir. A crítica é justa, e um procedimento existe justamente para isso. Num processo bem desenhado, esse limiar não fica implícito na cabeça de ninguém. Ele está escrito numa etapa, com um caminho declarado para cada lado.

## Como ligar o Jev a um procedimento na Sublime

A Sublime não tem integração nativa com o Jev, e nem precisa. O Jev é uma API HTTP, e a etapa de [Requisição HTTP](/docs/procedures/acting-on-the-world) conecta um procedimento a qualquer API.

O desenho usa três etapas:

```text
Requisição HTTP      Condição                 Ramos do processo
(pergunta ao Jev) →  (confiança ≥ 0,9?)  →  ├── sim: segue pela escolha do Jev
                                            └── não: Roteador AI ou Transferir a humano
```

**1. A requisição.** Um `POST` para `https://api.typesafe.ai/v1/systemone`, com autenticação Bearer apontando para uma variável do tipo segredo que guarda a sua chave. No corpo, o estado recebe a mensagem do contato e as perguntas são as decisões que o procedimento precisa tomar. Com a mensagem já preenchida, fica assim:

```json
{
  "model": "jev-1.13.0",
  "state": "Oi! Quanto fica o chalé pra 4 pessoas no réveillon?",
  "questions": {
    "assunto": {
      "type": "choice",
      "instructions": "Qual é o assunto principal da mensagem do cliente",
      "criteria": {
        "orcamento": "Quer saber preço ou disponibilidade",
        "reserva_existente": "Fala de uma reserva já feita",
        "outro": "Qualquer outro assunto"
      }
    },
    "pede_humano": {
      "type": "noul",
      "instructions": "O cliente pede para falar com uma pessoa"
    }
  }
}
```

Fixar a versão, como `jev-1.13.0`, em vez do apelido `jev-latest` é recomendação da própria TypeSafe. O apelido passa a apontar para a versão nova quando ela sai, e o limiar que você calibrou começa a valer para outro modelo sem você saber.

**2. O mapeamento.** Ao configurar a etapa, você executa a requisição de verdade e marca os campos da resposta que viram variáveis: a escolha e a confiança de `assunto`, e a probabilidade de `pede_humano`. Cada um vira uma variável tipada, disponível para as etapas seguintes.

**3. A condição.** Uma etapa de [Condição](/docs/procedures/deciding-the-path) compara os números com os limiares. Se a probabilidade de `pede_humano` passa de 0,8, a conversa vai para a equipe. Se a confiança do assunto passa de 0,9, o procedimento segue pelo ramo daquele assunto. Se não passa, a decisão vai para um Roteador AI, que lê a conversa inteira com um LLM, ou direto para uma pessoa.

Repare no que fica com cada parte. O Jev responde as perguntas fechadas em milissegundos. O limiar é uma regra sua, escrita numa etapa e igual em toda execução. E o LLM só entra quando a pergunta fechada não bastou.

Falta decidir uma coisa: o que fazer se a API do Jev estiver fora do ar. Configure a etapa para seguir sem o resultado. Sem confiança nenhuma, a condição cai no ramo de baixa confiança e o processo continua pelo LLM. O Jev fica sendo uma otimização, nunca um ponto único de falha.

## Onde ele compensa

- **Triagem de entrada.** Toda mensagem nova passa por uma Choice de assunto antes de qualquer outra coisa. Com volume, é aqui que a diferença de custo aparece.
- **Pedido de humano e insatisfação.** Uma Noul para "quer falar com uma pessoa" e outra para "está irritado" pegam o sinal na primeira mensagem, em vez de o agente insistir três vezes até perceber.
- **Qualificação de lead.** Um Score de intenção de compra decide se a conversa segue para o procedimento de venda ou para uma resposta informativa.
- **Portão antes de uma ação.** Antes de uma etapa que cobra, emite ou cancela, uma Noul confere se a ação corresponde ao que o cliente pediu. A LangChain usa o Jev da mesma forma para [barrar chamadas de ferramenta arriscadas](https://www.langchain.com/blog/building-a-harness-with-jev) antes de elas rodarem.

## Cuidados antes de confiar

O Jev está em acesso antecipado, e os números da página inicial são da própria empresa. Quatro cuidados valem para qualquer uso sério:

1. **Calibre o limiar com mensagens reais.** Separe algumas centenas de mensagens que a sua equipe já classificou e veja quanto o Jev acerta em cada faixa de confiança. É essa tabela que diz onde fica o 0,9.
2. **Troque a ordem das opções.** A documentação avisa que a versão 1.13 tende a favorecer a primeira opção de uma Choice. Rode a mesma amostra com a ordem invertida e confira se as respostas mudam.
3. **Mande só o que a pergunta precisa.** A última mensagem e os campos relevantes, e não o histórico inteiro.
4. **Meça o caminho e o dado separadamente.** Na Sublime, a requisição HTTP não sai em preview nem nos [cenários](/docs/publishing/scenario), então ali a condição se comporta como se o Jev não tivesse respondido e o processo segue pelo ramo de baixa confiança. Isso prova que o caminho seguro funciona. A precisão do Jev se mede à parte, com a amostra rotulada. Juntas, as duas medições dizem que o processo funciona.

## Uma peça no lugar certo

O Jev não substitui o LLM nem o procedimento. Ele ocupa um espaço que vinha sendo preenchido pelo modelo errado: as dezenas de decisões pequenas que um processo toma em cada conversa. Com um limiar escrito numa etapa e um caminho declarado para quando ele não tem certeza, essas decisões ficam mais rápidas, mais baratas e, pela primeira vez, vêm com um número que diz quanto confiar nelas.
