목차

LLMs · ARTICLE · 2026

Introduction - TypeSafe AI

TypeSafe AI · docs.typesafe.ai ↗ · ↳ 4 links

요약

TypeSafe AI 공식 문서의 도입부는 Jev를 "상태와 타입이 정해진 질문을 보내면 코드가 바로 쓸 수 있는 구조화된 답을 돌려주는 모델"로 정의한다. Jev는 TypeSafe의 대표 모델이자 첫 System One model이다.

핵심 주장은 텍스트를 만들지 않는다는 점에 있다. 질문을 상태에 대해 평가하고 타입이 정해진 값과 확률 분포를 그대로 반환하므로, 응답을 파싱해 코드가 쓸 수 있는 형태로 되돌리는 단계가 사라진다.

이 페이지는 세 가지 primitive인 Choice, Score, Noul을 소개하고, 질문을 원자 단위로 쪼갠 뒤 결과를 코드에서 조합하라는 설계 지침을 예시와 함께 제시한다. primitive는 소프트웨어 문맥에서 더 작은 단위로 나누지 않고 조합의 재료로 쓰는 기본 구성 요소를 뜻한다.

배경

LLM은 사람이 읽을 텍스트를 만들도록 설계되었다. 이 설계 목적은 사람이 최종 소비자일 때 잘 들어맞는다.

문제는 최종 소비자가 코드일 때 생긴다. 코드가 소비할 판단을 모델에게 맡기면 텍스트 생성 시스템에 구조화된 결정을 억지로 출력하게 만든 뒤, 그 결과를 다시 코드가 의존할 수 있는 형태로 파싱해야 한다. 문서는 이 구조를 불일치(mismatch)라고 부른다.

불일치는 두 지점에서 비용을 만든다. 첫째, 모델이 형식을 벗어난 출력을 낼 수 있으므로 검증 코드가 필요하다. 둘째, 형식이 맞더라도 그 답을 얼마나 믿을지에 대한 정보가 응답 안에 없다.

Jev는 이 두 지점을 모델 쪽에서 해결하려는 시도다. 출력 형식을 모델이 벗어날 수 없게 만들고, 모든 답에 신뢰도를 함께 실어 보낸다.

핵심 개념

System One model은 소프트웨어가 곧바로 쓸 수 있는 빠르고 구조화된 결정을 내리도록 만들어진 모델 범주다. 문서는 Jev를 이 범주의 첫 모델로 소개한다.

state는 모델이 질문을 평가할 대상으로 함께 보내는 상태 데이터다. 비정형 텍스트일 수도 있고 구조화된 JSON일 수도 있다. 같은 state에 여러 질문을 동시에 던지는 것이 이 API의 기본 사용 형태다.

confidence는 모델이 자기 답을 얼마나 확신하는지를 나타내는 값이다. Choice와 Score가 함께 반환하며, 코드는 이 값을 보고 답을 실행에 옮길지 여부와 방식을 정할 수 있다.

context-rot은 컨텍스트가 길어지거나 누적되면서 모델의 판단 품질이 떨어지는 현상이다. 문서는 Jev에서 질문마다 평가가 격리되므로 이 현상이 생기지 않는다고 설명한다.

방법

세 가지 primitive

TypeSafe는 세 가지 AI primitive를 제공한다. 소프트웨어 primitive와 마찬가지로 모듈화되어 있고 조합 가능하며 구조화되어 있고 신뢰할 수 있으며 빠르다는 것이 문서의 설명이다.

각 primitive는 다른 타입의 질문을 던지고 다른 타입의 답을 돌려준다.

질문 타입 목적 반환값 코드에서의 대응
Choice 목록에서 하나를 고른다 choice, probabilities, confidence 분기 선택
Score 상태를 rubric으로 채점한다 score, probabilities, confidence 정렬과 임계값 비교
Noul 이 진술이 참인가 noul (0에서 1 사이) 조건문

Choice와 Score는 고른 값 하나만 주지 않고 후보 전체에 대한 확률 분포를 함께 준다. 코드는 그 분포를 보고 정렬하거나 라우팅할 수 있다.

Noul만 신뢰도를 따로 반환하지 않는다. 반환값인 0에서 1 사이 값 자체가 확률이기 때문으로 보이나, 이 페이지는 그 이유를 명시하지 않는다.

한 번의 호출에서 병렬 평가

세 가지 질문 타입은 한 번의 API 호출 안에서 섞어 쓸 수 있다. 모든 질문은 같은 state에 대해 한꺼번에 병렬로, 그리고 서로 격리된 채 평가된다.

병렬 평가와 격리는 각각 다른 이점을 만든다.

