O que é TOON?

TOON
JSON
Otimização

Todos nós já estivemos lá. Você está projetando um prompt para um Large Language Model (LLM) e precisa transmitir dados estruturados. Você acessa JSON. Afinal, é o padrão da indústria. Mas ao observar sua janela de contexto ser preenchida com infinitas chaves, chaves repetidas e aspas em torno de números inteiros simples, você começa a se perguntar: Existe uma maneira melhor?

YAML oferece legibilidade, mas sofre de ambiguidade. CSV é denso, mas carece de hierarquia.

Digite TOON.

TOON é um formato de serialização de dados que parece uma lufada de ar fresco para desenvolvedores e uma linguagem nativa para modelos de IA. Ele preenche a lacuna entre a legibilidade humana e a eficiência da máquina. Hoje, vamos nos aprofundar na sintaxe e na mecânica do TOON para entender por que ele está rapidamente se tornando um favorito para intercâmbio de dados de alta eficiência.

A Filosofia: Semântica JSON, Estética YAML

Basicamente, o TOON compartilha exatamente o mesmo modelo de dados do JSON. Se você puder representá-lo em JSON – primitivos (strings, números, booleanos, nulos), objetos e arrays – você poderá representá-lo em TOON. No entanto, a apresentação é radicalmente diferente.

TOON descarta o aparelho. Ele usa recuo para representar hierarquia, assim como YAML. Um objeto simples parece limpo e acessível:

Ao contrário do YAML, entretanto, o TOON é rigoroso quanto aos tipos. Não há como adivinhar se no significa false ou a string "no". No TOON, as strings só exigem aspas quando for absolutamente necessário - como quando contêm caracteres especiais, se assemelham a números ou estão vazias. Se você digitar message: Hello World, obterá uma string. Se você digitar count: 42, obterá um número.

identificação: 123 
nome: Ada 
ativo: verdadeiro 

O poder dos arrays: comprimento e tabelas

Onde o TOON realmente se separa do pacote é no manuseio de arrays. Este é o “recurso matador” para otimização de token.

Cada array em TOON declara explicitamente seu comprimento entre colchetes, como items[3]. Isso pode parecer redundante para um humano, mas para um LLM é um superpoder. Ele permite que o modelo valide a estrutura imediatamente e detecte truncamentos. Se o fluxo for interrompido após dois itens, mas o cabeçalho prometer três, o analisador saberá que algo deu errado.

TOON oferece efetivamente três maneiras de lidar com arrays, escolhendo automaticamente a mais eficiente:

  1. Primitivas Inline: Para listas simples de números ou strings, TOON as mantém compactas. tags[3]: admin,ops,dev
  1. Listas padrão: Para tipos mistos, usa uma sintaxe de lista hifenizada semelhante a YAML.
  1. Objetos Tabulares: Este é o divisor de águas.

Se você tiver uma matriz de objetos que compartilham as mesmas chaves — um padrão muito comum em registros de banco de dados — o TOON gira para um Formato Tabular. em vez de repetir chaves para cada linha, ele declara as chaves uma vez no cabeçalho.

No exemplo acima, users[2]{id,name,role}: nos diz que temos 2 linhas e define o esquema. Os dados seguem em uma estrutura semelhante a CSV. Isso elimina a enorme sobrecarga de token de repetição de "id":, "name": e "role": para cada usuário.

usuários[2]{id,nome,função}: 
1, Alice Administrador, administrador 
2, Bob Smith, usuário 

Delimitadores e eficiência de token

Você pode notar o uso de vírgulas nos exemplos acima. Na verdade, o TOON suporta três delimitadores: vírgulas (padrão), tabulações e barras verticais (|).

Por que isso importa? Tokenização.

Em muitos tokenizadores LLM, uma vírgula seguida por uma aspa pode ser dividida em vários tokens. Um caractere de tabulação, no entanto, geralmente é tokenizado de maneira muito limpa. TOON permite alternar delimitadores no nível do cabeçalho da matriz. Se você usar um delimitador de tabulação, muitas vezes nem precisará citar strings que contenham espaços, compactando ainda mais seus dados.

O formato é inteligente o suficiente para lidar com “colisões”. Se seus dados contiverem o delimitador ativo, TOON simplesmente citará esse valor específico.

itens[2]{sku,nome,quantidade}: 
A1,Nome do widget,2 
B2,Nome do gadget,1 

Key Folding: Achatando a curva

Outro recurso que destaca o foco do TOON na eficiência é Key Folding. Objetos profundamente aninhados geralmente resultam em uma "escada" de recuo que consome espaço horizontal e tokens.

Se você tiver uma hierarquia profunda onde os objetos intermediários não possuem irmãos, o TOON poderá recolhê-los em um caminho de notação de ponto.

Em vez de escrever:

Você pode escrever:

dados: 
metadados: 
itens[2]: a,b 

Este recurso, disponível desde a especificação v1.5, reduz significativamente a contagem de linhas e os tokens de recuo. É importante ressaltar que isso é totalmente reversível. Quando você decodifica os dados com a expansão de caminho habilitada, ele reconstrói perfeitamente a hierarquia profunda de objetos.

dados.metadata.items[2]: a,b 

Rigor e Segurança

Apesar de sua aparência concisa, o TOON não perde dados. Ele segue um conjunto estrito de regras para citar e escapar.

As strings geralmente ficam sem aspas, o que é ótimo para facilitar a leitura. No entanto, TOON impõe cotações para casos extremos para garantir a integridade dos dados. Se uma string se parece com um número (por exemplo, "05" ou "1e-6"), ela é colocada entre aspas para evitar que seja analisada como um número. Se uma string for uma palavra reservada como true ou null, ela será colocada entre aspas.

Além disso, TOON normaliza os números. Ele emite formas decimais canônicas – sem notação científica ou zeros à direita na saída – garantindo consistência. Ele até lida com BigInt com segurança; se um número exceder o intervalo de números inteiros seguros, ele será serializado como uma string para evitar perda de precisão durante o transporte.

Formulários Raiz

Embora a maioria de nós trabalhe com objetos raiz, o TOON é flexível. Um documento não precisa começar com um par de valores-chave. Ele suporta Root Arrays (começando imediatamente com [N]:) ou até mesmo um único Root Primitive. Essa paridade com JSON significa que você pode trocar o TOON em praticamente qualquer pipeline onde o JSON é usado atualmente, desde que você tenha o analisador do outro lado.

Considerações Finais

TOON não é apenas “outro formato”. É uma ferramenta especializada para uma era em que os dados são consumidos por modelos probabilísticos com a mesma frequência que por códigos determinísticos. Ao combinar o modelo de dados rígido do JSON com a densidade do CSV e a legibilidade do YAML, ele resolve o problema específico de otimização da janela de contexto sem sacrificar a segurança do tipo.

Se você está construindo agentes, ajustando modelos ou apenas cansado de percorrer intermináveis ​​chaves de fechamento, é hora de dar uma olhada no TOON.