Jev State

Jev State

Priyank Karkare · Programação · Produtividade

Jev State é um estúdio no navegador para montar e testar máquinas de estado conversacionais com o Jev, com um projeto TypeScript para baixar.

Prévia da interface de Jev State

Sobre Jev State

About

O que é o Jev State

Jev State é um estúdio para quem precisa que uma conversa com IA termine em um lugar específico. Você desenha os estados pelos quais a conversa pode passar, escreve o critério de entrada de cada um, liga os caminhos permitidos e deixa o Jev escolher o próximo estado depois de cada mensagem.

O problema que ele resolve é bem delimitado. Um bot de suporte responde com educação e mesmo assim manda um pedido de reembolso para a fila errada. Uma mexida no prompt conserta uma conversa e quebra outra sem ninguém notar até o cliente reclamar. O estúdio oferece um lugar para reproduzir essa troca, ler o critério que decidiu, corrigir a descrição do estado e transformar o resultado esperado em teste.

O modelo Jev Choice é a camada de decisão da TypeSafe e não escreve texto. Ele responde a uma pergunta com opções fechadas e devolve a escolhida mais uma probabilidade por opção. É por isso que a interface consegue mostrar a entrada, a pergunta, a distribuição e a checagem do limite em cada turno. As respostas ficam em outra camada: o texto que você escreve por estado ou uma chamada à Responses API da OpenAI quando conecta uma chave.

Três limites valem antes de começar. O editor trabalha com máquinas planas de 2 a 12 estados, e estados aninhados, regiões paralelas e importação de arquivos XState ainda não existem. Os projetos ficam no armazenamento local do navegador, sem conta e sem sincronização entre aparelhos. Decisões reais são cobradas nos seus créditos da TypeSafe, e respostas geradas nos créditos da OpenAI.

Primeiros passos

  1. Abra jev-state.vercel.app e copie um dos fluxos de exemplo, ou comece com a tela em branco. Os exemplos não são projetos seus, então clique em "Use this example" para criar uma cópia editável.
  2. Em Define, selecione um estado e escreva o critério de entrada, a resposta que ele deve enviar e os estados para os quais pode ir. Arraste da alça direita de uma caixa até a esquerda de outra para ligar as duas.
  3. Entre em Connect Jev e cole uma chave de API da TypeSafe, gerada em console.typesafe.ai/keys. A conexão só verifica o acesso à conta e não gasta inferência. Para explorar sem chave, escolha Simulation.
  4. Envie uma mensagem em Try e inspecione o resultado: estado escolhido, probabilidades, como a confiança ficou diante do limite, modelo usado, latência e consumo de tokens.
  5. Salve a conversa como teste de regressão com o desfecho que você queria e rode a suíte em Test. Abra Get code quando precisar do fluxo, do motor de execução e de um exemplo de integração em um ZIP.

Informações do produto

Uma visão rápida dos preços, das plataformas compatíveis e do desempenho de Jev State.

Plano gratuitoSim
Planos pagosFree (no paid tiers)
PlataformaWeb, self-hosted Node.js 22
DesenvolvedorPriyank Karkare
CategoriaProgramação · Produtividade
Data de lançamentoSep 2026
Última atualizaçãoOct 2026
Visitas ao siteN/A
Ranking global do siteN/A
Disponibilidade da APINão

Ideal para

Os usuários, tarefas e cenários em que esta ferramenta se encaixa melhor.

Usuários

  • Desenvolvedores TypeScript que montam um agente de conversa com estados explícitos
  • Times de suporte e de onboarding cujos fluxos já têm forma
  • Criadores independentes que querem testar o Jev antes de assumir compromisso

Tarefas

  • Transformar uma conversa ruim em teste
  • Reescrever critérios de roteamento depois de trocar de modelo
  • Levar um fluxo já testado para o app em produção

Cenários

  • Uma dúvida de cobrança sempre cai no time técnico
  • Um ajuste de prompt melhora um caso e estraga quatro
  • Um agente de código cuida da integração

Principais recursos

Editor visual do fluxo

