Manual de Clonagem de Bots
Manual de Clonagem e Provisionamento de Bots (Moltbot)
1. Visão Geral
Este documento descreve o procedimento padrão para clonar um bot existente (ex: Cláudio) e provisionar uma nova instância (ex: Roberval) na infraestrutura DigitalSys. O processo garante que o novo bot tenha identidade própria, acesso à rede privada e conflitos de execução resolvidos.
2. Requisitos Prévios
- Chave de API da DigitalOcean (Read/Write).
- Novo Token do Discord (Developer Portal).
- Nome do Host (Hostname) desejado.
- Acesso SSH à máquina de controle.
3. Clone e Provisionamento (Hardware)
O método mais rápido é via Snapshot e recriação via API. Isso preserva todas as ferramentas instaladas.
Script Python recomendado (reclone_bot.py) deve realizar:
- Localizar o ID do Droplet de origem (Cláudio).
- Solicitar 'snapshot' via API da DigitalOcean.
- Aguardar a conclusão do snapshot.
- Criar novo Droplet usando o ID da imagem do snapshot.
- INJETAR 'User Data' (Cloud-Init) para configuração inicial.
Exemplo de User Data (Bash) para injeção:
#!/bin/bash
hostnamectl set-hostname moltbot-roberval
# Atualizar Token do Bot (JSON)
python3 -c "import json; ... data['token']='NOVO_TOKEN'; ..."
systemctl restart clawdbot-gateway
4. Identidade e Memória (Software)
Após o boot, o bot ainda 'pensa' que é o original. Deve-se limpar sua memória e personalidade.
Arquivos a editar em /root/clawd/:
- IDENTITY.md: Alterar Name, Creature e Emoji.
- SOUL.md: Alterar a 'Persona' e diretrizes.
- memory/YYYY-MM-DD.md: Apagar logs herdados do dia.
5. Rede e Segurança (Firewall)
O novo Droplet nasce sem Tags. Para funcionar na VPC e acessar bancos de dados, ele precisa das mesmas tags do original.
Ação: Sincronizar tags via API.
- Tag Obrigatória:
internal-network - Comando:
POST /v2/tags/internal-network/resources {resource_id: NEW_DROPLET_ID}
6. Discord Permissions (Erro 4014)
Se o bot conectar e cair com erro 4014, faltam permissões privilegiadas (Intents).
Acessar Discord Developer Portal -> Bot -> Privileged Gateway Intents e ativar:
- PRESENCE INTENT
- SERVER MEMBERS INTENT
- MESSAGE CONTENT INTENT
7. Validação Final
- Verificar status do serviço:
systemctl status clawdbot-gateway --user - Verificar logs:
journalctl --user -u clawdbot-gateway -f - Testar comando no Discord:
"Quem é você?"