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
  • 项目
  • 项目
  • 项目