Subagente pode mentir (sem querer) sobre o que modificou
Um subagente de IA encarregado de editar um painel interno relatou, em duas execuções seguidas, "nenhum arquivo modificado". Checando o sistema de arquivos depois — não confiando no relatório —, um arquivo real tinha sido alterado em 12 linhas.
Não foi um caso de o subagente mentir de propósito. A execução parece ter passado por uma edição parcial no início da tarefa, antes do restante do fluxo travar num classificador interno mais adiante. O relatório final foi gerado a partir do estado que o próprio agente acreditava ser verdadeiro no momento de resumir — que não incluía a edição que já tinha acontecido antes do travamento.
Por que isso importa
O auto-relato de um subagente ("fiz X", "não toquei em Y") é uma amostra da crença do agente sobre o que aconteceu, não uma auditoria do que de fato aconteceu. Quando uma execução é interrompida, trava num passo intermediário, ou sofre qualquer condição de corrida com outra sessão escrevendo no mesmo arquivo, o relatório final pode descrever com total confiança um estado que já não é mais verdadeiro.
O padrão de risco: edit parcial + run interrompido
O caso mais perigoso não é o agente que erra tudo — é o agente que faz uma edição parcial válida (que passa por qualquer verificação superficial no início do run) e trava antes de completar o resto do trabalho que dependia dela. O resultado é um "stub órfão": código que parece pronto porque uma parte dele de fato está, mas que não tem as peças que o restante do fluxo assumia que existiriam. Isso é mais perigoso que uma falha total, porque passa despercebido em uma checagem rápida de "rodou sem erro".
O que fazer
- Depois de qualquer execução de subagente que edita arquivo compartilhado, verificar o que foi realmente tocado via controle de versão (diff/status) — nunca só pelo relatório final do agente.
- Tratar edição parcial de um run que travou ou foi interrompido como não confiável por padrão, até confirmação manual de que a mudança está completa.
- Proveniência de uma mudança em arquivo compartilhado que não dá pra confirmar com certeza deve ser tratada como não verificada — reverter e refazer pelo canal correto é mais seguro do que aceitar por evidência circunstancial (ex.: "o timestamp bate" não é prova de que o conteúdo é o que o agente diz que é).
A lição generaliza além de subagentes de codificação: qualquer sistema que delega uma ação a um agente autônomo e depois decide o que aconteceu com base só no relatório desse agente tem o mesmo ponto cego. A fonte de verdade é o estado observável do sistema, não a narrativa que o agente produz sobre si mesmo.
← Voltar pra Notes