El runtime depende de la ruta que ya elegiste. No instales los dos "por si acaso" en una Pi de 4 GB. Elige uno, verificalo y deja el otro para otra maquina.
Base comun
ffmpeg y ripgrep no son obligatorios para un bot de texto, pero evitan fallos tontos cuando una skill quiere leer un repo o un audio. build-essential ahorra errores de compilacion en wheels de Python.
Si vas con OpenClaw
OpenClaw requiere Node.js 22+. El Node de apt en muchas imagenes de Pi se queda corto.
Confirma que node --version empieza por v22. Luego instala y deja que el onboarding cree el daemon:
Copia la configuracion que ya te funciono en la laptop (SOUL, memoria, skills, canales). No rehagas personalidad desde cero en la Pi: vas a introducir diferencias que no sabras diagnosticar.
Doctor primero
Si openclaw doctor falla, no actives el gateway. Un daemon que arranca a medias es mas dificil de leer que un onboarding incompleto.
Si vas con Hermes
Ruta pip (la mas simple si Python 3 ya esta):
Si pip se queja de "externally-managed-environment", usa un venv en ~/agents o el instalador oficial por Git:
Verifica:
Anota la ruta de which hermes. La vas a poner en ExecStart del servicio. Si usas venv, esa ruta no es ~/.local/bin/hermes.
Modelo: API vs local
No corras modelos grandes en la Pi
La Pi funciona bien como orquestador. Para el cerebro, usa API externa. Un modelo local pequeno solo si mides RAM libre con el gateway ya corriendo y aceptas latencia alta.
Prueba practica: manda un mensaje de un solo turno. Cronometra. Si tarda mas de lo que tolerarias en WhatsApp, no es un problema de systemd: es el modelo o la red.
Que copiar desde la laptop
- Archivos de personalidad y memoria (sin pegar
.enven el chat). - Skills que ya validaste.
- Lista de usuarios o chats permitidos.
- El proveedor y el modelo que ya usabas.