주요 콘텐츠로 건너뛰기
AI 튜토리얼

Jev 프로젝트를 탐색하고 타입이 지정된 확률적 의사결정 워크플로 구축하기

이 튜토리얼에서는 Jev의 타입이 지정된 의사결정 모델을 설명하고, 핵심 질문 프리미티브를 소개하며, Awesome Jev 디렉터리에서 SDK, 통합 기능, 예제, 평가 도구를 선택하는 방법을 보여줍니다. 또한 라우팅, 점수화, 검증, 가드레일, 보정, 결정론적 폴백을 위한 실용적인 패턴도 알아봅니다.

Jev 프로젝트를 탐색하고 타입이 지정된 확률적 의사결정 워크플로 구축하기

Awesome Jev가 제공하는 것

Awesome Jev는 TypeSafe AI의 System One 모델인 Jev로 구축된 프로젝트를 엄선해 소개하고 출처를 제공하는 디렉터리입니다. 이 저장소 자체가 SDK인 것은 아니며, 공식 리소스, 커뮤니티 클라이언트, 개발자 도구, 워크플로 통합, 데모, 재현 구현, 평가 프로젝트를 개발자가 찾을 수 있도록 돕습니다.

Jev는 자유 형식의 텍스트 생성보다 범위가 제한된 소프트웨어 의사 결정을 위해 설계되었습니다. 비정형 프로그램 상태와 타입이 지정된 질문을 결합한 다음, 제약된 답변과 관련 확률을 반환합니다. 이러한 답변을 어떻게 처리할지는 애플리케이션 코드가 결정합니다.

프로그램 상태 + 타입이 지정된 질문
→ 제약된 답변 + 확률
→ 결정론적 애플리케이션 로직

이 디렉터리는 공개 소스 코드, 구체적인 Jev 사용 사례, 문서화된 제한 사항, 재현 가능한 근거를 갖춘 프로젝트를 우선합니다. 수록된 항목은 2026년 9월 18일에 마지막으로 검토되었지만, 생태계는 새롭고 빠르게 변화하는 것으로 설명됩니다.

핵심 의사 결정 프리미티브 이해하기

프로젝트를 선택하기 전에 애플리케이션이 내려야 하는 의사 결정의 유형을 파악하세요. README에서는 세 가지 질문 프리미티브를 강조합니다.

  • Choice: 가능한 답변의 제한된 집합에서 하나를 선택합니다. 분류, 라우팅, 트리아지, 작업 선택에 적합합니다.
  • Score: 순위 지정, 우선순위 결정, 루브릭 기반 평가를 지원할 수 있는 범위가 제한된 평가 결과를 생성합니다.
  • Noul: 확률적 예, 아니요 또는 알 수 없음 형태의 의사 결정을 나타냅니다. 검증, 조정, 검사, 가드레일에 활용할 수 있습니다.

허용되는 결과를 사전에 정의할 수 있을 때 이러한 프리미티브가 유용합니다. Jev는 범용 텍스트 생성기를 대체하는 도구로 제시되지 않습니다.

개념적 의사 결정 루프

README에는 SDK별 구문이 제공되지 않으므로 다음은 직접 실행할 수 있는 예제가 아니라 개념적 의사 코드입니다.

state = 관련 프로그램 상태 수집()
question = 타입이 지정된 질문 정의(
  허용되는_답변 = ["route_a", "route_b", "abstain"]
)

result = Jev에_질문(state, question)

if result.probability >= 검증된_임계값:
    결정론적_작업_적용(result.answer)
else:
    사람의_검토_요청()

핵심 패턴은 Jev가 확률과 함께 제약된 의사 결정을 제안하고, 일반 애플리케이션 코드가 임계값, 권한, 부작용을 적용한다는 점입니다.

시작점 선택하기

