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) 提供結構化資料的 token 成本,卻不犧牲檢索準確度。它解決了 JSON 的低效問題,JSON 在處理大量相同結構的物件陣列時,會因大量重複的結構字元(如大括號與引號)而消耗大量 token。

How it works

TOON 作為 JSON 資料的無損翻譯層。它結合了基於縮排的結構(類似 YAML)與表格形式來壓縮資料。主要機制包括:

  • Tabular Form:在標頭一次宣告欄位清單,之後以列方式列出值,類似 CSV,適用於統一物件陣列。
  • Inline Form:直接在標頭行上呈現原始型別陣列。
  • Keyed Tabular:處理包含統一物件的物件,於長度後加上冒號標記(例如 [2:]),並為每列指定鍵。
  • List Form:對於非統一或混合型別資料的備援方案,使用破折號列表。
  • Guardrails:加入明確的長度 [N] 與欄位清單 {fields},協助 LLM 更可靠地解析與驗證資料。

Who it’s for

開發 LLM 應用程式的開發者,需要在提示中傳遞大量結構化資料,並希望在降低 API 成本與 token 限制的同時,維持模型的高理解度。

Highlights

  • Token Efficiency:基準測試顯示,在某些情況下可比 JSON 節省高達 42.6% 的 token。
  • Lossless Round-trips:可確定性地編碼與 JSON 相同的資料模型。
  • High Accuracy:在多種模型(Claude、Gemini、GPT、Grok)上,檢索準確度與或超過 JSON。
  • Multi-Language Support:提供規格驅動的多語言實作。
  • CLI Tool:內建命令列介面,可快速轉換並估算 token 節省量。

相關

  • 專案
  • Dispatch
  • 專案
  • 專案
  • 專案