一个 Python 库,在生成过程中约束 LLM 输出,使其符合指定的类型、正则、JSON Schema 或语法。
toon-format/toon
一种紧凑、易读的 JSON 数据编码格式,用于减少向 LLM 提示词传递结构化数据时的 token 消耗。
- Star
- 25,528
- Fork
- 1,280
- 未关闭 Issue
- 2
- 最近提交
- 12天前
这是什么?
TOON(Token-Oriented Object Notation)以 JSON 数据模型为基础,对数据重新编码:嵌套对象使用类似 YAML 的缩进结构,同质数组则使用类似 CSV 的表格行。每个数组的头部声明了元素数量和字段列表,便于模型判断应有的行数以及每行包含哪些字段。
项目提供 TypeScript SDK,包含 encode、decode 函数以及面向大数据集的流式接口,并附带一个 CLI,可在 JSON 与 TOON 之间转换,并估算 token 节省量。编码过程无损,数据可以还原为原始 JSON。官方实现与社区移植版本遵循同一份规范,并有共享的一致性测试套件。
TOON 最适合由同质对象组成的数组。对于深度嵌套或结构不统一的数据,紧凑 JSON 可能更高效;纯扁平表格数据则直接用 CSV 体积更小。仓库中包含检索准确率和 token 数量的基准测试,对比了 JSON、YAML、XML 和 CSV。
核心功能
- 01将 JSON 对象和数组编码为类似 YAML 的缩进格式,同质数据采用类 CSV 表格。
- 02数组头部声明行数和字段名,便于发现被截断或格式错误的输出。
- 03JSON 与 TOON 之间可无损往返转换。
- 04提供 TypeScript SDK,包含 encode、decode 及流式接口。
- 05CLI 支持文件或标准输入转换,并可通过 --stats 查看 token 节省量。
- 06支持逗号、制表符和竖线三种分隔符。
适用场景
- 将大批同质记录(如数据库查询结果)以更少 token 传入 LLM。
- 在插入提示词前,把 JSON API 响应转换为更紧凑的格式。
- 比较同一份 JSON 数据在 TOON 与其他格式下的 token 消耗。
- 在 TypeScript 的 LLM 流水线中,使用可逆且带校验的数据表示。
快速上手
- 1
无需安装,用 npx 对你自己的 JSON 数据试用 TOON
cat data.json | npx @toon-format/cli --stats
使用前须知
- 最适合统一结构的数组或按键组织的对象;对于深度嵌套或结构不统一的数据,普通 JSON 往往效果更好。
- 该格式被描述为稳定但仍在演进,细节可能会变化。
标签
常见问题
- toon 是什么?
- 一种紧凑、易读的 JSON 数据编码格式,用于减少向 LLM 提示词传递结构化数据时的 token 消耗。 TOON(Token-Oriented Object Notation)以 JSON 数据模型为基础,对数据重新编码:嵌套对象使用类似 YAML 的缩进结构,同质数组则使用类似 CSV 的表格行。每个数组的头部声明了元素数量和字段列表,便于模型判断应有的行数以及每行包含哪些字段。
- toon 可以免费使用吗?用的什么许可证?
- toon 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- toon 还在维护吗?
- 活跃维护中。toon 最近一次提交是在 2026年10月9日。
- toon 适合用来做什么?
- 将大批同质记录(如数据库查询结果)以更少 token 传入 LLM。 在插入提示词前,把 JSON API 响应转换为更紧凑的格式。 比较同一份 JSON 数据在 TOON 与其他格式下的 token 消耗。 在 TypeScript 的 LLM 流水线中,使用可逆且带校验的数据表示。
- toon 怎么安装和运行?
- 无需安装,用 npx 对你自己的 JSON 数据试用 TOON: cat data.json | npx @toon-format/cli --stats
- 在哪里获取 toon?
- 源代码和安装说明在 GitHub 上:https://github.com/toon-format/toon
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一个开源的社区提示词库,可在网站浏览,并提供 CSV、Hugging Face 数据集、CLI 与 MCP 服务器接入。
一款 AI 提示词优化工具,可优化、测试、对比提示词效果,并保存为可复用资产,支持网页、桌面、Chrome 扩展和 Docker 部署。
一个本地安装的高级用户界面,可统一对接多种 LLM API、图像生成与 TTS 语音模型。
一种开放格式与规范,用于将指令、脚本和资源打包成 SKILL.md 文件夹,供 AI 智能体按需加载。
面向 Claude Code 的 161 个以上专业子代理定义合集,分为 10 个类别,覆盖开发、基础设施、安全与数据等场景。