커뮤니티 통합을 도입하기 전에 공식 자료부터 확인하세요.

  1. System One 및 Jev 소개에서 모델 인터페이스, 공개된 주장, 데모, 주의 사항을 확인하세요.
  2. 공식 문서에서 개념, 프리미티브, API 세부 정보, 패턴, 최신 SDK 지침을 검토하세요.
  3. TypeSafe AI에서 제품 개요와 얼리 액세스 진입점을 확인하세요.
  4. 애플리케이션 스택에 따라 공식 TypeScript 및 JavaScript SDK 또는 Python SDK를 선택하세요.

JavaScript 및 TypeScript SDK는 답변 타입을 추론합니다. Python SDK는 동기 및 비동기 사용을 지원합니다. 공급자 비교를 위해 공식 System One Python 어댑터는 Jev와 LLM 공급자에 공통 인터페이스를 제공합니다.

설치 및 설정

Awesome Jev는 카탈로그이므로 공통 애플리케이션 런타임이나 범용 설치 명령을 제공하지 않습니다. 설정 방법은 선택한 SDK 또는 프로젝트에 따라 다릅니다. 오래된 가정에 의존하지 않으려면 다음 절차를 따르세요.

  1. 유지 관리되는 구현을 선택하세요. 첫 번째 통합에는 공식 SDK를 우선 사용하고, 특정 언어나 프레임워크가 필요할 때 커뮤니티 클라이언트를 검토하세요.
  2. 선택한 저장소를 여세요. 패키지 설치, 인증, 환경 변수, 버전 요구 사항은 해당 저장소의 README 지침을 따르세요.
  3. 최신 API 문서를 확인하세요. 정확한 생성자, 요청 필드, 응답 타입, 비동기 동작을 확인하세요.
  4. 최소한의 타입 지정 질문을 만드세요. 서로 명확히 구분되는 소수의 결과부터 시작하세요.
  5. 답변과 확률을 기록하세요. 정확도, 임계값, 지연 시간, 보류 응답을 평가할 수 있도록 충분한 근거를 보관하세요.
  6. 결정론적 제어를 추가하세요. 확률적 답변만으로 되돌릴 수 없거나 영향이 큰 작업이 실행되지 않도록 하세요.

대체 언어 및 프레임워크 클라이언트

이 디렉터리에는 여러 환경을 위한 커뮤니티 통합이 포함되어 있습니다. 예를 들어 Go용 typesafe-go, Elixir 및 OTP용 jev, Laravel용 laravel-typesafe-jev가 있습니다. Python 사용자는 비동기 jevclient도 살펴볼 수 있습니다.

이 프로젝트들은 각각 고유한 설정 지침과 라이선스를 가진 별도의 저장소입니다. Awesome Jev에 포함되었다고 해서 TypeSafe AI가 이를 보증하는 것은 아닙니다.

기본 Jev 워크플로 구축하기

1단계: 범위가 제한된 작업 정의

유한한 출력 공간을 가진 의사결정을 선택하세요. 시작하기 좋은 작업으로는 들어오는 요청을 큐에 할당하기, 평가 기준에 따라 레코드 평가하기, 증거가 주장을 뒷받침하는지 확인하기, 소규모 후보 모음의 순위를 정하기 등이 있습니다.

개념적인 라우팅 정의는 다음과 같을 수 있습니다.

상태:
  들어오는 요청, 계정 컨텍스트, 정책 메타데이터

유형이 지정된 선택:
  billing | technical_support | abuse_review | unknown

적용 규칙:
  선택한 답변이 테스트된 임계값을 충족할 때만 라우팅

2단계: 관련 상태 제공

모델이 누락된 사실을 지어내기를 기대하지 말고, 의사결정에 필요한 정보를 제공하세요. 정책 규칙과 중요한 제약 조건은 명시적으로 유지하세요. 후속 작업에 존재하지 않는 데이터가 필요한 경우 추측하도록 하지 말고 워크플로가 보류하거나 에스컬레이션하도록 하세요.

3단계: 유형이 지정된 질문 작성

