Agregar un canal de WhatsApp a OpenClaw
+
Telegram (Parte 3) le dio a tu agente un bot. WhatsApp le da una línea telefónica — la aplicación que ~3 mil millones de personas ya usan, accesible sin fricción. Una advertencia que vale la pena entender desde el principio: WhatsApp no tiene cuenta de bot, así que OpenClaw se vincula a un número real como un dispositivo compañero (como WhatsApp Web) y el agente actúa como esa cuenta. Cada comando y error a continuación proviene de una ejecución real.
Lo que construirás
Cualquiera envía un mensaje al número; la puerta de enlace — vinculada como un dispositivo compañero — lo procesa a través de tu modelo y responde desde el número mismo. Sin puertos de entrada, sin cuenta de bot.
Requisitos previos: Partes 1–4 completadas (OpenClaw en ~/openclaw), una cuenta de WhatsApp en tu teléfono, ~1 GB de espacio libre en disco. Todos los comandos se ejecutan en ~/openclaw.
Paso 1 — Agregar el canal de WhatsApp
OpenClaw trata las aplicaciones de mensajería como canales; WhatsApp es uno de primera clase:
docker compose run --rm openclaw-cli channels add --channel whatsapp
Plugin de WhatsApp instalado
Cuenta de WhatsApp "default" añadida.
¿Recibiste requires plugin API >=2026.7.1? Estás en una versión anterior de OpenClaw — actualiza primero.
El canal de WhatsApp es un plugin restringido a versiones más nuevas:
Figura 1. La pared de versión — el plugin de WhatsApp necesita OpenClaw ≥2026.7.1.
Haz una copia de seguridad, descarga, recrea y confirma que tus canales existentes sobrevivieron (:latest no se actualiza automáticamente — debes descargar deliberadamente):
cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak-$(date +%Y%m%d)
docker compose pull openclaw-gateway
docker compose run --rm openclaw-cli --version # espera 2026.7.1+
docker compose up -d --force-recreate openclaw-gateway
docker compose run --rm openclaw-cli channels status # Telegram debería seguir conectado
Figura 2. Después de descargar, la imagen informa 2026.7.1 — se cumple el requisito.
Luego vuelve a ejecutar el channels add anterior.
Paso 2 — Confiar en el plugin
Verifica el estado y el canal está detenido con un error críptico:
Figura 3. detenido — un plugin no confiable no puede usar openKeyedStore, por lo que el canal no se iniciará.
Esa es una característica de seguridad: OpenClaw aísla los plugins de terceros, y uno no confiable no puede usar openKeyedStore (el almacenamiento que WhatsApp necesita para su sesión). Confía en él — incluye cualquier otro plugin no empaquetado que ya se esté cargando (aquí codex) para que no lo bloquees — y recrea:
docker compose run --rm openclaw-cli config set \
--batch-json '[{"path":"plugins.allow","value":["codex","whatsapp"]}]'
docker compose up -d --force-recreate openclaw-gateway
docker compose run --rm openclaw-cli channels status
Figura 4. Confiado — plugins.allow ahora lista whatsapp (y codex).
El reinicio es importante — la puerta de enlace lee plugins.allow antes de inicializar el plugin. Ahora está en funcionamiento:
Figura 5. En vivo — WhatsApp funcionando, conectado, saludable, y Telegram sigue activo.
Paso 3 — Vincula tu teléfono por QR
docker compose run --rm openclaw-cli channels login
Escanea el QR en la terminal desde WhatsApp → Configuración → Dispositivos Vinculados → Vincular un Dispositivo.
Figura 6. Escanea para vincular; ✅ Vinculado después del reinicio maneja la reconexión del código 515.
código 515 es normalWhatsApp obliga a una reconexión justo después del emparejamiento; OpenClaw lo maneja automáticamente. Este es exactamente el lugar donde las configuraciones manuales se quedan atrapadas en un bucle — aquí simplemente funciona.
Paso 4 — Pruébalo
Desde otro teléfono, envía un mensaje al número:
Figura 7. Una pregunta enviada, la respuesta del agente — enviada desde el número, como la cuenta.
Responde — pero nota que responde desde tu número, como tú. Eso es el modo compañero: el agente es la cuenta. Genial para un asistente personal, y la razón de la advertencia a continuación.
Tu agente de OpenClaw responde en WhatsApp — de forma nativa, sin puente, sin cuenta de bot.
Antes de un número real
Procesa cada DM y grupo que recibe la cuenta (Escuchando ... DM + todos los grupos). Para cualquier cosa real: vincula un número dedicado (una SIM prepago barata — los números virtuales a menudo son rechazados), y establece una lista de permitidos antes de exponerlo.
Estaciona el canal cuando termines de probar (Telegram sigue funcionando; tu enlace permanece guardado):
docker compose run --rm openclaw-cli config set \
--batch-json '[{"path":"channels.whatsapp.accounts.default.enabled","value":false}]'
docker compose up -d --force-recreate openclaw-gateway
Solución de problemas
openKeyedStore solo está disponible para plugins confiables— el canal se instala pero permanecedetenido. Agrega el id aplugins.allowy recrea la puerta de enlace (Paso 2). Un cambio de configuración en vivo no es suficiente una vez que ya ha fallado al iniciar.- Bucle de QR /
código 515— reinicio normal después del emparejamiento. Si nunca se estabiliza, elimina entradas obsoletas en WhatsApp → Dispositivos Vinculados y escanea un QR nuevo. - Respondió a un contacto real — el modo compañero responde a todo; consulta la advertencia anterior y usa un número dedicado.
¿Qué sigue?
Parte 5 completada — tu agente llega a Telegram y WhatsApp desde una caja privada y reforzada.
- Dale memoria que sobreviva a los reinicios — la serie del Agente Hermes.
- Fundamenta en tus documentos — la serie de evaluaciones de IA y observabilidad construye un servicio RAG al que puedes apuntar un canal.
Desmontaje
docker compose run --rm openclaw-cli channels remove --channel whatsapp
docker compose restart openclaw-gateway
Y desvincula el dispositivo en WhatsApp → Dispositivos Vinculados si has terminado.
