¿Qué es TOON?
Todos hemos pasado por eso. Estás diseñando un prompt para un Modelo de Lenguaje Grande (LLM) y necesitas pasar datos estructurados. Recurres a JSON. Es el estándar de la industria, después de todo. Pero mientras ves cómo tu ventana de contexto se llena con interminables llaves, claves repetidas y comillas alrededor de enteros simples, empiezas a preguntarte: ¿Existe una forma mejor?
YAML ofrece legibilidad pero sufre de ambigüedad. CSV es denso pero carece de jerarquía.
Entra TOON.
TOON es un formato de serialización de datos que se siente como un soplo de aire fresco para los desarrolladores y un lenguaje nativo para los modelos de IA. Cierra la brecha entre la legibilidad humana y la eficiencia de la máquina. Hoy, profundicemos en la sintaxis y la mecánica de TOON para entender por qué se está convirtiendo rápidamente en un favorito para el intercambio de datos de alta eficiencia.
La Filosofía: Semántica JSON, Estética YAML
En su núcleo, TOON comparte exactamente el mismo modelo de datos que JSON. Si puedes representarlo en JSON —primitivos (cadenas, números, booleanos, nulos), objetos y arrays— puedes representarlo en TOON. Sin embargo, la presentación es radicalmente diferente.
TOON descarta las llaves. Utiliza la indentación para representar la jerarquía, muy parecido a YAML. Un objeto simple se ve limpio y accesible:
Sin embargo, a diferencia de YAML, TOON es estricto con los tipos. No hay que adivinar si no significa false o la cadena "no". En TOON, las cadenas solo requieren comillas cuando es absolutamente necesario, como cuando contienen caracteres especiales, se parecen a números o están vacías. Si escribes mensaje: Hola Mundo, obtienes una cadena. Si escribes cuenta: 42, obtienes un número.
id: 123
name: Ada
active: true
El Poder de los Arrays: Longitud y Tablas
Donde TOON realmente se separa del resto es en su manejo de los arrays. Esta es la "característica estrella" para la optimización de tokens.
Cada array en TOON declara explícitamente su longitud entre corchetes, como items[3]. Esto puede parecer redundante para un humano, pero para un LLM, es un superpoder. Permite al modelo validar la estructura inmediatamente y detectar truncamientos. Si el flujo se corta después de dos elementos pero el encabezado prometió tres, el analizador sabe que algo salió mal.
TOON ofrece efectivamente tres formas de manejar arrays, eligiendo automáticamente la más eficiente:
- Primitivos en Línea: Para listas simples de números o cadenas, TOON lo mantiene compacto.
etiquetas[3]: admin,ops,dev
- Listas Estándar: Para tipos mixtos, utiliza una sintaxis de lista con guiones similar a YAML.
- Objetos Tabulares: Esto cambia el juego.
Si tienes un array de objetos que comparten las mismas claves —un patrón muy común en registros de bases de datos— TOON pivota a un Formato Tabular. En lugar de repetir claves para cada fila individual, declara las claves una vez en el encabezado.
En el ejemplo anterior, usuarios[2]{id,nombre,rol}: nos dice que tenemos 2 filas y define el esquema. Los datos siguen en una estructura similar a CSV. Esto elimina la sobrecarga masiva de tokens de repetir "id":, "nombre":, y "rol": para cada usuario.
usuarios[2]{id,nombre,rol}: 1,Alice Admin,admin
2,"Bob Smith",user
Delimitadores y Eficiencia de Tokens
Podrías notar el uso de comas en los ejemplos anteriores. TOON en realidad admite tres delimitadores: comas (por defecto), tabuladores y barras verticales o pipes (|).
¿Por qué importa esto? Tokenización.
En muchos tokenizadores de LLM, una coma seguida de una comilla podría dividirse en múltiples tokens. Un carácter de tabulación, sin embargo, a menudo se tokeniza muy limpiamente. TOON te permite cambiar los delimitadores a nivel de encabezado del array. Si usas un delimitador de tabulación, a menudo ni siquiera necesitas poner comillas en cadenas que contienen espacios, comprimiendo aún más tus datos.
El formato es lo suficientemente inteligente como para manejar "colisiones". Si tus datos contienen el delimitador activo, TOON simplemente pone entre comillas ese valor específico.
items[2 ]{sku nombre cant}: A1 Nombre Widget 2
B2 Nombre Gadget 1
Plegado de Claves: Aplanando la Curva
Otra característica que destaca el enfoque de TOON en la eficiencia es el Plegado de Claves (Key Folding). Los objetos profundamente anidados generalmente resultan en una "escalera" de indentación que consume espacio horizontal y tokens.
Si tienes una jerarquía profunda donde los objetos intermedios no tienen hermanos, TOON puede colapsarlos en una ruta de notación por puntos.
En lugar de escribir:
Puedes escribir:
datos:
metadata:
items[2]: a,b
Esta característica, disponible desde la especificación v1.5, reduce significativamente el conteo de líneas y los tokens de indentación. Es importante destacar que esto es completamente reversible. Cuando decodificas los datos con la expansión de rutas habilitada, reconstruye perfectamente la jerarquía profunda de objetos.
datos.metadata.items[2]: a,b
Estrictez y Seguridad
A pesar de su apariencia concisa, TOON no es laxo con los datos. Se adhiere a un conjunto estricto de reglas para comillas y escapes.
Las cadenas generalmente permanecen sin comillas, lo cual es excelente para la legibilidad. Sin embargo, TOON impone comillas para casos extremos para garantizar la integridad de los datos. Si una cadena parece un número (por ejemplo, "05" o "1e-6"), se pone entre comillas para evitar que se analice como un número. Si una cadena es una palabra reservada como true o null, se pone entre comillas.
Además, TOON normaliza los números. Emite formas decimales canónicas —sin notación científica ni ceros finales en la salida— asegurando consistencia. Incluso maneja BigInt de forma segura; si un número excede el rango seguro de enteros, se serializa como una cadena para evitar la pérdida de precisión durante el transporte.
Formas Raíz
Aunque la mayoría de nosotros trabajamos con Objetos Raíz, TOON es flexible. Un documento no tiene que comenzar con un par clave-valor. Admite Arrays Raíz (comenzando inmediatamente con [N]:) o incluso un Primitivo Raíz único. Esta paridad con JSON significa que puedes intercambiar TOON en casi cualquier tubería donde se use JSON actualmente, siempre que tengas el analizador en el otro extremo.
Pensamientos Finales
TOON no es solo "otro formato". Es una herramienta especializada para una era donde los datos son consumidos por modelos probabilísticos con tanta frecuencia como por código determinista. Al combinar el modelo de datos rígido de JSON con la densidad de CSV y la legibilidad de YAML, resuelve el problema específico de la optimización de la ventana de contexto sin sacrificar la seguridad de tipos.
Si estás construyendo agentes, ajustando modelos o simplemente cansado de desplazarte a través de interminables llaves de cierre, es hora de darle un vistazo a TOON.