Jev State
Priyank Karkare · 코딩 · 생산성
Jev State는 Jev로 대화형 상태 머신을 설계하고 회귀 테스트하는 브라우저 스튜디오이며, 결과를 TypeScript 프로젝트로 내려받을 수 있다.

Jev State 소개
About
Jev State란
Jev State는 AI 대화가 정해진 지점에 도착해야 하는 개발자를 위한 스튜디오다. 대화가 머무를 수 있는 상태를 그리고, 각 상태의 진입 조건을 적고, 허용할 경로를 연결한 뒤 사용자 발화마다 Jev가 다음 상태를 고르게 한다.
겨냥하는 문제는 좁고 또렷하다. 고객지원 봇이 공손하게 답하면서 환불 요청을 기술지원 대기열로 보낸다. 프롬프트를 한 줄 고치면 한 대화는 고쳐지고 다른 대화가 조용히 깨지는데, 알아차리는 시점은 고객이 항의한 뒤다. 이 스튜디오는 그 대화를 다시 재생하고, 판단 근거를 읽고, 상태 설명을 고치고, 기대한 결과를 테스트로 남기는 자리다.
Jev Choice 모델은 TypeSafe의 판단 계층이며 글을 쓰지 않는다. 고정된 선택지에서 하나를 골라 답하고 선택지별 확률을 함께 돌려준다. 그래서 화면이 매 턴의 입력, 질문, 확률 분포, 임계값 비교를 보여줄 수 있다. 답변은 다른 계층이다. 상태마다 직접 쓴 고정 문구를 쓰거나, 키를 연결했을 때 OpenAI Responses API가 생성한다.
시작 전에 경계 세 가지를 알아 두자. 편집기는 2~12개 상태의 평면 머신만 다루며 중첩 상태, 병렬 리전, XState 파일 가져오기는 아직 없다. 프로젝트는 브라우저 로컬 저장소에 남고 계정도 기기 간 동기화도 없다. 실제 판단은 TypeSafe 잔액에서, 생성 답변은 OpenAI 잔액에서 차감된다.
시작하기
- jev-state.vercel.app을 열고 예시 워크플로를 복사하거나 빈 캔버스에서 시작한다. 예시는 내 프로젝트가 아니므로 "Use this example"을 눌러 편집 가능한 사본을 만든다.
- Define에서 상태를 고르고 진입 조건, 보낼 답변, 이동 가능한 상태를 적는다. 상자 오른쪽 손잡이를 다른 상자 왼쪽 손잡이로 끌면 연결된다.
- Connect Jev를 열고 console.typesafe.ai/keys에서 발급한 TypeSafe 키를 붙여 넣는다. 연결은 계정 접근만 확인하고 추론은 돌리지 않는다. 키 없이 둘러보려면 Simulation을 고른다.
- Try에서 메시지를 보내고 결과를 본다. 선택된 상태, 선택지별 확률, 임계값과의 비교, 해석된 모델, 지연 시간, 토큰 사용량이 한 화면에 모인다.
- 원했던 결말로 그 대화를 회귀 테스트로 저장하고 Test에서 묶음을 돌린다. 워크플로, 실행 엔진, 통합 예시가 필요하면 Get code에서 ZIP을 받는다.
제품 정보
Jev State의 요금, 지원 플랫폼, 성능을 한눈에 확인해 보세요.
추천 대상
이 도구가 가장 잘 맞는 사용자, 작업, 상황입니다.
사용자
- 상태를 명시한 채팅 에이전트를 만드는 TypeScript 개발자
- 흐름에 이미 형태가 있는 고객지원·온보딩 팀
- 약정 전에 Jev를 시험하려는 1인 개발자
작업
- 잘못된 대화를 테스트로 바꾸기
- 모델 교체 후 라우팅 조건 다시 쓰기
- 검증된 흐름을 운영 앱으로 넘기기
활용 상황
- 결제 문의가 늘 기술지원 쪽으로 간다
- 프롬프트 손질로 한 케이스는 좋아지고 네 개가 나빠진다
- 코딩 에이전트가 통합을 맡는다
주요 기능
시각적 워크플로 편집기
상태는 캔버스 위 상자, 전이는 상자를 잇는 선이며 그래프 전체를 끌어서 고친다. 각 상태는 이름, 진입 조건, 답변 문구, 시뮬레이션용 키워드, 이동 가능한 대상 목록을 갖는다. 복잡해진 그래프는 자동 정렬로 정리하고, 잘못 옮긴 것은 되돌리고, 캔버스가 어수선하면 상태 목록에서 작업한다.
확률이 붙은 타입 기반 판단
나가는 대상마다 하나의 Choice 질문 안에서 조건이 된다. Jev는 선택 하나와 선택지별 분포를 돌려준다. AI 대화 테스트에서 가장 작은 단위가 이 질문 하나다. 검사 패널에는 실제 입력, 질문 문구, 확률, 임계값 판정, 해석된 모델, 지연 시간, 사용량이 남는다. 예상 밖의 턴이 나와도 이 기록이 라우팅을 설명한다. 믿으라고 요구하지 않는다.
신뢰도 임계값과 머무름
런타임은 모델 응답을 먼저 검증하고 신뢰도가 임계값을 넘을 때만 전이를 적용한다. 아래로 떨어지면 대화는 현재 상태에 머물고 그 상태의 답변으로 응답한다. 짧은 되묻기나 모호한 한마디에 맞는 동작이다. 형식이 깨진 응답은 머신을 진행시키지 않고 그 턴을 실패로 끝낸다.
대화를 테스트로 저장
끝난 대화는 한 번의 클릭으로 회귀 케이스가 된다. 실행이 다른 곳으로 갔더라도 도달하고 싶었던 상태를 고를 수 있고, 앞선 턴마다 기대 상태를 선택적으로 표시할 수 있다. 케이스 하나에 사용자 메시지는 최대 다섯 개이며, 런타임이 다음 메시지 전에 어시스턴트 답변을 이력에 넣으므로 원래 대화처럼 움직인다.
커버리지와 재실행 비교가 붙은 평가
테스트 화면은 통과율, 지연 시간, 사용량, 읽을 수 있는 사용자·어시스턴트 기록, 어떤 상태와 전이를 지났는지 보여준다. 다시 돌리면 바뀌지 않은 케이스를 같은 모드의 직전 실행과 비교해 회귀와 수정에 표시를 단다. 동작이나 기대값을 고치면 이전 보고서는 만료로 바뀌어 옛 증거가 현재 결과로 통하지 않는다.
실행 가능한 TypeScript 프로젝트로 내보내기
Get code는 ZIP을 만든다. workflow.json, workflow.ts의 TypeScript 워크플로, lib/ 아래 공용 엔진, 여러 턴을 쓰는 통합 예시, CI 종료 코드를 갖춘 회귀 실행기, 비밀 없이 시뮬레이션을 돌리는 GitHub Actions, 에이전트용 스킬 파일이 들어간다. 코드는 내 서버에서 TypeSafe와 OpenAI를 호출하고 Jev State에는 요청을 보내지 않으므로 이쪽에 남는 비용은 없다.
장단점
장점
- 무료이고 MIT 라이선스다. 계정도 구독도 호스팅 데이터베이스도 중간에 없다.
- 판단 기록이 촘촘하다. 입력, 질문, 확률, 임계값 결과, 모델, 지연 시간, 사용량이 한 패널에 모인다.
- 시뮬레이션은 공급자 키 없이 돌아가므로 내보낸 묶음을 CI의 push마다 실행할 수 있다.
- 내려받은 프로젝트에 스튜디오가 쓴 것과 같은 엔진이 들어가 테스트 동작과 운영 동작이 어긋나기 어렵다.
- 키는 세션 동안 탭 메모리에만 있고 내보내기 파일, 쿠키, 브라우저 저장소에는 남지 않는다.
단점
- 평면 머신만 지원한다. 중첩 상태, 병렬 리전, 실행 가능한 가드, XState 가져오기가 없어 복잡한 그래프는 평평하게 만들거나 코드로 다시 모델링해야 한다.
- 시뮬레이션의 신뢰도 값은 측정치가 아니라 고정 예시값이다. 묶음이 통과해도 말해 주는 것은 내 데이터셋이지 모델 정확도가 아니다.
- 실제 평가는 TypeSafe와 OpenAI 잔액을 쓴다. 여러 모델로 두꺼운 묶음을 돌리면 부담이 빠르게 커진다.
- 브라우저 저장소는 최근 대화 60개와 보고서 40개만 남기고 기기 간 동기화도 없어, 긴 작업은 직접 내보내야 한다.
자주 묻는 질문
Jev State는 명시적 상태 사이를 라우팅하는 대화형 AI 흐름을 설계하고 검증하는 스튜디오다. 상태와 진입 조건을 정의하면 Jev가 메시지마다 다음 상태를 고른다. 스튜디오는 그 판단을 기록하고 대화를 회귀 테스트로 바꾸며 흐름을 TypeScript로 내보낸다.
관련 콘텐츠
Jev State와 관련된 도구, 스킬, 아티클을 살펴보세요.
Jev State 대안
Base Code
Base44 (Wix) · 코딩 · 생산성Base Code는 Base44가 만든 공유 클라우드 개발 환경이다. 팀은 기존 GitHub 저장소에 대한 변경을 채팅으로 설명하고, 미리보기로 확인한 뒤 풀 리퀘스트로 돌려보낸다.
Google EmbeddingGemma 2
Google DeepMind · 글쓰기 · 이미지 · 코딩Google EmbeddingGemma 2는 7억 4000만 파라미터의 오픈 모델로, 텍스트와 코드, 이미지, 오디오, 영상 프레임을 하나의 768차원 공간에 벡터로 바꿔 스마트폰과 노트북에서 실행한다.
GitGlow
GitGlow · 코딩 · 생산성GitGlow는 내 코드와 AI 에이전트의 변경을 한 리뷰에 모으는 데스크톱 Git 클라이언트다. 배포 전에 내 기계에서 무엇이 나가는지 확인할 수 있다.