유한한 분류에는 Choice, 범위가 제한된 평가에는 Score, 예·아니요·알 수 없음 형태의 확인에는 Noul을 사용하세요. 정확한 요청 형식은 선택한 SDK의 문서를 따르세요.

4단계: 확률 해석

스키마를 충족하는 응답은 결과가 요청된 구조에 맞는다는 것만 증명합니다. 의사결정이 옳다는 것을 증명하지는 않습니다. 반환된 확률은 레이블이 지정된 예시를 바탕으로 테스트된 정책의 입력으로 취급하세요.

if confident and action_is_allowed:
    continue_workflow()
elif review_is_available:
    send_to_human()
else:
    stop_safely()

5단계: 실행을 결정적으로 유지

권한, 합법적인 전환, 요청 한도, 안전 검사를 적용할 때는 일반적인 코드를 사용하세요. 이러한 분리는 중재, 코드 실행, 도구 호출, 물리적 장치 및 기타 영향이 큰 작업에서 특히 중요합니다.

일반적인 사용 사례에 Jev 적용

의미 기반 라우팅

HTTP 라우팅의 경우 hono-jev-router는 의미에 따라 Hono 요청을 라우팅합니다. tiershift는 TypeScript와 Python을 위한 정책 범위 내 모델 라우팅에 초점을 맞추며, jev-codex-router는 턴마다 Codex 모델, 추론 및 속도 설정을 선택합니다.

데이터 필터링 및 분류

jev-curate는 Parquet 및 JSONL 스트림을 필터링하고 점수를 매깁니다. jevlogs는 더 많은 비용이 드는 분석에 앞서 OpenTelemetry 로그를 분류합니다. 데이터베이스 중심 옵션으로는 pg-jev PostgreSQL 확장과 자연어 술어를 사용해 SQL과 유사한 필터링, 순위 지정, 분류 및 점수 매기기를 수행하는 jevsql이 있습니다.

에이전트 및 가드레일

에이전트 중심 프로젝트는 유형이 지정된 의사결정이 모델과 도구 사이에 어떻게 위치할 수 있는지 보여줍니다. jev-guard는 도구 호출에 허용, 확인 요청 또는 거부 결과를 할당합니다. winnow는 Claude Code 컨텍스트에 추가하기 전에 도구 결과를 판단하며, Canny는 증거를 기록하고 뒷받침되지 않은 완료 주장을 검증합니다.

이러한 패턴은 의사결정 계층이 결정론적 권한 부여를 우회할 수 없을 때 가장 강력합니다. 허용 결과가 나오더라도 애플리케이션의 실제 권한 및 안전 정책에 따라 다시 확인해야 합니다.

대화형 및 실시간 시스템

이 디렉터리에는 확률적 판단과 결정론적인 세계 규칙을 분리하는 게임 및 로보틱스 실험이 포함되어 있습니다. typesafe-snake는 게임 틱마다 하나의 유형이 지정된 의사결정을 내리고, 코드는 합법적인 이동을 생성합니다. heist-one은 Jev를 사용해 경비원을 판단하며, 결정론적 코드가 게임 세계를 제어합니다. jev-drone은 MuJoCo 쿼드로터 실험에서 더 느린 전술적 의사결정을 탐구합니다.

신뢰할 수 있는 의사결정을 위한 고급 팁

자체 데이터로 임계값 보정

관련 없는 데모의 신뢰도 임계값을 그대로 사용하지 마세요. 의도한 환경에서 레이블이 지정된 예시를 수집하고, 서로 다른 임계값에서 어떤 결과가 발생하는지 측정하세요. jevcal은 신뢰도 임계값을 조정하고 드리프트를 확인하는 도구로 소개되어 있습니다.

선택적 위험과 지연 시간 측정

