Skip to content
SB.NGNZ
26 de ago. de 2026 · 6 min

Seus agentes não precisam de integrações. Precisam de um log.

Quase todo mundo que constrói um assistente pessoal começa do mesmo jeito. O agente precisa saber da sua agenda, então você dá acesso à agenda. Depois precisa do seu email, então você dá acesso ao email. Depois aparece um segundo agente, e ele precisa das mesmas duas coisas, então ganha suas próprias conexões.

Seis meses depois você tem quatro agentes e seis fontes, e em algum lugar disso existem vinte e quatro opiniões separadas sobre como é a sua semana. Cada uma delas é uma credencial para rotacionar, um rate limit para respeitar, um sync para debugar às onze da noite. E nenhuma delas lembra de nada, então cada conversa começa do zero e cada agente novo começa do nada.

O problema não são os agentes. É que cada um deles tem sua própria cópia do mundo.

01 / A inversão

Então construímos a outra coisa. Um log append-only. Tudo que acontece cai ali uma vez, através de um único escritor, e tudo que vem depois lê dali.

Cinco caixas de email, mensagens, agenda, clima, telefone, um wearable. Dezessete serviços pequenos, umas vinte e seis mil linhas. Nenhum deles interessante sozinho. O que é interessante é que existe exatamente um escritor, então o log nunca pode discordar de si mesmo, e o formato de cada evento é validado pelo seu tipo na borda, onde rejeitar um ruim ainda é barato.

E então a parte que muda tudo: cada leitor guarda o próprio cursor.

Essa única decisão compra três coisas que, de outra forma, saem caras. Um consumidor que ficou quebrado por três dias se atualiza sozinho, porque sua posição é um número e o histórico ainda está lá. Um consumidor que não existia no ano passado pode ler dados do ano passado, o que significa que você pode fazer amanhã uma pergunta com código que ainda não tinha sido escrito quando a resposta chegou. E nenhum leitor consegue atrasar outro, porque ninguém espera por ninguém.

Plugar um agente novo em uma vida deixa de ser um projeto de integração. É um cursor.

02 / A história é o ativo

Existe uma segunda coisa que decorre do append-only, e demorei um tempo para enxergar isso.

Nada é atualizado e nada é apagado, então o log é um histórico e não uma foto. O estado derivado não é guardado em nenhum lugar sagrado: é calculado a partir do log. O que significa que no dia em que você mudar de ideia sobre o que um sinal significa, você não migra nada. Você descarta a camada derivada e a recalcula.

As camadas que tiram conclusões escrevem essas conclusões de volta no mesmo log, como eventos. Assim o registro contém não só o que chegou, mas o que o sistema fez com aquilo e quando decidiu isso. Quando algo dá errado duas semanas depois, a pergunta "por que ele pensou isso" tem uma resposta com um timestamp.

Integrações são commodity. Qualquer um consegue acesso à agenda. O histórico é a coisa que não pode ser recomprada, porque se você não registrou, ele se foi.

03 / O teste que não agendamos

Teoria é confortável. Foi isso que aconteceu.

A camada de observação foi escrita como a arquitetura de um produto que estava encerrando, e rodava na infraestrutura desse produto. Seus dados viviam num servidor que pertencia ao projeto. Seus tokens eram servidos pelo domínio do projeto. O código estava bom. A dependência era fatal: no dia em que essa infraestrutura sumisse, os olhos apagariam, não importa quão bom fosse o código.

Então ela se mudou para casa, para uma máquina no canto de um cômodo. Serviço por serviço, com o sistema antigo rodando o tempo todo. Os dados atravessaram e foram verificados por checksum nas duas pontas: cerca de noventa e sete mil eventos, setecentos megabytes, hashes idênticos.

Uma decisão definiu a migração. A configuração antiga usava push, que era rápido e dependia de um hostname que estava prestes a deixar de existir. Passamos para polling, que custou cerca de dez minutos de latência e comprou independência total. Essa troca parece ruim num benchmark e certa num calendário.

Quando o servidor antigo finalmente foi destruído, nada aconteceu. Doze serviços de pé, uma rodada de polling limpa logo em seguida. O log não percebeu que o mundo em que nasceu tinha acabado.

04 / Para que serve

A razão para ser dono dessa camada não é elegância arquitetônica. É que a coisa que vê a sua vida não deveria viver numa infraestrutura que você não controla, e não deveria estar espalhada entre quaisquer fornecedores em que seus agentes foram construídos.

Construa o log primeiro. Deixe os agentes serem substituíveis. Eles vão ser: o modelo que você usa hoje vai ser constrangedor daqui a um ano, e o agente que você escreveu no mês passado já é um rascunho.

O log não. Uma integração é uma conexão. Um log é uma memória. Só uma das duas vale a pena guardar.