我觉得可以试试 TOON —— 一个为 LLM 而生的极致压缩数据格式

有时候我真觉得,开发这行越来越像"数据运输业"。 我们每天都在运数据:前端到后端、后端到数据库、数据库再到模型。 只是现在的运输成本,不再是网络带宽,而是------LLM 的 token 费

几毛钱一次 API,看着不心疼。 可一旦项目跑到几百上千次调用,就开始肉疼。 于是,有人动了脑筋:能不能在不损失语义的前提下,把 JSON 压得更紧?

这,就是 TOON(Token-Oriented Object Notation) 想解决的问题。


一、JSON 的问题不在"好不好",而在"贵不贵"

JSON 是我们这些程序员的老朋友了。 它直观、标准、到处都能解析。 但问题在于------它太啰嗦了。

看下面这段数据:

json 复制代码
{
  "users": [
    { "id": 1, "name": "Alice", "role": "admin" },
    { "id": 2, "name": "Bob", "role": "user" }
  ]
}

每一行都在重复 id, name, role,这在 LLM 里就意味着重复的 token。 你可能没意识到:LLM 看到 "role": "admin",是要一个个词元分开的。 比如 {"role", ":", "admin"------全算钱。

如果你每天要给模型塞几百条这样的结构数据,那真是白花花的钱往外流。


二、TOON 是个什么玩意?

一句话: TOON 是一种为大模型优化的"压缩版 JSON"。

举个例子,它会把上面的 JSON 写成这样:

bash 复制代码
users[2]{id,name,role}:
  1,Alice,admin
  2,Bob,user

看到没?没有花哨的引号,没有重复的 key。 看起来像 CSV,又像 YAML,但其实都不是。

它的几个特点特别有意思:

  • 结构简洁:像 YAML 一样靠缩进,不靠大括号。
  • 数组声明清晰users[2]{...} 一眼就能看出长度。
  • 字段只声明一次:下面直接数据行,干净利落。
  • LLM 解析更友好:模型一看就知道"哦,这是一张表"。

三、这玩意真的省钱吗?

官方的基准测试挺狠。 他们用 GPT-5 的 tokenizer 测了一堆结构数据,结果如下:

  • 对大数组(上百条结构相同的对象),token 减少 30%--60%
  • 对半结构化数据(部分字段不统一),减少约 15%--30%
  • 对纯表格类数据(类似 CSV),略大 5% 左右,但更可靠

意思是: 如果你是批量喂模型的,比如知识库 embedding、RAG 文档、批量问答输入,TOON 能让你的调用成本直接少一半。 这在预算紧张的公司里,简直是省命的优化。


四、但别太激动,TOON 也不是万能药

我喜欢它,但我也要实话实说。

TOON 有几个"坑点":

  1. 结构必须统一: 也就是说,数组里的对象字段要完全一样,否则格式就乱了。

  2. 深层嵌套结构不划算: 如果你的 JSON 是那种嵌套好几层的配置树,那 TOON 的缩进反而更占 token。

  3. 生态还在起步: TOON 目前有 TypeScript SDK 和 CLI 工具,但生态远不如 JSON 成熟。 想用在 Python 或 Java 里?要么自己封装,要么等等。

  4. 可读性不是人人喜欢: 有些同事第一次看到会问:"这 CSV 谁写的?"😂


五、来点实战:怎么用?

假设你装了包:

bash 复制代码
pnpm add @toon-format/toon

简单一行代码就能转:

ts 复制代码
import { encode } from '@toon-format/toon'

const data = {
  users: [
    { id: 1, name: 'Alice', role: 'admin' },
    { id: 2, name: 'Bob', role: 'user' },
  ]
}

console.log(encode(data))

输出就是:

bash 复制代码
users[2]{id,name,role}:
  1,Alice,admin
  2,Bob,user

还可以反向解码回来:

bash 复制代码
npx @toon-format/cli data.toon --decode

如果想看 token 节省情况,加个 --stats

bash 复制代码
npx @toon-format/cli input.json --stats

它会告诉你:"节省 48% token",非常爽。


六、我个人的看法:TOON 是个信号

我不认为 TOON 会取代 JSON。 但我认为它代表了一个趋势------ 开发者开始认真对待 token 成本和模型输入结构了。

过去几年,我们讨论优化时,都是"算法优化"、"前端性能优化"; 而未来几年,"提示结构优化(Prompt Structuring)"会变成一种新工程能力。

你看,过去我们在传输层压缩数据; 现在,我们在语义层压缩思维。 TOON 正好踩在这个分界点上。


七、习惯性的总结

TOON 适合:

  • 给大模型批量输入结构化数据(表格类、日志类)
  • 想减少 token 成本的 AI 应用
  • 构建 RAG、Agent、自动化系统的开发者

不适合:

  • 配置文件、树状嵌套结构
  • 小型一次性输入(节省不明显)
  • 要求通用生态兼容的生产系统

一句话: TOON 更像是 LLM 时代的"二级语言"------介于 JSON 和 Prompt 之间的那层中间语。


我知道这类格式层出不穷,很多人会觉得"这又是个玩票的项目"。 但说实话,我挺喜欢这种"工程师式浪漫"------ 当别人在追求更大的模型、更强的算力,总有人悄悄在研究: 怎么用更少的词,让机器更懂人话。


🧩 项目地址:github.com/toon-format... 推荐朋友们收藏一下, 这可能是你未来写 LLM 工具时,用得最多的一种"小众神器"。

相关推荐
开开心心就好9 小时前
伪装文件历史记录!修改时间的黑科技软件
java·前端·科技·r语言·edge·pdf·语音识别
踩着两条虫9 小时前
AI驱动的Vue3应用开发平台深入探究(十八):扩展与定制之集成第三方库
vue.js·人工智能·低代码·重构·架构
饼干哥哥9 小时前
聊了50个AI出海的市场团队,我总结了达人营销的7宗罪
前端
qq_427506089 小时前
vscode使用kimi code的简单经验分享
前端·vscode·ai编程
恋猫de小郭9 小时前
Claude Code 源码里有意思设定:伪造、投毒、卧底、封号
前端·人工智能·ai编程
无籽西瓜a9 小时前
【西瓜带你学设计模式 | 第五期 - 建造者模式】建造者模式 —— 产品构建实现、优缺点与适用场景及模式区别
java·后端·设计模式·软件工程·建造者模式
胖虎19 小时前
我用一个 UITableView,干掉了 80% 复杂页面
ios·架构·cocoa·uitableview·ui布局
Blurpath住宅代理9 小时前
网页抓取(Web Scraping)完整技术指南:从原理到实战
前端
钰fly9 小时前
Halcon联合编程适应图像的方法(picture)
开发语言·前端·javascript
木斯佳10 小时前
前端八股文面经大全:字节跳动前端一面·深度解析(Plus Ultra版)(2026-03-30)·面经深度解析
前端·设计模式·八股·光栅化