TOON: QUÉ ES Y CÓMO FUNCIONA
TOON (Token-Oriented Object Notation) es un formato para serializar datos estructurados (objetos, arrays, valores primitivos) de forma más compacta que JSON y está pensado especialmente para usarse con modelos de lenguaje (LLMs), porque reduce el número de tokens necesarios al enviar datos. Se puede convertir de JSON a TOON y luego volver a JSON sin perder información.Ventajas
- Ahorro de tokens frente a JSON (según la documentación, entre un 30 % y 60 % menos tokens para estructuras muy uniformes),
- Legible para humanos: declara esquema una sola vez, no repites claves para cada objeto.
- Ayuda a los modelos LLM porque les das “guardrails”: saben cuántas filas, qué campos y en qué orden vienen los datos.
- No hay pérdida de datos al convertir → desde JSON: round-trip sin perder nada.
Limitaciones
- Si tus estructuras son muy anidadas o heterogéneas (muchos niveles o formas distintas), TOON no es tan eficiente.
- En arrays “semi-uniformes” (no todos los objetos tienen exactamente los mismos campos) las ventajas bajan.
- Para datos puramente tabulares (como una tabla simple), el CSV puede ser incluso más compacto que TOON.
- Si la latencia es muy crítica: menos tokens no siempre significa tiempo de respuesta más rápido, depende del modelo y del entorno.
Comparación entre JSON y TOON
JSON:
{
"users": [
{ "id": 1, "name": "Alicia", "role": "admin" },
{ "id": 2, "name": "Pedro", "role": "user" }
]
}
TOON:
users[2]{id,name,role}:
1,Alicia,admin
2,Pedro,user
- Si tus estructuras son muy anidadas o heterogéneas (muchos niveles o formas distintas), TOON no es tan eficiente.
- En arrays “semi-uniformes” (no todos los objetos tienen exactamente los mismos campos) las ventajas bajan.
- Para datos puramente tabulares (como una tabla simple), el CSV puede ser incluso más compacto que TOON.
- Si la latencia es muy crítica: menos tokens no siempre significa tiempo de respuesta más rápido, depende del modelo y del entorno.
Comparación entre JSON y TOON
JSON:
{
"users": [
{ "id": 1, "name": "Alicia", "role": "admin" },
{ "id": 2, "name": "Pedro", "role": "user" }
]
}
TOON:
users[2]{id,name,role}:
1,Alicia,admin
2,Pedro,user
{
"users": [
{ "id": 1, "name": "Alicia", "role": "admin" },
{ "id": 2, "name": "Pedro", "role": "user" }
]
}
users[2]{id,name,role}:
1,Alicia,admin
2,Pedro,user