BotBrain
BotBrain é um controlador neural experimental atrás de ?botbrain=1. Sem essa flag, o
jogo continua usando a IA roteirizada. O modelo publicado aprende pares de estado e ação,
mas só pode substituir pesos depois de passar a régua funcional em sementes fora do dataset
bootstrap e uma revisão manual.
Testar o modelo
npm run dev
# abra http://localhost:4321/?botbrain=1
npm run bot:brain:check
No modo CAPTURA, o controlador neural assume combate quando existe alvo; sem alvo, o bot volta à navegação roteirizada para capturar e defender os pontos.
Coleta e privacidade
A coleta começa desligada. O jogador precisa autorizá-la em Configurações > Privacidade > Ajudar a treinar os bots. Em produção:
- UID + token autenticam a origem do lote;
- o IP participa apenas do rate limit e não é armazenado no corpus;
- há limites por IP, por jogador e para o total armazenado;
- o importador limita a contribuição de cada jogador;
- nenhum dado remoto publica um modelo automaticamente.
Treinar localmente
npm i -D @tensorflow/tfjs-node
npm run bot:record 60 all
npm run bot:train -- --epochs=40
npm run bot:brain:check
O guia operacional completo, inclusive Docker e sink local, está em
docs/BOTBRAIN-LOCAL.md.
O Docker publica o jogo apenas no loopback; o sink local rejeita origens externas, limita
taxa, corpo e metadados, e interrompe a coleta ao atingir 50 MiB.
Gates
npm run eval:botbrain verifica identidade UID, consentimento, objetivo de CTF, cache bust,
sink local, execução não-root no contêiner, balanceamento do corpus e separação entre as
sementes de treino e avaliação. npm run bot:brain:check executa partidas bot contra bot
com sementes holdout e confirma que a rede se move, atira e consegue abates.