O contexto
Chegamos ao último gargalo da Escola Gemini v3 Já tínhamos um Juiz para validar a estrutura e Hooks para gerenciar o estado. Mas ainda havia um ponto de falha crítico: a comunicação entre a IA e o sistema dependia de linguagem natural.
Para o sistema avançar do "Nivelamento" para a "Lição 1", o Hook procurava no texto gerado pela IA algo como: "Nivelamento concluído". O problema? A IA é criativa. Um dia ela dizia "Nivelamento concluído!", no outro "Terminamos a etapa inicial!", e no terceiro "Você está pronto para a próxima fase!". Minhas Regex falhavam, o estado não mudava e o sistema quebrava. Frases são frágeis.
O fim das frases frágeis
A solução foi parar de tratar a IA como uma pessoa e começar a tratá-la como um componente de software que precisa retornar um código de status. Introduzi o conceito de System Tags.
Instruímos a IA a parar de usar linguagem humana para sinalizar comandos de sistema. Agora, ela é obrigada a incluir um bloco de "código de máquina" invisível para o usuário no final de cada resposta importante.
[ESTADO_ESCOLA: NIVELAMENTO_CONCLUIDO=TRUE]
O hook after-model.js foi alterado para ignorar o texto emocional da IA e procurar estritamente por essa tag. Se a tag não estiver lá ou estiver errada, o sistema não avança. Não importa o quão gentil a IA foi no texto; o que vale é o metadado.
O Bypass Determinístico
Com o "Juiz" sendo extremamente rígido para evitar que a IA entregasse código pronto, surgiu um conflito. E quando a IA precisava usar uma ferramenta legítima do sistema (chamar um script de teste, por exemplo)? O Juiz tentava barrar o comando porque parecia "código demais".
Para resolver isso, criamos o Bypass Determinístico usando a flag --is-tool-call.
// No validador
if (process.argv.includes("--is-tool-call")) {
// Se a IA está usando uma ferramenta autorizada, o Juiz relaxa
return autorizarSaida();
}
Isso criou uma hierarquia de permissões. A IA tem liberdade para criar analogias e explicar conceitos, mas para tocar nos arquivos do sistema ou mudar o estado do ensino, ela precisa assinar digitalmente o que está fazendo através dessas tags e flags.
De Chat para Software
O resultado final desse processo foi a transformação total da experiência. O que começou como um "chat de IA" — algo fluido, imprevisível e muitas vezes frustrante para o ensino — terminou como um software de back-end rígido.
A IA continua sendo o motor de criatividade. Ela gera as analogias, percebe a dificuldade do aluno e ajusta o tom da conversa. Mas ela não "voa" sem permissão. Ela está cercada por uma arquitetura que exige validação constante. O cérebro é a IA, mas o esqueleto e o sistema nervoso são meus scripts.
O que fica
Aprendi que a interface entre linguagem natural e código determinístico é o lugar mais perigoso de um sistema moderno. Se você não criar protocolos rígidos (como as System Tags), você fica refém da "vontade" do modelo. A Escola Gemini v3.1 agora é blindada. Ela é prova de que podemos usar a potência dos LLMs sem abrir mão do controle total sobre o fluxo do usuário.
Referências
- Gemini CLI: Writing Extensions — Manual oficial para transformar scripts de controle em extensões robustas e reutilizáveis dentro do ecossistema do CLI.
- Protocol Buffers (Documentação Oficial) — Site oficial do Protobuf, base teórica para estruturar e serializar mensagens entre sistemas.
- Google Gemini API: Structured Outputs — Como forçar a IA a responder em formatos determinísticos (como JSON) para integrações seguras com o back-end.