TOON 是什麼?一種為 AI 節省 Token 的結構化資料格式

TOON 是一種為大語言模型(LLM, Large Language Models)輸入、交換結構化資料所設計的輕量格式,全名「Token-Oriented Object Notation」。根據其 GitHub 說明,其目的是:「JSON for LLMs at half the token cost」——也就是說,在與大型語言模型互動時,希望將資料格式化後以更少的 token 傳送,同時維持可讀性與結構。

它結合了 YAML 的縮排(indentation)結構與 CSV/表格資料的簡潔性,特別適合「一組物件、欄位固定」這類情境(如:一筆筆相同欄位的記錄)使用。

 

為什麼要用 TOON?

在與大型語言模型(如 GPT 類型)互動時,所傳送的 prompt/資料中的 token 數量直接影響成本與效能。使用傳統的 JSON 表達往往包含許多重複鍵、括號、引號等語法符號,在 token 計算上並不經濟。TOON 透過以下特性降低 token 數量:

  • 移除多餘的括號、大部份引號、重複鍵名稱。

  • 對於陣列中的大量類似物件,採用「欄位宣告一次、然後列出每列值」的表格格式(tabular)來避免每個物件重複鍵名稱。

  • 明確指出陣列長度(如 users[3])或欄位清單(如 {id,name,role}),這對 LLM 在理解資料結構、維持一致性上有幫助。

  • 支援可調的分隔符(例如 comma, tab, pipe)以進一步降低 token 用量。

多項 benchmark 顯示,在一些典型資料集中,使用 TOON 比使用 JSON 可節省約 30-60% 的 token 數量。

 

基本語法與用法

以下是 TOON 常用的語法規則與範例,讓您理解如何從物件/陣列轉為 TOON 格式:

物件 (Object)

當您有一個簡單物件,如:

{
  "id": 123,
  "name": "Ada",
  "active": true
}

 

使用 TOON 可以表示為: 

id: 123
name: Ada
active: true

 

當物件中嵌套另一個物件時:

{
  "user": {
    "id": 123,
    "name": "Ada"
  }
}

 

TOON 表示為:

user:
  id: 123
  name: Ada

(縮排兩個空格為一層)

 

原始陣列 (Primitive Array)

當某欄位為純原始值陣列(例如字串陣列):

{
  "tags": ["admin", "ops", "dev"]
}

 

TOON 可以為:

tags[3]: admin,ops,dev

其中 [3] 表示陣列長度為 3,接著用逗號分隔值。

 

物件陣列 – 表格格式 (Tabular Array of Objects)

當陣列裡每個元素都是結構一致的物件(都包含相同欄位,且欄位值都是原始類型),TOON 提供一種更有效率的寫法。例如:

{
  "items": [
    { "sku": "A1", "qty": 2, "price": 9.99 },
    { "sku": "B2", "qty": 1, "price": 14.5 }
  ]
}

TOON 表示為: 

items[2]{sku,qty,price}:
  A1,2,9.99
  B2,1,14.5

 

解讀方式:

  • items[2] 表示陣列有 2 筆。

  • {sku,qty,price} 表示每筆物件具有這三個欄位,且按照這個順序。

  • 接著每一列列出對應欄位值,用逗號分隔。

 

混合或非一致陣列 (Mixed / Non-Uniform Arrays)

如果陣列成員結構不一致(有原始值、有物件、有陣列),就無法用上表格格式了,而採用「列表 (list)」格式。例如:

{
  "items": [1, { "a": 1 }, "text"]
}

TOON 為: 

items[3]:
  - 1
  - a: 1
    name: First
  - text

這裡每個結構不同,所以採用每行以 - 開頭的 list format。

 

空物件與空陣列

  • 空物件 {} → 在 TOON 中表示為「(無輸出)」或只輸出父鍵並換行。GitHub

  • 空陣列例如:

{ "items": [] }

 

TOON 為:

items[0]: 

表示陣列長度為 0。 

 

引號與轉義規則

TOON 只在必要時使用引號以節省 token。舉例:

  • 如果字串內含逗號、制表符、管線符、冒號、引號、反斜線、控制字符、或前導/尾隨空格,就需要用引號。

  • 鍵 (key) 當包含空格、逗號、冒號、括號、數字純字串等情況也需用引號。

