Crear un asistente personal con OpenClaw
OpenClaw es un gateway autoalojado que conecta Discord, Google Chat, iMessage, Matrix, Microsoft Teams, Signal, Slack, Telegram, WhatsApp, Zalo y más con agentes de IA. Esta guía cubre la configuración de “asistente personal”: un número de WhatsApp dedicado que se comporta como tu asistente de IA siempre activo.⚠️ Seguridad ante todo
Estás colocando a un agente en una posición en la que puede:- ejecutar comandos en tu máquina (según tu política de herramientas)
- leer/escribir archivos en tu espacio de trabajo
- enviar mensajes de vuelta a través de WhatsApp/Telegram/Discord/Mattermost y otros canales integrados
- Configura siempre
channels.whatsapp.allowFrom(nunca ejecutes algo abierto al mundo en tu Mac personal). - Usa un número de WhatsApp dedicado para el asistente.
- Los heartbeats ahora tienen como valor predeterminado cada 30 minutos. Desactívalos hasta que confíes en la configuración estableciendo
agents.defaults.heartbeat.every: "0m".
Requisitos previos
- OpenClaw instalado e incorporado — consulta Primeros pasos si todavía no lo has hecho
- Un segundo número de teléfono (SIM/eSIM/prepago) para el asistente
La configuración de dos teléfonos (recomendada)
Esto es lo que quieres: Si vinculas tu WhatsApp personal a OpenClaw, cada mensaje que recibas se convierte en “entrada del agente”. Rara vez es eso lo que quieres.Inicio rápido de 5 minutos
- Empareja WhatsApp Web (muestra un QR; escanéalo con el teléfono del asistente):
- Inicia el Gateway (déjalo en ejecución):
- Coloca una configuración mínima en
~/.openclaw/openclaw.json:
gateway.auth.token), pero la autenticación por contraseña también funciona si cambiaste gateway.auth.mode a password. Para volver a abrirlo más tarde: openclaw dashboard.
Dale al agente un espacio de trabajo (AGENTS)
OpenClaw lee instrucciones operativas y “memoria” desde su directorio de espacio de trabajo. De forma predeterminada, OpenClaw usa~/.openclaw/workspace como espacio de trabajo del agente, y lo creará automáticamente (junto con AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md iniciales) durante la configuración o la primera ejecución del agente. BOOTSTRAP.md solo se crea cuando el espacio de trabajo es completamente nuevo (no debería volver a aparecer después de eliminarlo). MEMORY.md es opcional (no se crea automáticamente); cuando está presente, se carga para las sesiones normales. Las sesiones de subagentes solo inyectan AGENTS.md y TOOLS.md.
Consejo: trata esta carpeta como la “memoria” de OpenClaw y conviértela en un repositorio git (idealmente privado) para que tus archivos AGENTS.md + de memoria tengan copia de seguridad. Si git está instalado, los espacios de trabajo nuevos se inicializan automáticamente.
agents.defaults.workspace (admite ~).
La configuración que lo convierte en “un asistente”
OpenClaw usa de forma predeterminada una buena configuración de asistente, pero normalmente querrás ajustar lo siguiente:- persona/instrucciones en
SOUL.md - valores predeterminados de thinking (si lo deseas)
- heartbeats (una vez que confíes en él)
Sesiones y memoria
- Archivos de sesión:
~/.openclaw/agents/<agentId>/sessions/{{SessionId}}.jsonl - Metadatos de sesión (uso de tokens, última ruta, etc.):
~/.openclaw/agents/<agentId>/sessions/sessions.json(heredado:~/.openclaw/sessions/sessions.json) /newo/resetinicia una sesión nueva para ese chat (configurable medianteresetTriggers). Si se envía solo, el agente responde con un saludo breve para confirmar el restablecimiento./compact [instructions]compacta el contexto de la sesión e informa el presupuesto de contexto restante.
Heartbeats (modo proactivo)
De forma predeterminada, OpenClaw ejecuta un heartbeat cada 30 minutos con el prompt:Read HEARTBEAT.md if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK.
Establece agents.defaults.heartbeat.every: "0m" para desactivarlo.
- Si
HEARTBEAT.mdexiste pero está efectivamente vacío (solo líneas en blanco y encabezados markdown como# Heading), OpenClaw omite la ejecución del heartbeat para ahorrar llamadas a la API. - Si falta el archivo, el heartbeat sigue ejecutándose y el modelo decide qué hacer.
- Si el agente responde con
HEARTBEAT_OK(opcionalmente con un relleno breve; consultaagents.defaults.heartbeat.ackMaxChars), OpenClaw suprime la entrega saliente para ese heartbeat. - De forma predeterminada, se permite la entrega de heartbeats a destinos de tipo DM
user:<id>. Estableceagents.defaults.heartbeat.directPolicy: "block"para suprimir la entrega a destinos directos mientras mantienes activas las ejecuciones del heartbeat. - Los heartbeats ejecutan turnos completos del agente — los intervalos más cortos consumen más tokens.
Entrada y salida de medios
Los adjuntos entrantes (imágenes/audio/documentos) pueden mostrarse a tu comando mediante plantillas:{{MediaPath}}(ruta local del archivo temporal){{MediaUrl}}(pseudo-URL){{Transcript}}(si la transcripción de audio está habilitada)
MEDIA:<path-or-url> en su propia línea (sin espacios). Ejemplo:
- Si
tools.fs.workspaceOnlyestrue, las rutas locales salientes deMEDIA:siguen restringidas a la raíz temporal de OpenClaw, la caché de medios, las rutas del espacio de trabajo del agente y los archivos generados en sandbox. - Si
tools.fs.workspaceOnlyesfalse,MEDIA:saliente puede usar archivos locales del host que el agente ya tiene permiso para leer. - Los envíos locales del host siguen permitiendo solo medios y tipos de documentos seguros (imágenes, audio, video, PDF y documentos de Office). Los archivos de texto sin formato y los archivos que parezcan secretos no se tratan como medios enviables.
Lista de comprobación operativa
/tmp/openclaw/ (predeterminado: openclaw-YYYY-MM-DD.log).
Siguientes pasos
- WebChat: WebChat
- Operaciones de Gateway: Manual operativo de Gateway
- Cron + activaciones: Trabajos cron
- Complemento de barra de menús de macOS: App de OpenClaw para macOS
- App de nodo iOS: App de iOS
- App de nodo Android: App de Android
- Estado de Windows: Windows (WSL2)
- Estado de Linux: App de Linux
- Seguridad: Seguridad