Aqui a gente roda agentes agendados num PC que fica ligado o dia todo, sem ninguém olhando na hora. Então "revisar depois" é a regra, e o que segurou não foi aprovar cada passo, foi tirar do alcance os comandos que fazem estrago grande. Cada regra abaixo nasceu de um incidente:
- Matar processo por padrão. Um
pkill -fcasou com a linha de comando do próprio shell do agente e derrubou a sessão. Outro kill por nome ("qemu") acertou a VM de um programa que não tinha nada a ver. Hoje só vale kill por PID que o próprio agente iniciou, ou pela ferramenta do programa (ex.:adb emu killpara o emulador Android). - Comando que espera input. Um agente parado num prompt segurou a fila de agendamentos por três dias, porque o agendador não começa uma execução nova enquanto a anterior não termina. Agora tudo roda não interativo e com timeout.
- Segredos na saída. O agente não pode dar
cat/sourceno.envnem montar URL ou curl com token, porque o que ele imprime vai para log e transcrição. O script carrega o.envsozinho e o agente só cita o nome da variável. git add -A. Com várias sessões no mesmo repositório, ele leva junto arquivo pela metade de outra sessão. Cada agente adiciona só os caminhos que mexeu.- O que não tem volta. Apagar dados, publicar numa conta, gastar dinheiro: isso vai para uma fila de aprovação humana. Ler, testar, rascunhar e fazer deploy que só envia arquivos (nunca apaga) rodam sozinhos.
Duas coisas que ajudaram mais do que o modo de aprovação em si: escrever o porquê junto de cada regra (sem o motivo, o modelo acha uma "exceção razoável"), e exigir prova depois de toda ação final, tipo a página de confirmação ou o item aparecendo na lista, antes de registrar "feito".