TypeSafe AI - Jev

2한나·2일 전

1. Jev란 무엇인가

Jev는 TypeSafe AI가 만든 "System One Model"(시스템 원 모델)이라는 새로운 범주의 첫 제품이다. 기존 LLM처럼 사람이 읽을 자연어 텍스트를 생성하는 모델이 아니라, 소프트웨어가 직접 실행할 수 있는 "타입이 지정된 결정(typed decisions)"과 보정된 확률(calibrated probabilities)을 출력하는 것을 목표로 설계됐다.

  • 핵심 문제 인식: TypeSafe AI 창업자 Diogo Almeida(OpenAI에서 ChatGPT의 instruction-following 방법론에 참여)는 "모델은 수년째 채팅에서 초인적인 수준인데, 왜 자동화는 이만큼 확산되지 않았는가?"라는 질문에서 출발했다고 소개돼 있다.
  • 핵심 가치 제안: 코드가 워크플로우의 제어권을 계속 가지고, AI는 좁고 구조화된 "판단(judgment)"만 담당하도록 분리하는 것이다. 즉 자율 에이전트(모델이 스스로 다음 행동을 정하는 방식)와 달리, "코드가 워크플로우를 소유하고 AI는 좁고 구조화된 결정만 처리한다(code owns the workflow and AI handles narrow, structured decisions)"는 설계 철학을 내세운다. (출처: https://docs.typesafe.ai/concepts/how-to-build-with-system-one)
  • 대상 사용자: 사람의 개입(human co-pilot) 없이 백만 번 이상 반복 실행 가능한 자동화 소프트웨어를 만드는 개발자, 대규모 데이터 처리·분류·검증이 필요한 팀, 실시간 응답(약 70~500ms)이 필요한 애플리케이션(게임, UI 등)을 만드는 팀 등을 주요 타깃으로 명시한다.
  • 이름의 유래: "System One"은 대니얼 카너먼(Daniel Kahneman)의 저서 『생각에 관한 생각(Thinking, Fast and Slow)』에서 말하는 빠르고 직관적인 "시스템 1" 사고에서 따왔다. "Jev"라는 제품명은 경제학자 윌리엄 스탠리 제번스(William Stanley Jevons)에서 따온 것으로, 효율성 향상이 AI 채택의 기하급수적 성장(제번스의 역설)을 가져올 것이라는 기대를 반영한다.
  • 회사 철학(매니페스토): TypeSafe AI는 "AGI 달성"이라는 목표를 좇기보다, "오늘날의 모델은 이미 거대한 경제적 가치를 창출하는 데 필요한 지능 수준을 넘어섰다"고 주장하며, 진짜 병목은 지능이 아니라 "AI를 기존 소프트웨어에 통합하고 그 위에 무언가를 쌓기 어렵다는 점"이라고 설명한다. 초기 자동차가 "말 없는 마차(horseless carriage)"로 설계됐던 것처럼, 지금의 AI도 인간을 상대하는 어시스턴트로만 훈련되어 인간의 감독에 의존하게 된다는 비유를 든다. TypeSafe AI는 AI를 데이터베이스나 인터넷 프로토콜처럼 개발자가 호출할 수 있는 "원시 요소(primitive)"로 만들고자 한다.

2. 주요 기능

2.1 세 가지 "답변 원시 요소(primitives)"

Jev는 자유 형식 텍스트 대신, 아래 세 가지 정해진 응답 형식(질문 유형) 중 하나로만 답한다.

유형목적반환 필드사용 예
Choice정해진 목록 중 하나(순서 없는 범주)를 선택choice(선택된 옵션), probabilities(옵션별 확률, 합 1.0), confidence(0~1)상담 티켓을 부서로 라우팅, 문서 유형 분류, 프로그래밍 언어 감지
Score정해진 등급(2~10단계) 위에서 위치를 평가score(등급 번호의 확률 가중 평균), legend(등급 설명), probabilities, confidence버그 심각도, 고객 불만 강도, 숙련도 평가
Noul예/아니오 명제에 대한 확률 반환noul(0=아니오 ~ 1=예 확률, 별도 confidence 없음)개인정보 포함 여부, 환불 요청 여부, 기술 언급 여부 판별

2.2 병렬 질문 처리 & "context-rot" 방지

하나의 API 요청에 state(평가 대상 데이터)와 여러 개의 질문(questions)을 함께 보내면, 각 질문은 서로 독립적으로 병렬 평가된다. 한 질문의 답이 다른 질문의 숨은 컨텍스트가 되지 않으므로, 질문을 추가해도 "context-rot"(맥락 오염으로 인한 성능 저하)이 생기지 않는다고 설명한다. 질문을 늘려도 응답 시간은 거의 늘지 않고, 추가 토큰 비용만 소폭 증가한다.

2.3 보정된 확신도(Calibrated Confidence)

Choice·Score 응답에는 확률 분포의 "뾰족한 정도"를 나타내는 confidence(0~1) 값이 함께 제공된다. 분포가 한 옵션에 집중되면 1.0(높은 확신), 여러 옵션에 퍼지면 낮은 값이 된다. 이를 이용해 "고확신 시 자동 실행, 저확신 시 사람에게 에스컬레이션" 같은 로직을 코드로 짤 수 있다.

2.4 구조화된 JSON 질문/기준(criteria) 지원

Choice·Score·Noul의 instructions와 criteria에 문자열 대신 JSON 객체를 사용할 수 있어, 스키마·택소노미·DB 로우를 그대로 넘길 수 있고, 계층형 분류(taxonomy 트리 탐색)나 복잡한 필드 추출도 가능하다.

2.5 성능·비용 주장 (마케팅 수치)

  • LLM 대비 최대 193.6배 빠름, 최대 444.6배 저렴(시스템 원 작업 기준, TypeSafe 자체 "workflow evals" 벤치마크; 상한선을 나타내는 값이라고 스스로 명시)
  • 종단 지연시간(latency) 약 70~500ms로, 동등한 지능 수준의 프런티어 LLM보다 40~200배 빠르다고 주장
  • 타입 안전한 구조적 출력으로 "환각(hallucination) 제거"와 "타입 오류 0건 보장"을 주장
  • 랜딩 페이지는 입력 토큰 가격이 "Claude Fable 5.1" 대비 238배 저렴하다고 주장한다(비교 대상 모델명은 원문 그대로 인용)

2.6 코딩 에이전트용 스킬(Skill) 제공

Claude Code 등 코딩 에이전트가 Jev API를 올바르게 통합하도록 돕는 "TypeSafe agent skill"을 별도로 배포한다. (2.6절 상세는 6장 참조)


3. 설치 방법

Jev 자체는 다운로드해 로컬에서 실행하는 모델이 아니라, TypeSafe AI가 호스팅하는 API(SaaS)로 제공된다. "설치"는 이 API를 호출하기 위한 SDK 또는 에이전트 스킬을 설치하는 것을 의미한다.

3.1 API 키 발급

  1. https://console.typesafe.ai/ 에서 계정을 만들고 https://console.typesafe.ai/keys 에서 API 키를 발급받는다.
  2. 발급받은 키를 환경 변수 TYPESAFE_API_KEY로 설정한다. (Python/JS SDK가 이 환경 변수를 자동으로 읽는다.)

3.2 Python SDK 설치

pip install typesafe-sdk
# 또는
uv add typesafe-sdk
  • Python 3.10 이상 필요.
  • HTTP/2를 쓰려면 extra 옵션 설치: pip install "typesafe-sdk[http2]"

3.3 JavaScript/TypeScript SDK 설치

npm install @typesafe-ai/sdk
  • Node.js 20 이상 필요.
  • ESM, CommonJS, TypeScript 타입 선언을 모두 지원.

3.4 코딩 에이전트용 스킬 설치

Claude Code용:

claude plugin marketplace add typesafe-ai/skills
claude plugin install typesafe@typesafe-ai

기타 에이전트용 (범용 skills 설치기):

npx skills add typesafe-ai/skills --skill typesafe-ai

수동 설치: GitHub 저장소(typesafe-ai/skills)의 skills/typesafe-ai 디렉터리 전체를 에이전트의 스킬 디렉터리에 복사한다.

업데이트:

# Claude Code
claude plugin marketplace update typesafe-ai
claude plugin update typesafe@typesafe-ai

# 기타
npx skills update

3.5 코드 없이 바로 테스트

설치 없이 바로 사용해보고 싶다면 플레이그라운드를 이용할 수 있다: https://console.typesafe.ai/playground (출처: https://docs.typesafe.ai/introduction/coding-agents)


4. 사용 방법

4.1 기본 개념: state + questions

모든 요청은 평가 대상 데이터(state) 와 하나 이상의 질문(questions) 을 함께 보내는 구조다. (출처: https://docs.typesafe.ai/concepts/state)

  • state는 세 가지 형태를 지원한다.
    • 문자열: "My card was charged twice."
    • 객체(가장 흔히 권장): {"message": "My card was charged twice.", "order_id": "A-104"}
    • 배열(대화 스레드 등 순차 정보): ["Hi", "My customer number is TS1337.", "My card was charged twice."]
  • state는 텍스트 전용(문자열/JSON/텍스트 배열)만 지원하며, 이미지·음성·영상은 아직 지원하지 않는다.

4.2 HTTP API 직접 호출

  • 엔드포인트: POST https://api.typesafe.ai/v1/systemone
  • 인증: HTTP 헤더 Authorization: Bearer <API_KEY>
curl -X POST https://api.typesafe.ai/v1/systemone \
  -H "Authorization: Bearer $TYPESAFE_API_KEY" \
  -H "Content-Type: application/json" \
  -d @- <<'EOF'
  {"state": "...", "model": "jev-latest", "questions": {...}}
EOF

요청 필드(모두 필수): state, model(예: "jev-latest"), questions(질문 이름 → 질문 정의의 맵). 응답은 model, answers(질문 이름 → 답변 맵), usage(input_tokens, output_tokens)로 구성된다.

4.3 Python SDK 예시

from typesafe_sdk import Choice, Noul, Score, TypeSafeClient

with TypeSafeClient() as client:
    response = client.system_one(
        state={"document": "I was charged twice. Please fix this ASAP."},
        questions={
            "billing": Noul(instructions="Is this ticket about billing?"),
            "tone": Choice(
                instructions="What is the customer's tone?",
                criteria={"calm": None, "frustrated": None, "angry": None},
            ),
            "urgency": Score(
                instructions="How urgent is this ticket?",
                criteria=["can wait", "this week", "today"],
            ),
        },
    )

print(response.nouls["billing"].noul)
print(response.choices["tone"].choice)
print(response.scores["urgency"].score)

비동기 처리가 필요하면 AsyncTypeSafeClient(async/await)를 사용한다. SDK는 기본 재시도 정책으로 재시도를 자동 처리한다.

4.4 설계 원칙 (공식 가이드)

공식 문서는 System One 기반 앱을 만들 때 지켜야 할 5가지 원칙을 제시한다. (출처: https://docs.typesafe.ai/concepts/how-to-build-with-system-one)
1. 코드에 제어권 유지: 결정론적 로직·부수효과는 코드에 남기고, 상식적 판단이 필요한 부분에만 AI를 사용한다.
2. 입력을 전략적으로 분해: 현재 질문과 무관한 컨텍스트는 넣지 않는다(맥락 오염 방지).
3. 원자적 질문 던지기: (가이드가 "가장 중요한 개념"이라고 강조) 복잡한 판단을 좁고 명확한 개별 질문으로 쪼갠다.
4. 병렬성 활용: 독립적인 질문을 한 요청에 여러 개 넣어 왕복 횟수를 줄인다.
5. 출력을 코드에서 결정론적으로 조합: 가중합·임계값·전통적 ML 모델 등으로 답변들을 코드에서 합성하고, 확신도 기반으로 라우팅한다.

4.5 아키텍처 패턴 (Patterns)

문서는 실전에서 자주 쓰는 4가지 패턴을 소개한다. (출처: https://docs.typesafe.ai/patterns)

패턴설명
Speculative Fan-Out관련 있을 수도 있는 질문까지 한 번에 모두 보내고, 코드에서 필요한 답만 골라 쓴다 (비용/속도 이점)
Confidence-Gated Routing답변 값 + confidence를 함께 봐서, 확신도가 낮으면 사람에게 넘기고 높으면 자동 실행한다
Composite Scoring여러 차원의 평가를 코드에서 하나의 점수로 합성한다
Intent Routing사용자 요청의 의도를 분류해 적절한 처리 경로로 라우팅한다

Confidence-Gated Routing 예시(은행 음성 명령 처리):

if action.confidence < 0.6:
    route_to_support_agent()
elif action.choice == "check_balance":
    show_balance()
elif action.choice == "approve_transfer":
    if action.confidence > 0.85:
        approve_transfer()
    else:
        ask_user_to_confirm()

(출처: https://docs.typesafe.ai/patterns/confidence-routing)

4.6 쿡북(Cookbooks)

"몇 개의 질문부터 전체 파이프라인까지" 실전 예제를 모아둔 쿡북 섹션이 있으며, 총 23개 레시피가 5개 카테고리(자기 일관성/자가검증, 배치 처리, 검색·재랭킹·함수 호출 등 how-to, 추출, 분류)로 구성돼 있다. 예: 병렬 질문 배치 처리, BM25 재랭킹, 시맨틱 검색, 텍스트 구조 복원, 함수 호출 매핑, 지식 그래프 엔티티 정합, RAG 패시지 스코어링, 인용 검증, LLM 가드레일, 구조화 데이터 추출 캐스케이드, 날짜 추출, 계층형 분류 등. (출처: https://docs.typesafe.ai/cookbooks)


5. 아키텍처 / 동작 원리

5.1 "System One" 이라는 모델 범주

System One 모델은 전통적 LLM과 달리 자유 형식 텍스트를 생성하지 않고, "타입이 있고 제약된 출력(typed, constrained outputs)"을 반환하도록 만들어졌다. 이 모델들은 답장을 작성하거나, 코드를 생성하거나, 자신의 추론 과정을 설명하지 않는다. 입력은 현재 텍스트 전용(문자열/JSON 객체/텍스트 배열)만 지원된다. (출처: https://docs.typesafe.ai/concepts/system-one)

5.2 훈련 방법론: RLCD

공식 "머신러닝 프라이머" 문서는 사후 훈련(post-training) 기법을 3가지로 구분한다. (출처: https://docs.typesafe.ai/introduction/machine-learning-primer)

  • RLHF(인간 피드백 기반 강화학습): 인간의 선호에 최적화 — ChatGPT류 챗봇의 기반. 문서는 이 방식이 "그럴듯하게 들리는 것"과 "신뢰할 수 있는 자동화"를 혼동시켜 사이코판시(아첨)와 환각, 그리고 선호 출력 쪽으로 분포가 좁아지는 모드 드로핑 문제를 낳는다고 지적한다.
  • RLVR(검증 가능한 보상 기반 강화학습): 수학 등 복잡한 추론 능력 강화(계산 비용이 큼).
  • RLCD(보정된 결정을 위한 강화학습, Reinforcement Learning for Calibrated Decisions): TypeSafe만의 독자적 접근으로, 텍스트가 아니라 확률 추정치가 포함된 구조화된 결정을 만들도록 훈련한다. 잘 보정된 모델은 0.8 확률을 부여한 예측이 실제로도 약 80% 맞아야 한다.

5.3 요청-응답 동작 원리

사용자는 state(평가 대상)와 하나 이상의 questions를 한 번의 요청으로 제출한다. 모델은 "각 질문을 상태에 대해 병렬로 평가"하여, 타입이 있는 답과 확률·확신도를 한 응답에 담아 반환한다. 질문들은 서로 독립적으로 평가되므로 질문을 늘려도 맥락 오염(context-rot)이 생기지 않는다. (출처: https://docs.typesafe.ai/introduction)

5.4 3대 응답 원시 요소(Choice/Score/Noul)와 조합

Choice, Score, Noul은 한 번의 API 호출 안에서 자유롭게 조합할 수 있으며, 지연시간에 큰 영향을 주지 않는다. 이 세 원시 요소를 코드로 조합해 더 큰 워크플로우를 구성하는 것이 핵심 아키텍처 패턴이다. (출처: https://docs.typesafe.ai/introduction, https://docs.typesafe.ai/primitives)

5.5 Machine Native Intelligence

TypeSafe AI는 향후 AI 활용의 "99%가 기계-기계 간(machine-to-machine) 상호작용, 1%만 인간 상호작용"이 될 것이라 가정하고, 출력을 사람이 읽기 좋게 만드는 대신 소프트웨어가 예측 가능하게 처리할 수 있도록 설계했다고 밝힌다. (출처: https://docs.typesafe.ai/introduction/machine-learning-primer)

5.6 모델 사양 (Jev 1.13)

  • 컨텍스트 윈도우: 요청당 총 64k 토큰(state + 모든 질문 합산), 그중 state + 가장 긴 단일 질문에 32k 토큰 예산이 적용된다.
  • 처리량/속도: 위 2.5절의 지연시간·처리량 관련 마케팅 수치 참고.
  • 언어: 영어를 주로 지원하며, 한국어·중국어·일본어 등 CJK 스크립트를 포함한 다른 언어도 처리되지만 정확도가 낮을 수 있다고 명시돼 있다.

(출처: https://docs.typesafe.ai/models)


6. 통합 / 연동

통합 대상방식출처
HTTP API언어 무관, POST https://api.typesafe.ai/v1/systemone 직접 호출https://docs.typesafe.ai/api
Python SDK (typesafe-sdk)동기(TypeSafeClient)·비동기(AsyncTypeSafeClient) 클라이언트, 자동 재시도https://docs.typesafe.ai/sdk/python
JavaScript/TypeScript SDK (@typesafe-ai/sdk)ESM/CJS/TS 타입 지원, choice()/score()/noul() 헬퍼 함수https://docs.typesafe.ai/sdk/javascript
Claude Code 플러그인/스킬claude plugin marketplace add typesafe-ai/skills → claude plugin install typesafe@typesafe-ai, 이후 /typesafe:typesafe-ai 로 호출하거나 프롬프트에서 "use the TypeSafe skill"이라고 지시https://docs.typesafe.ai/agent-skill
기타 코딩 에이전트(범용 skills)npx skills add typesafe-ai/skills --skill typesafe-aihttps://docs.typesafe.ai/agent-skill
GitHub 저장소스킬: github.com/typesafe-ai/skills, JS SDK 소스: github.com/typesafe-ai/typesafe-sdk-jshttps://docs.typesafe.ai/introduction/quickstart, https://docs.typesafe.ai/sdk/javascript
플레이그라운드(콘솔)코드 없이 바로 테스트: https://console.typesafe.ai/playgroundhttps://docs.typesafe.ai/introduction/coding-agents

코딩 에이전트(Claude Code, Cursor 등)와의 관계에 대해 문서는 명확히 선을 긋는다: Jev는 코딩 에이전트를 대체하지 않으며, 텍스트 스트리밍·파일 편집·코드 완성을 하지 않는다. 대신 코딩 에이전트가 만드는 애플리케이션 "내부"에서 구조화된 결정을 담당하는 컴포넌트로 통합된다. TypeSafe agent skill은 코딩 에이전트가 Jev API를 올바르게 통합하는 코드를 생성하도록 돕는 문서/가이드 역할을 한다. (출처: https://docs.typesafe.ai/introduction/coding-agents)

그 외 언어별 공식 SDK(예: Go, Java, Ruby 등)에 대한 언급은 문서에서 확인되지 않았다 — 정보 없음 (Python, JavaScript/TypeScript, HTTP API 세 가지만 공식 문서에 나열됨, 출처: https://docs.typesafe.ai/sdk).


7. 가격 / 플랜

공식 랜딩 페이지와 모델 문서에 공개된 가격 정보는 다음과 같다. (출처: https://typesafe.ai/, https://docs.typesafe.ai/models)

  • 입력 토큰: 10억 토큰당 $42 (= 백만 토큰당 $0.042)
  • 출력 토큰: 무료(비용 없음)
  • 랜딩 페이지는 이 가격이 "Claude Fable 5.1" 입력 가격보다 238배 저렴하다고 주장한다. (비교 기준 모델명은 원문 표기 그대로)

속도/요율 제한(Rate Limits):

  • 초당 250,000 토큰
  • 분당 1,200 요청
  • 문서는 "수요가 높아 요율 제한이 동적으로 조정되며 사전 통지 없이 변경될 수 있다"고 명시한다.

(출처: https://docs.typesafe.ai/models)

0개의 댓글