Estados são caixas no quadro e transições são linhas entre elas, e o grafo inteiro se edita arrastando. Cada estado guarda rótulo, critérios de entrada, texto de resposta, palavras-chave da simulação e a lista de destinos possíveis. Dá para reorganizar um grafo bagunçado com o layout automático, desfazer um movimento errado ou trabalhar pela lista de estados quando o quadro enche.

Decisões tipadas com probabilidades

Cada destino de saída vira um critério dentro de uma única pergunta Choice, e o Jev devolve uma resposta mais uma distribuição entre as opções. Essa pergunta única é a unidade mínima dos testes de conversas com IA. O painel de inspeção registra a entrada exata, o texto da pergunta, as probabilidades, a comparação com o limite, o modelo usado, a latência e o consumo. Quando um turno surpreende, esse registro explica o roteamento em vez de pedir confiança cega.

Limite de confiança e opção de permanecer

O runtime valida a resposta do modelo antes de agir e só aplica a transição quando a confiança passa do seu limite. Abaixo disso, a conversa fica onde está e responde a partir do estado atual, que é o comportamento desejado para retomadas curtas ou mensagens ambíguas. Uma resposta malformada do provedor derruba o turno em vez de mover a máquina.

Salvar uma conversa como teste

Uma conversa encerrada vira caso de regressão com um clique. Você escolhe o estado que queria alcançar, mesmo quando a execução foi para outro lugar, e pode marcar o estado esperado depois de cada turno anterior. Cada caso aceita até cinco mensagens do usuário, e o runtime insere a resposta do assistente no histórico antes da mensagem seguinte, então o caso se comporta como a conversa de origem.

Avaliações com cobertura e comparação entre execuções

A tela de testes mostra taxa de acerto, latência, consumo, traços legíveis de usuário e assistente, e quais estados e transições foram exercitados. Ao repetir a suíte, os casos sem alteração são comparados com a execução anterior no mesmo modo, com regressões e correções destacadas. Mexer no comportamento ou nas expectativas marca relatórios antigos como desatualizados, para que evidência velha não passe por resultado atual.

Exportar para um projeto TypeScript executável

Get code gera um ZIP com workflow.json, um fluxo de trabalho em TypeScript em workflow.ts, um motor compartilhado em lib/, um exemplo multiturno, um executor de regressões com códigos de saída para CI, um workflow do GitHub Actions que roda a simulação sem segredos e um arquivo de skill para agentes. O código chama TypeSafe e OpenAI a partir do seu servidor e não faz requisições ao Jev State, então não sobra nada para pagar deste lado.

Prós e contras

Prós

  • Gratuito e com licença MIT, sem conta, assinatura ou banco de dados hospedado no caminho.
  • O registro da decisão é bem completo: entrada, pergunta, probabilidades, resultado do limite, modelo, latência e consumo no mesmo painel.
  • A simulação roda sem chaves de provedor, então a suíte exportada pode rodar em cada push de CI.
  • O projeto baixado carrega o mesmo motor que o estúdio usou, o que mantém o comportamento dos testes alinhado ao de produção.
  • As chaves ficam na memória da aba durante a sessão e não entram em exportações, cookies ou armazenamento do navegador.

Contras

  • Só aceita máquinas planas. Faltam estados aninhados, regiões paralelas, guardas executáveis e importação de XState, então grafos complexos precisam ser achatados ou modelados em código.
  • Os valores de confiança da simulação são fixtures, não medições, e uma suíte que passa descreve seu conjunto de dados, não a precisão do modelo.
  • A avaliação real consome créditos da TypeSafe e da OpenAI. Uma suíte ampla contra vários modelos pesa na fatura.
  • O armazenamento do navegador guarda as últimas 60 conversas e 40 relatórios, sem sincronização entre aparelhos, então trabalho longo exige exportações manuais.

Perguntas frequentes

Jev State é um estúdio para desenhar e testar fluxos conversacionais de IA que roteiam entre estados explícitos. Você define os estados e seus critérios de entrada, e o Jev escolhe o estado seguinte depois de cada mensagem. O estúdio registra essas decisões, transforma conversas em testes de regressão e exporta o fluxo como TypeScript.