O erro que nos ensinou o problema
Em agosto de 2026 medimos o motor do Frame Oracle em quatro domínios diferentes, pedindo que ele explicasse vídeos reais. O resultado foi consistente e desconfortável: o motor é forte onde pode LER e fraco onde precisa ESTIMAR. Os erros caíram exatamente no vão entre o que o vídeo mostra e o que a resposta precisava ter.
- Receita:
500gvirou1,5kg. A quantidade era dita uma única vez, só no áudio, sem reforço na tela. - Mecânica: inventou o passo "levante o veículo" — um passo que o vídeo omite.
- Português: nenhum erro. A informação estava escrita na tela.
O padrão salta: onde havia texto legível, acerto; onde havia uma menção fugaz ou um vão, invenção.
E aqui está o ponto que reorganizou nossa engenharia: o problema não é o modelo inferir. Inferir é útil e às vezes é exatamente o que se pede. O problema é ele entregar inferência com a mesma cara de leitura. Quem lê a resposta não tem como distinguir uma coisa da outra — e por isso não tem como saber onde precisa conferir.
O caso mais didático que registramos foi este:
[01:33] Sirva com arroz branco
Nunca dito. Nunca mostrado. Com timestamp. A invenção vestida com a roupa da evidência.
Por que "não invente" no prompt não resolve
A saída óbvia é instruir o modelo: "não afirme nada que não esteja no vídeo". Nós tentamos, e descartamos — não por preciosismo, mas porque instrução é persuasão, e persuasão falha calada. Quando ela falha, nada acusa: você recebe uma frase confiante, bem escrita, indistinguível de uma frase correta.
O princípio que adotamos é outro:
Se o modelo erra um campo sendo razoável, o campo está errado.
Ou seja: em vez de pedir que ele não cometa o erro, construímos o formato de resposta de modo que o erro seja inexprimível. Não é confiança no modelo — é uma estrutura em que a alucinação vestida de leitura não tem como ser escrita.
O vocabulário: cinco bases, do mais ancorado ao menos
Toda afirmação numa resposta do Frame Oracle declara de onde saiu. São cinco bases possíveis, e a ordem não é decorativa — ela vai da mais ancorada à menos:
tela— está escrito ou visível na imagem.fala— foi dito no áudio.inferido— o modelo concluiu a partir do que viu ou ouviu.fora_do_video— vem de conhecimento geral, não deste vídeo.nao_consta— o vídeo não responde isso.
As duas primeiras são o que chamamos internamente de bases lidas: são as únicas que se apoiam em algo efetivamente observável no arquivo.
Uma decisão importante e talvez contraintuitiva: isso é agnóstico de domínio. Não existe "receita" nem "mecânica" nem "matemática" dentro dessa regra. "Diga de onde tirou" vale igual para os quatro domínios que medimos e para os que ainda não medimos. O que muda por domínio é apenas quais afirmações são arriscadas — e isso é configuração, não código.
As três regras estruturais
O vocabulário sozinho seria só uma etiqueta, e etiqueta se preenche errado. O que faz a diferença são três regras que o formato impõe:
1. Base lida EXIGE instante. Se a afirmação vem de tela ou fala, ela precisa carregar um
timestamp. O raciocínio é direto: se o modelo viu, ele sabe quando viu. Uma leitura sem instante
não é leitura — é lembrança.
2. inferido PROÍBE instante. Esta é a regra que mata o [01:33] Sirva com arroz branco.
Carimbar um momento específico em algo que não foi observado é a assinatura exata do defeito que
medimos. No nosso formato, essa combinação não compila: uma afirmação inferida com timestamp é
rejeitada antes de chegar a qualquer tela.
3. nao_consta é base de primeira classe. Isto é menos óbvio e talvez seja o mais importante.
Se "não sei" não for uma resposta barata e legítima, o caminho de menor resistência para
qualquer modelo é inventar. Dar a "o vídeo não responde isso" o mesmo status das outras bases é o
que torna o silêncio uma opção viável em vez de uma falha.
As três valem por construção, não por checagem. Não são um passo de validação que alguém pode esquecer de chamar — são propriedades do formato. E a lista de bases não-observadas é derivada da lista completa menos as lidas, de modo que uma base nova cai na regra sozinha, sem ninguém precisar lembrar de atualizar uma segunda lista.
A segunda trava: um instante que o vídeo não pode conter não é um destino
Grounding não termina no formato. Medimos um caso em que, num vídeo de 7 segundos, o modelo respondeu citando "o segundo 40".
A correção intuitiva seria limitar o número à duração do vídeo — levar o 40 para o 7. Nós escrevemos essa versão e depois a apagamos, porque ela é a versão elegante do próprio defeito: o clique funcionaria, o vídeo iria para algum lugar, e nada diria que o número era falso. A interface viraria cúmplice da invenção.
O que fazemos é recusar. Um instante que o vídeo não pode conter não recebe endereço, e o componente que receberia o comando de navegar simplesmente não navega.
Um botão que não navega é honesto. Um que navega para o lugar errado mente com confiança.
Existe uma tolerância de meio segundo, porque arredondamento no último instante é arredondamento, não invenção. Fora dela, a resposta é não.
O que isso entrega a quem recebe um laudo
O destinatário final de uma análise do Frame Oracle raramente é quem a encomendou — é o cliente do cliente. Alguém que recebe um documento e precisa decidir se confia nele.
Para essa pessoa, a diferença prática é poder conferir. Uma afirmação marcada como tela com
um instante é uma afirmação que ela abre, assiste e verifica em cinco segundos. Uma afirmação
marcada como inferido é uma leitura da qual ela pode discordar — e discordar de uma
interpretação declarada é uma conversa produtiva, ao contrário de discordar de um fato inventado
que parecia observação.
O limite honesto, dito por extenso
Aqui está a parte que normalmente não entra num texto sobre a própria tecnologia, e que entra neste porque um artigo sobre grounding que esconde suas lacunas se refuta a si mesmo.
Grounding valida COERÊNCIA, não VERACIDADE. O sistema garante que a declaração de origem seja
internamente consistente — que inferido não venha com timestamp, que tela venha com um. Ele
não garante que a afirmação seja verdadeira. Um modelo que minta de forma internamente
consistente atravessa a estrutura inteira.
O que a estrutura faz não é provar. É permitir provar: ela obriga a resposta a dizer onde conferir, e transfere a última palavra para quem assiste ao vídeo. É menos do que uma garantia e é muito mais do que uma frase confiante.
E o que ainda não está pronto: a prova precisa chegar ao documento entregue, clicável, para que o destinatário final não dependa de ter o projeto aberto. Essa peça está em construção enquanto este texto é publicado. O vocabulário e as regras estruturais existem e são testados; o elo entre eles e o documento final, não ainda.
Preferimos publicar isso do que publicar a versão em que tudo já funciona.