zoe@dev:~$PID 1337
zoe@dev:~$ cat ~/blog/knuths-problem-again-pt.mdx

O problema de Knuth, outra vez: construindo um editor de LaTeX para agentes de IA

2026-07-26·Zoe Lin·4 min read·#magictex#ai-agents#latex#git#essay
EN中文日本語한국어EspañolFrançaisDeutschPortuguês

Na primavera de 1977, Donald Knuth recebeu as provas de uma nova edição de The Art of Computer Programming e achou-as feias. A editora havia trocado a composição em metal quente pela fotocomposição, e a matemática que antes parecia esculpida agora parecia fotocopiada. Ele não escreveu uma carta indignada. Estimou o conserto em uns seis meses, pôs a pesquisa de lado e começou a construir seu próprio sistema de composição. Levou quase dez anos. O LaTeX que quase todos digitamos hoje é a gentileza posterior de Leslie Lamport: uma camada de macros amigáveis sobre a máquina que Knuth construiu e chamou de TeX.

Essa história me foi contada pelo meu mentor, David Turnbull ↗, em um dos nossos encontros por Zoom. Ele recomendou que eu lesse os livros de Knuth. Na mesma conversa, mostrou-me dois editores que admirava: o Typst, que dobra escrita e renderização numa única superfície viva, e o LiquidText, que permite fixar um pensamento no ponto exato da página que o provocou. Naquela tarde eu não percebi, mas ele havia me entregado, num só gesto, uma lista de leitura e um briefing de projeto.

O que ficou comigo da história de Knuth não é a década heroica. É a recusa do começo. As páginas estavam erradas, e ele não tinha como meter a mão e corrigi-las — então construiu o meter-a-mão. Ele não aceitaria uma saída que não pudesse inspecionar e controlar.

Cinquenta anos depois, escrevo artigos com um agente de IA, e o mesmo problema voltou em silêncio, com roupas novas.

O agente escreve LaTeX melhor do que eu. Isso nunca foi o problema. Peça ao Claude para enxugar um parágrafo e você recebe um parágrafo mais enxuto. O que ele não pode dar são duas coisas: lugar e prova. Lugar: qual frase, em qual página, em qual arquivo — o agente edita às cegas, porque nunca vê a página renderizada que você está lendo. Prova: depois da edição, o que exatamente mudou? Você pode perguntar, o modelo vai responder, e a resposta será testemunho. O relato que um modelo faz das próprias edições é a memória de uma intenção. Não é um diff.

A resposta de Knuth à saída ruim foi um sistema em que cada marca na página remonta a um comando escrito por ele. Ao construir o MagicTeX, minha resposta foi a imagem no espelho: cada marca que o agente deixa precisa inscrever-se, para a frente, num registro que pertence ao humano.

O editor funciona assim. Você lê o PDF renderizado como um orientador lê um impresso, e comenta na própria página: seleciona um trecho, escreve «grande comparado a quê?». O agente recebe isso não como um clima, mas como uma instrução localizada: a página, o trecho citado, o arquivo e a linha do código-fonte, o seu pedido. Ele edita exatamente ali. E no instante em que o artigo recompila, o novo estado é fotografado num ref oculto do git: nem seus branches, nem seu git log — um livro-razão paralelo que o espaço de trabalho mantém por você. Cada compilação é um checkpoint. Cada checkpoint tem seu diff. Qualquer arquivo pode voltar a ser o que era. O Typst ensinou a janela; o LiquidText ensinou as margens; o git, em silêncio, encarrega-se de lembrar.

É esse livro-razão que me deixa ser generosa com a autonomia — e eu o quis mais justamente nos dias em que eu era a única pessoa que leria aqueles diffs. O MagicTeX tem um modo chamado /ultra-agents, em que um agente revisor critica o artigo, aceita as próprias sugestões e as corrige, rodada após rodada, sem aprovação humana no meio. Descrito assim, soa imprudente. É defensável por uma única razão: ele nunca consegue correr mais que o livro-razão. Cada rodada pousa como um checkpoint comum e reversível, e quando a poeira baixa você lê a história como árbitro, não como refém. Pode-se entregar a caneta a algo mais rápido que você — desde que fique com a página, as margens e a história.

Knuth entendia esse contrato social do outro lado. Ele é famoso por enviar um cheque de 2,56 dólares — um dólar hexadecimal — a quem encontrar um erro em seus livros. A maioria dos destinatários emoldura o cheque em vez de descontá-lo, o que prova exatamente o ponto: o dinheiro nunca foi a recompensa. A recompensa é pertencer a um sistema que diz: aqui os erros podem ser encontrados, e encontrá-los é honrado. É para isso que serve uma trilha de auditoria. Não para a desconfiança: para a hospitalidade com a correção.

Não acho que a lição de 1977 seja desconfiar das ferramentas. Knuth não recuou para a máquina de escrever; construiu uma máquina melhor e ainda inscreveu uma recompensa por erratas na cultura dela. A lição é que delegar e controlar não são opostos — que se pode abraçar o colaborador mais rápido que você já teve e, ainda assim, insistir, com educação, em evidências.

Essa é toda a ideia do MagicTeX, e ela começou com uma história contada pelo Zoom. Você marca a página. O agente trabalha o código-fonte. E o git lembra o que de fato aconteceu — quem quer, ou o que quer, que tenha digitado.

cd ~/blog ←