18 puntos por xguru 2025-11-19 | 3 comentarios | Compartir por WhatsApp
  • Token-Oriented Object Notation
  • Formato de serialización diseñado para reducir el uso de tokens al ingresar datos en un LLM
    • Representa datos JSON sin pérdida mientras logra al mismo tiempo eficiencia de tokens y legibilidad
  • Estructura optimizada para arreglos uniformes de objetos, eliminando claves repetidas para ofrecer una reducción de tokens del 30~60%
    • Formato híbrido que combina la estructura basada en sangría de YAML con el formato tabular de CSV
    • Para datos con estructuras profundamente anidadas o no uniformes, JSON es más eficiente
  • Incluye información estructural explícita, lo que permite que el LLM pueda parsear y validar los datos de forma estable
    • Mejora el reconocimiento de la estructura al indicar explícitamente la longitud del arreglo ([N]) y la definición de campos ({id,name,role})
  • Diseño sintáctico mínimo con una sintaxis concisa que elimina paréntesis, comillas y puntuación innecesarios
    • Expresión jerárquica basada en sangría y soporte para flujos de datos por filas similares a CSV
  • Soporta conversión bidireccional entre JSON ↔ TOON mediante una herramienta CLI
    • Ofrece opciones como detección automática de formato, especificación de delimitadores (,, \t, |) y salida de estadísticas de ahorro de tokens
  • Composición de la API
    • encode() realiza la serialización desde JSON y decode() la deserialización inversa
    • Como opciones, se puede configurar la sangría, el delimitador y el marcador de longitud (#)
  • Resultados de benchmark: en comparación con JSON, logra una reducción promedio de tokens de 21~60% y una precisión de consultas LLM de 73.9%
    • Es ligeramente más grande que CSV, pero mejora la confiabilidad del LLM gracias a sus funciones de validación estructural
  • Reglas del formato
    • Las cadenas se entrecomillan solo cuando es necesario, y si incluyen delimitadores se citan automáticamente
    • Números, booleanos, fechas, etc., se convierten a formas amigables para LLM
  • Hay implementaciones en varios lenguajes disponibles
    • Oficiales: Python, Rust (en desarrollo)
    • Comunidad: Go, Java, Swift, C++, .NET, Ruby, entre otros

3 comentarios

 
wedding 2025-11-20

Estoy usando function calling, así que tendré que probarlo.

 
princox 2025-11-19

Según algunos ejemplos, al quitar los espacios en blanco, el formato JSON reduce mucho más la cantidad de tokens... todavía no me queda muy claro. No sé si es un formato que realmente valga la pena usar bien.

 
laeyoung 2025-11-19

Comparación de precisión por modelo
​- Gemini 2.5 Flash: TOON 87.6% vs JSON 77.0%
​- GPT-5 Nano: TOON 90.9% vs JSON 89.0%
​- Claude Haiku 4.5: TOON 59.8% vs JSON 57.4%

Si uno se guiara solo por los resultados del benchmark, parece que no habría razón para no usarlo, ya que reduce el uso de tokens sin bajar la precisión.