toon-format/toon

🎒 Token-Oriented Object Notation (TOON) – compact, human-readable serialization of JSON data for LLM prompts. TypeScript SDK, CLI, benchmarks.

What it solves

TOON (Token‑Oriented Object Notation)은 구조화된 데이터를 대형 언어 모델(LLM)에 제공할 때 토큰 비용을 줄이면서도 검색 정확도를 희생하지 않습니다. 특히 동일한 구조의 객체 배열을 다룰 때 중괄호와 따옴표 같은 반복적인 구조 문자에 많은 토큰을 소비하는 JSON의 비효율성을 해결합니다.

How it works

TOON은 JSON 데이터를 손실 없이 변환하는 레이어 역할을 합니다. 들여쓰기 기반 구조(YAML과 유사)와 표 형식을 결합해 데이터를 압축합니다. 주요 메커니즘은 다음과 같습니다.

  • Tabular Form: 헤더에서 필드 목록을 한 번 선언하고, 이후 행에 값을 나열합니다. CSV와 비슷하며, 균일한 객체 배열에 적합합니다.
  • Inline Form: 원시 배열을 헤더 라인에 직접 표시합니다.
  • Keyed Tabular: 균일 객체를 포함하는 객체를 처리할 때 길이 뒤에 콜론을 붙여 표시(e.g., [2:])하고 각 행에 키를 할당합니다.
  • List Form: 비균일하거나 혼합 타입 데이터에 대한 대체 방법으로 대시 기반 리스트를 사용합니다.
  • Guardrails: 명시적인 길이 [N]와 필드 목록 {fields}를 포함해 LLM이 데이터를 보다 신뢰성 있게 파싱하고 검증하도록 돕습니다.

Who it’s for

프롬프트에 대량의 구조화 데이터를 전달해야 하며, API 비용 및 토큰 제한을 줄이면서 모델 이해도를 유지하고자 하는 LLM 애플리케이션 개발자를 위한 것입니다.

Highlights

  • Token Efficiency: 벤치마크 결과, 경우에 따라 JSON보다 최대 42.6% 적은 토큰을 사용할 수 있음이 입증되었습니다.
  • Lossless Round‑trips: JSON과 동일한 데이터 모델을 결정적으로 인코딩합니다.
  • High Accuracy: Claude, Gemini, GPT, Grok 등 여러 모델에서 JSON과 동등하거나 그 이상의 검색 정확도를 제공합니다.
  • Multi‑Language Support: 사양 기반 구현이 다양한 언어에서 제공됩니다.
  • CLI Tool: 명령줄 인터페이스가 포함되어 있어 빠른 변환과 토큰 절감 추정이 가능합니다.

관련

  • 프로젝트
  • Dispatch
  • 프로젝트
  • 프로젝트
  • 프로젝트