Migración hacia Nanobot: Gestión de GitHub Copilot mediante Telegram

Transición desde Openclaw

A pesar de que la herramienta previa ofrecía funcionalidad básica, enfrentamos tres desafíos críticos en producción: tiempos de inicio prolongados, una curva de aprendizaje alta debido a su configuración extensa y cuellos de botella en el rendimiento del sistema. La base de código de Openclaw, con sus cientos de miles de líneas, ha demostrado ser difícil de mantener y modificar.

Ante esta situación, surgieron varios proyectos alternativos como NonoBot (Python), PicoClaw (Golang) y ZeroClaw (Rust). Sin embargo, para garantizar la compatibilidad completa con mi cuenta de modelo y evitar integraciones secundarias, opté por la solución centralizada disponible en el repositorio oficial:

https://github.com/HKUDS/nanobot

El proceso de migración resultó fluido, superando las expectativas obtenidas anteriormente.

Desactivación de Openclaw

Antes de proceder, es fundamental preservar los datos existentes por si se requiere revertir la operación:

mv ~/.openclaw /tmp/backups_openclaw_$(date +%F)

Siguiente paso, detener los procesos activos para liberar puertos y recursos. Identificamos el ID del proceso y forzamos su terminación:

ps aux | grep openclaw
kill -9 1432
systemctl --user stop openclaw-gateway
systemctl --user disable openclaw-gateway

No eliminamos el paquete instalador temporalmente, manteniéndolo listo para un posible retorno.

Instalación y Configuración Inicial

Utilizamos uv para instalar la herramienta principal y verificar la versión instalada:

uv tool install nanobot-ai
nanobot --version
nanobot onboard

Es necesario autenticar manualmente la provisión de credenciales:

nanobot provider login github-copilot

Posteriormente, creamos o editamos el archivo de configuración en la ruta estándar. Note la estructura del objeto channels:

{
  "channels": {
    "telegram": {
      "enabled": true,
      "token": "TU_CLAVE_DE_SERVIDOR_TELEGRAM",
      "allowFrom": ["Usuario_Telegram_ID"]
    }
  },
  "agents": {
    "defaults": {
      "model": "github-copilot/gpt-5-mini"
    }
  }
}

Ejecutmaos el servidor gateway en modo foreground para validar la conectividad sin errores:

nanobot gateway

Una vez confirmado el funcionamiento correcto, pasamos a desvincularlo del terminal creando un servicio systemd persistente:

[Unit]
Description=Nanobot Service Container
After=network.target

[Service]
Type=simple
ExecStart=/home/user/.local/bin/nanobot gateway
Restart=always
RestartSec=10
NoNewPrivileges=yes
ProtectSystem=strict
ReadWritePaths=/home/user

[Install]
WantedBy=default.target

Cargamos la configuración y activamos el demonio:

systemctl --user daemon-reload
systemctl --user enable --now nanobot-gateway

Con esto, el entorno está listo para recibir solicitudes.

Compilación Manual desde Código Fuente

En marzo, se detectaron vulnerabilidades de seguridad en dependencias de terceros que afectaban versiones recientes (v0.1.4.post6), rompiendo la integración con Copilot. Al momento de esta guía, las correcciones estaban siendo implementadas (ejemplo PR #2668), por lo que la instalación limpia requería compilar localmente.

Primero limpiamos cualquier rastro de instalaciones previas:

un tool uninstall nanobot-ai
rm -f ~/.local/bin/nanobot
pipx uninstall nanobot-ai

Verificamos que no existan paquetes remanentes antes de clonar el repositorio:

git clone https://github.com/HKUDS/nanobot.git
cd nanobot
pipx install .

Confirmamos la versión específica instalada tras el compilado manual:

~/workspaces/trending > nanobot --version
🐈 nanobot v0.1.4.post7

Opciones Pendientes

  • Gestión de herramientas intermedias: https://hatch.pypa.io
  • Fallas recurrentes de OAuth de GitHub en actualizaciones recientes.
  • Incapacidad de los Tokens de GitHub para acceder a servicios de Copilot correctamente.

Etiquetas: nanobot github-copilot telegram-api systemd pipx

Publicado el 10-22 18:49