신뢰도가 충분하지 않을 때 시스템이 보류할 수 있도록 하세요. 그런 다음 승인된 의사결정의 정확도와 대체 경로로 전송되는 사례의 비율을 모두 측정하세요. jev-benchmarks는 보정, 선택적 위험 및 지연 시간에 초점을 둔 재현 가능한 평가를 제공합니다.

의사결정 방식 비교

Jev가 작업에 적합한지 결정할 때는 통제된 비교를 사용하세요. Janus는 Jev와 다른 모델 중 무엇을 사용할지 측정하고 그에 따라 라우팅합니다. typesafe-ai-benchmark 프로젝트는 비교 작업을 위해 System One의 출력 형식을 모방하는 LLM 게이트웨이를 제공합니다.

대규모 분류 체계를 재귀적으로 처리하기

분류 체계가 모델의 직접 선택지 제한보다 큰 경우, 제한되지 않은 출력 공간을 제시하는 대신 결정을 제한된 단계로 나누세요. jev-tree는 대규모 분류 체계에서 재귀적으로 선택하는 방식을 보여 줍니다.

구조적 검증과 의미론적 검증 결합하기

로컬 스키마 검증과 의미론적 판단은 서로 다른 문제를 해결합니다. zod-jev는 Zod 형태 검증과 Jev 의미론적 검증을 결합합니다. 두 계층을 모두 사용하더라도 대표 데이터로 작업 성능을 검증하세요.

근거 보존하기

각 결정에 대해 입력 상태 버전, 타입이 지정된 질문, 허용된 답변, 선택된 답변, 확률, 임계값, 대체 경로, 최종 결정론적 작업을 기록하는 방안을 고려하세요. 이를 통해 감사, 오류 분석, 보정, 드리프트 감지가 가능합니다.

중요한 주의사항: 스키마를 통과한 결과가 반드시 올바른 결정인 것은 아닙니다. 실제 데이터로 검증하고, 임계값을 보정하며, 영향이 큰 작업은 결정론적 검사 뒤에 배치하고, 사람이 개입할 수 있는 대체 경로를 제공하세요.

공개 재구현을 신중하게 살펴보기

이 디렉터리에는 openjev-sglang, jevmlx, openvons, openjev를 비롯해 독립적인 Jev 유사 인터페이스와 공개 구현도 연결되어 있습니다. 이러한 프로젝트는 공식 TypeSafe 릴리스가 아니라 독립적으로 진행된 작업임을 명시하고 있습니다.

공개 재구현을 평가할 때는 API 호환성, 모델 요구 사항, 하드웨어 지원, 제약 조건 적용, 확률 보정, 지원되는 모달리티, 공개된 제한 사항을 확인하세요. 출력 형식이 유사하다고 해서 동등한 동작이 보장되는 것은 아닙니다.

프로젝트 기여하기

Jev 프로젝트를 만들었다면 저장소의 CONTRIBUTING.md를 읽고 풀 리퀘스트를 여세요. 공개 소스에서 구체적인 Jev 결정 루프를 명확히 보여 주는 소규모 프로젝트도 환영합니다. 작업, 타입이 지정된 출력, 확률 처리, 결정론적 제어, 제한 사항, 재현 단계를 문서화하세요.

Awesome Jev는 CC0 1.0 Universal에 따라 공개됩니다. 연결된 각 프로젝트에는 자체 라이선스가 적용되므로 코드를 사용하거나 수정하기 전에 해당 프로젝트의 조건을 검토하세요.

결론

Awesome Jev는 새롭게 형성되는 System One 생태계를 실용적으로 보여 주는 지도입니다. 해당 언어의 공식 문서와 SDK로 시작해 하나의 제한된 타입 지정 결정을 구현하고, 실행은 결정론적 제어 아래 유지하세요. 프로덕션에서 사용하기 전에 대표 데이터를 평가하고, 임계값을 보정하며, 거부와 지연 시간을 측정하고, 불확실하거나 중대한 상황에 대비해 안전한 사람의 대체 경로를 유지하세요.