성질 결과
병렬 평가 질문을 추가해도 응답 시간이 거의 바뀌지 않는다
질문 간 격리 질문을 늘려도 context-rot이 생기지 않는다

이 두 성질은 뒤에 나오는 질문 분해 지침의 전제가 된다. 질문을 잘게 쪼개는 설계가 비용을 거의 늘리지 않아야 분해를 권할 수 있기 때문이다.

원자적 질문과 코드에서의 조합

System One model은 각 질문이 잘 한정된 하나만 묻는 경우에 가장 잘 동작한다. 문서는 질문 하나를 충분한 맥락이 주어졌을 때 지식이 풍부한 사람이 몇 초 만에 내릴 수 있는 직관적 판단에 비유한다.

묻고 싶은 질문이 확장된 추론을 요구하거나 여러 독립 요인을 저울질해야 한다면 분해하라고 권한다. 각 요인을 별도의 질문으로 묻고 결과를 코드의 로직으로 합치는 방식이다.

분해의 이점은 두 가지다. 개별 평가가 신뢰할 만한 수준으로 유지되고, 차원별 가중치를 어떻게 줄지를 전적으로 통제할 수 있다.

문서가 드는 예시는 스타트업 피치 평가다.

방식 구성
권장하지 않음 "이 스타트업 피치를 평가하라"는 질문 하나
권장 시장 규모, 기술적 실현 가능성, 차별화를 각각 질문한 뒤 자체 공식으로 점수를 합산

분해했을 때의 이점은 유지보수에서 가장 뚜렷하게 드러난다. 우선순위가 바뀌면 프롬프트를 다시 쓰는 대신 코드의 계수 하나만 바꾸면 된다.

즉 평가 기준을 모델의 프롬프트가 아니라 코드가 소유하게 만드는 설계다. 모델은 개별 요인에 대한 판단만 제공하고, 그 판단들을 어떻게 합칠지는 코드가 정한다.

결과

이 페이지는 도입부라서 벤치마크 수치를 싣지 않는다. 정량 비교는 제품 발표 글과 워크플로 평가 사이트가 담당하며, 그 내용은 Jev - 문장 대신 판단과 확률을 반환하는 AI 모델 (GeekNews)에 정리되어 있다.

문서가 제시하는 정성적 주장은 두 가지다. 첫째, 질문을 추가해도 응답 시간이 거의 변하지 않는다. 둘째, 질문이 서로 격리되어 평가되므로 질문 수가 늘어도 context-rot이 발생하지 않는다.

문서는 이어지는 읽기 순서도 함께 제시한다.

다음 페이지 다루는 내용
Quick Start 바로 시작하는 데 필요한 전부
AI Primer TypeSafe가 생성된 텍스트 대신 보정된 결정을 위해 모델을 학습시키는 이유
Primitives (Questions) 질문 정의, Choice와 Score와 Noul 중 선택, 여러 질문 동시 요청
Confidence TypeSafe가 확실성을 보고하는 방식과 아키텍처 수준의 활용
Patterns TypeSafe로 시스템을 만드는 공통 패턴

한계

  • 도입부 문서라서 모델 아키텍처, 학습 방법, 가격, 지연 시간을 다루지 않는다. 해당 내용은 다른 문서 페이지와 발표 글에 있다.
  • 확장된 추론이 필요한 질문은 Jev 단독으로 처리하지 않고 분해를 전제한다. 분해 설계의 부담은 사용자 코드가 진다.
  • 신뢰도를 어떤 임계값으로 쓸지는 별도의 Confidence 페이지로 위임한다. 이 페이지만으로는 운영 기준을 세울 수 없다.
  • Noul이 신뢰도를 반환하지 않는 이유를 설명하지 않는다.
  • state가 어느 정도 크기까지 허용되는지, 어떤 형식을 받는지에 대한 명세가 이 페이지에는 없다.

핵심 용어

용어 뜻
System One model 소프트웨어가 곧바로 쓸 수 있는 빠르고 구조화된 결정을 내리도록 만든 모델 범주
state 모델이 질문을 평가할 대상으로 함께 보내는 비정형 또는 구조화된 상태 데이터
Choice 주어진 목록에서 하나를 고르게 하는 질문 타입. choice와 probabilities와 confidence를 반환한다
Score 상태를 rubric으로 채점하게 하는 질문 타입. score와 probabilities와 confidence를 반환한다
Noul 진술의 참 여부를 0에서 1 사이 값으로 묻는 질문 타입
context-rot 컨텍스트가 길어지거나 누적되면서 모델의 판단 품질이 떨어지는 현상

관련 페이지