TOON は、LLM プロンプト向けに設計された、コンパクトでロスレスな JSON データモデルのエンコード形式です。ネストされたオブジェクトには YAML 風のインデントを、均一な配列には CSV 風の表形式レイアウトを使い、JSON より最大60%少ないトークンで表現できます。
TOON の最大の利点は、均一なオブジェクトの配列がヘッダー行 [N,]{fields}: とそれに続くカンマ区切りのデータ行にまとめられる点です。CSV と同じでありながら、構造が明示されています。
文字列は必要なときだけ引用符で囲まれます。数値・真偽値・null のように見える場合、区切り文字を含む場合、先頭や末尾に空白がある場合、空文字列の場合です。それ以外はすべて引用符なしで書かれます。
TOON はデータ取得のベンチマークで、JSON の75%に対し76%の LLM 精度を達成しつつ、トークンを約40%削減します。変換レイヤーとして使うのが最適です。API には JSON を使い、LLM には TOON を送りましょう。
ネストされたオブジェクトは、波括弧の代わりにインデントを使います。各キーと値のペアは key: value と書かれ、ネストされたオブジェクトはインデントを1段(デフォルトで2スペース)追加します。
配列内のすべてのオブジェクトが同じプリミティブ値のフィールドを共有している場合、TOON はヘッダー [N,]{f1,f2,f3}: を書き、その後にオブジェクトごとにカンマ区切りの行を1行ずつ並べます。これが最も大きなトークン削減の要因です。
はい。TOON は JSON と同じオブジェクト、配列、プリミティブをエンコードします。JSON → TOON → JSON の往復を、データの損失なしに行えます。型は TOON の引用符ルールによって保持されます。
構造化データをコンテキストや入力として LLM に送るときは TOON を使いましょう。トークンの削減は API コストを直接下げ、より多くのデータをコンテキストウィンドウに収められます。プログラム用の API、データベース、厳密な相互運用性が必要な場面では JSON を使い続けてください。