Migrando Agentes de IA Sem Tempo de Inatividade
Eu costumava rodar dois agentes de IA: OpenClaw e Hermes.
O OpenClaw funcionava bem para tarefas agendadas. O Hermes funcionava melhor para raciocínio complexo. No entanto, o OpenClaw tinha uma falha grave. Quando as tarefas ficavam pesadas, ele sofria timeout e descartava o trabalho. O Hermes nunca fazia isso. Ele segurava a tarefa e concluía o trabalho.
Decidi mover tudo para o Hermes. Eu não queria uma mudança repentina. Uma mudança repentina é arriscada. Se o novo sistema falhar, eu perco minhas notificações.
Escolhi uma estratégia de migração paralela.
Mantive o OpenClaw rodando. Adicionei o Hermes como um sistema de sombra. Isso me permitiu comparar ambos os agentes lado a lado.
Meu sistema de notificações estava bagunçado. Ele usava quatro métodos diferentes:
- Shell scripts
- Node monitors
- Bash helpers
- Python scripts
Eu não reescrevi o código. Tornei a nova entrega aditiva. Criei um script chamado hermes_mirror.sh. Adicionei uma linha a cada tarefa existente para chamar esse script em segundo plano.
Essa abordagem proporcionou três benefícios:
- Segurança: Se o espelhamento falhar, a mensagem original ainda é enviada.
- Simplicidade: Um único script gerencia todo o espelhamento.
- Controle: Posso interromper todo o espelhamento alterando apenas uma variável.
Então, cometi um erro de temporização.
Eu não queria que as duas mensagens chegassem no exato mesmo segundo. Achei que isso causaria ruído. Defini um atraso de três minutos para as mensagens do Hermes.
Executei um teste. A mensagem do OpenClaw chegou. A mensagem do Hermes não. Achei que o sistema estivesse quebrado.
O sistema não estava quebrado. Ele estava apenas esperando o temporizador de três minutos. Em uma migração, "atrasado" parece "falha".
Reduzi o atraso para 20 segundos. Isso foi o suficiente para separar as mensagens sem que parecessem perdidas.
Também aprendi sobre o perigo de alterações de código automatizadas. Usei um script para injetar a nova linha em meus arquivos Python. Funcionou para quase tudo, exceto para um arquivo. Aquele arquivo tinha uma estrutura de importação diferente. Isso causou um crash. Sempre verifique cada arquivo, mesmo aqueles que você acha que são seguros.
A migração não terminou. Estou movendo uma tarefa por vez. Só desativo uma tarefa do OpenClaw quando vejo o Hermes entregá-la com sucesso.
Uma migração não deve ser um momento único. Deve ser uma caminhada constante em direção a um novo sistema.
Comunidade de aprendizado opcional: https://t.me/GyaanSetuAi