2026年4月,Thoughtworks發布了第34期科技雷達,一個名為TOON(面向令牌的對象表示法)的數據格式被放入了“Assess”環。同一時間,一位開發者用了幾天時間,用500行原生JavaScript代碼寫了一個JSON與TOON的雙向轉換器,還附帶了一個并排的token消耗估算器,他想親眼看看這種新格式到底能省下多少計算資源。
先回到問題本身。當你把一份API返回的JSON喂給大語言模型,讓它解析并找出變化時,token的消耗往往比你預計的要高得多。以十個用戶的數據為例,每個用戶對象里都有“id”“name”“role”“active”這些鍵,重復出現十次。消耗token的不是用戶的具體值,而是這些反復出現的鍵名。每次鍵重復,分詞器都要額外花掉4到8個token,四十多個token就砸在列名上,而這些列名本可以事先約定一次就夠了。
![]()
TOON的設計就沖著這個冗余去的。它把結構統一的對象數組,渲染成類似CSV的表格。一行頭部聲明全部列名,后面緊跟一個冒號:results[10]{id,name,role,active}:,之后的每一行就是逗號分隔的原始值,只有當值里出現逗號或特殊字符時,才會給字符串加上引號。原本那段包含十個用戶的JSON,用當前的主流分詞器算下來是545個token,轉成TOON格式后只剩159個token,削減了71%。這不是特例,擴展到一千行數據,節省的比例只會更明顯,不會縮水。
整個轉換器的核心,是一個叫isUniformObjectArray的判斷函數。它只做三件事:檢查數組里每個元素是不是普通對象,既不能是null也不能混進數組;檢查每一行是否擁有完全相同的鍵,而且鍵的順序必須一致;再檢查每個單元格的值是不是標量,因為CSV的行里塞不進嵌套對象。任何一個條件不滿足,轉換器就老老實實回退到傳統的縮進塊表達。現實世界里,絕大多數API返回的對象數組都能順利穿過這道門。
表格渲染的部分同樣簡潔。拿到鍵名列表后,把數組的長度和鍵名列表拼成頭部,然后逐行把對應的值按順序填進去。整個過程對調用方透明,沒有引入新的依賴,也沒有改變原始數據的語義。生成器還在GitHub上開源,幾周內就吸引了一批關注大模型上下文窗口成本的開發者。
Thoughtworks的科技雷達把TOON放在評估環,并不是因為它有多顛覆性的技術突破,而是因為它在“少幾個token比格式慣例更重要”的場景里,給出了一個非常務實的答案。在上下文窗口還在按token計費、長文本推理成本依然敏感的今天,省下七成格式化開銷,意味著相同預算下能放進更多有效信息,或者更少的延遲和更低的賬單。那位用500行代碼驗證想法的開發者,已經把這個格式用在了自己的工具鏈里,而隨著雷達的傳播,更多的團隊可能會開始嘗試同樣的路徑。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.