選項:分隔符與長度標記

  • delimiter:預設用逗號 , 分隔陣列值。也可選用 \t(tab)或 |(pipe),在特定模型中能進一步節省 token。

  • lengthMarker:設定為 '#' 可讓陣列長度標記變為 [#N],以強調這是長度而非索引。

 

在實務中的應用情境

以下為幾個適合使用 TOON 的場景,可視為參考:

  • 當您需要將大量「欄位一致的記錄」傳給 LLM,例如資料分析報表、使用者清單、商品清單、時間序列等。TOON 可大幅減少 token 數。

  • 在 prompt 中直接嵌入資料時,使用 TOON 可使輸入更精簡,讓模型集中在資料與任務上,而不是大量重複的格式語法。

  • 當您希望模型輸出或回傳資料時,也可以要求模型以 TOON 格式輸出:例如「請以 TOON 格式輸出符合條件的記錄」,搭配明確的欄位表頭,有助於模型輸出結構正確。 

  • 當您對資料結構較固定(每筆記錄有相同欄位、且欄位值為原始類型)時,TOON 的表格格式優勢最大;反之若資料高度巢狀、欄位不一致、或混合型態,則其優勢可能下降。

 

限制與注意事項

雖然 TOON 很有潛力,但也有一些需注意之處,避免誤用或期待過高:

  • TOON 並非萬用格式:若資料高度巢狀、多層物件或陣列、欄位不一致,或很多非原始值(例如物件中還有物件/陣列),TOON 可能會退回至較冗長的 list 格式,這時節省效果會變小甚至不如 JSON。

  • 雖然 TOON 在模型閱讀資料時效果很好,但並非設計為 API 傳輸格式或長期儲存格式;它是為 LLM 類場景「token 效率」優化,而不是取代 JSON 等格式。

  • 不同模型與 tokenizer 對 token 計算不同:TOON 的節省效果在 README 中是基於特定 tokenizer(如 GPT-style 的 cl100k/o200k)測試的,實際使用時需視您所用模型而定。

  • 編碼與解析工具尚在成長階段:雖然該專案提供 TypeScript/JavaScript 的實作,亦有其他語言移植版,但您在生產環境使用前應確認穩定性與相容性。

 

小結

TOON 是一種為了在 LLM 應用中,提升資料格式效率、降低 token 使用量所設計的格式。特別適合「大量結構一致的記錄」情境,並擁有簡潔、易讀的語法。江員如果您在設計與 LLM 互動的系統、或在 prompt 中需傳輸大量資料,TOON 是值得考慮的選項。當然,在使用前也要確認資料結構是否符合其優勢場景,並確認解析/生成工具的可用性。

 

概念來自:toon

 

如果您喜歡我們的網站,並且希望支持我們的工作,您可以考慮捐款。我們接受各種形式的捐款,包括一次性捐款和定期捐款。您的捐款將幫助我們維護和改進網站,並為用戶提供更好的體驗。

課程推薦

AI虛擬角色生成實戰班

AI虛擬角色生成實戰班

本課程將帶你從 AI 虛擬角色的概念出發,認識 AI Persona 的生成流程與應用方式,學會打造專屬自己的 AI 分身。課程中會學習 Prompt 提示詞撰寫、真人感人像生成、固定角色模板建立,並延伸出同一角色的多場景、多服裝與多情境照片。

OpenClaw 龍蝦 AI 代理人實作課:零基礎打造 AI 辦公代理人

OpenClaw 龍蝦 AI 代理人實作課:零基礎打造 AI 辦公代理人

本課程從安裝部署、身份設定、技能安裝到實戰應用,帶你從零建立一個專屬的 AI 工作助手-OpenClaw 龍蝦,這個 AI 助手可以替你蒐集情報、摘要文件、整理郵件、生成內容、定時提醒,全部自動完成。

輸入折扣碼 TC1625FR 還可以額外獲得 NT$500 優惠喔。

Google Gemini AI 多媒體生成工具應用實戰:從 Imagen 4、Veo 3、Chirp、Lyria 到 nano-banana

Google Gemini AI 多媒體生成工具應用實戰:從 Imagen 4、Veo 3、Chirp、Lyria 到 nano-banana

如何只用文字說明提示就生成不同的圖像結果?亦或是會議上的語音檔轉文字?這是一堂通盤性、全面性的Google Gemini AI多媒體生成工具應用實戰!

輸入折扣碼 TC1609EW 還可以額外獲得 NT$500 優惠喔。

AI 數據自動化工具實戰班:Google Sheet x Apps Script x NotebookLM 暨資料處理函數

AI 數據自動化工具實戰班:Google Sheet x Apps Script x NotebookLM 暨資料處理函數

本門課將教你如何善用 AI 功能與工具,進行自動分析數據提供有幫助的建議與洞察,以及使用 AI 驅動的公式自動化計算。

輸入折扣碼 TC1615VU 還可以額外獲得 NT$500 優惠喔。

3 小時掌握自動化工作新手應用實作 – n8n AI Agent

3 小時掌握自動化工作新手應用實作 – n8n AI Agent

這門課程將帶你循序漸進掌握 n8n 的自動化技巧,從基礎認識與操作入門,到進階節點應用與流程控制,再到 Google 服務的整合實作,最後延伸至部署思維與 OpenAI API 的智慧化串接。

輸入折扣碼 TC1600UY 還可以額外獲得 NT$500 優惠喔。

用 AI 生成網站? AI 高效網站設計實戰課:ChatGPT X HTML X SEO

用 AI 生成網站? AI 高效網站設計實戰課:ChatGPT X HTML X SEO

利用 AI 提升網站設計效率與 SEO 排名!了解如何透過 ChatGPT 等工具快速建立 HTML 架構,優化關鍵字與用戶體驗,讓網站更具競爭力。

輸入折扣碼 TC1533SL 還可以額外獲得 NT$500 優惠喔。

AI工作術全面學習實戰營:6 堂精選課程,學會最好用 AI 工具,翻轉你的人生

AI工作術全面學習實戰營:6 堂精選課程,學會最好用 AI 工具,翻轉你的人生

《PChome雜誌》攜手 5 位在 AI 領域的專業講師,打造上述 6 堂實用課程,教你學會時下最好用的 AI 工具,導入生成式 AI 來產製工作內容,改造並升級你的工作流程。

輸入折扣碼 ZERO2024 還可以額外獲得 NT$400 優惠喔。

HTML與SEO實戰應用—並以ChatGPT助力提升網站品質與流量

HTML與SEO實戰應用—並以ChatGPT助力提升網站品質與流量

本課程專為希望深入了解 HTML 並有效結合 SEO 策略的學員設計。我們將重點放在 HTML 的深度學習與應用上,同時穿插介紹如何透過搜索引擎優化提升網站能見度。透過即時互動式的直播教學,加上 ChatGPT 的輔助,您將學習到如何建立一個結構優良、美觀且符合 SEO 標準的網站。這不僅會提升網站的用戶體驗,還會大幅提高網站的搜索引擎排名,進而增加訪客流量和潛在客戶。
用AI強化職場競爭力 ChatGPT、Midjourney從入門到精通

用AI強化職場競爭力 ChatGPT、Midjourney從入門到精通

在快速變遷的職場中,提升競爭力成為關鍵。透過引領潮流的AI技術,ChatGPT和Midjourney將助您勇攀高峰。無論您是AI新手還是專家,這個課程將引導您從入門到精通,解密AI的奧秘,並學習如何運用於職場。
GitHub Copilot AI 程式碼編輯工具應用實務班

GitHub Copilot AI 程式碼編輯工具應用實務班

讓學員瞭解有效地使用該工具來加速開發流程、提高程式碼品質和生產力。課程重點放在以 JavaScript 程式語言為例,介紹 Copilot 的基本原理、使用方法和最佳實踐。

輸入折扣碼 TC1456JA 還可以額外獲得 NT$500 優惠喔。

ChatGPT X Clipchamp AI 生成影片、配音與字幕應用實戰班

ChatGPT X Clipchamp AI 生成影片、配音與字幕應用實戰班

掌握Clipchamp AI的操作技巧,靈活運用Clipchamp AI進行影片編輯和創作,實現創意表達和傳播目的。

輸入折扣碼 TC1451JAN 還可以額外獲得 NT$500 優惠喔。

如何串接多種數位工具資訊?Looker Studio 資料視覺化實戰班|GoogleAds x FB廣告 x GA流量數據

如何串接多種數位工具資訊?Looker Studio 資料視覺化實戰班|GoogleAds x FB廣告 x GA流量數據

Looker Studio除了可協助使用者監控網站流量、廣告成效、選擇匯入資源的管道之外,還可以將數據資料多平台整合、數據報表即時更新、數據範本可重複套用的效益,透過自動化系統,將數據全部匯入同一個報表平台,是企業不可或缺的重要工具。

輸入折扣碼 TC1270JIA 還可以額外獲得 NT$500 優惠喔。

和我們交流

加入我們的社群,裡面會有一些技術的內容、有趣的技術梗,以及職缺的分享,歡迎和我們一起討論。