Configuración del asistente personal
OpenClaw es una puerta de enlace autoalojada 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 primero
Sección titulada «⚠️ Seguridad primero»Estás poniendo a un agente en posición de:
- ejecutar comandos en tu máquina (dependiendo de 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 incluidos
Empieza con precaución:
- Establezca siempre
channels.whatsapp.allowFrom(nunca ejuste abierto al mundo en su Mac personal). - Utiliza un número de WhatsApp dedicado para el asistente.
- Los latidos ahora se predeterminan a cada 30 minutos. Desactívelos hasta que confíe en la configuración estableciendo
agents.defaults.heartbeat.every: "0m".
Requisitos previos
Sección titulada «Requisitos previos»- OpenClaw instalado y configurado - consulta Cómo empezar si aún 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)
Sección titulada «La configuración de dos teléfonos (recomendada)»Quieres esto:
flowchart TB A["<b>Your Phone (personal)<br></b><br>Your WhatsApp<br>+1-555-YOU"] -- message --> B["<b>Second Phone (assistant)<br></b><br>Assistant WA<br>+1-555-ASSIST"] B -- linked via QR --> C["<b>Your Mac (openclaw)<br></b><br>AI agent"]Si vinculas tu WhatsApp personal a OpenClaw, cada mensaje que recibas se convierte en “entrada del agente”. Eso casi nunca es lo que quieres.
Inicio rápido de 5 minutos
Sección titulada «Inicio rápido de 5 minutos»- Emparejar WhatsApp Web (muestra un código QR; escanea con el teléfono del asistente):
openclaw channels login- Iniciar la puerta de enlace (déjala en ejecución):
openclaw gateway --port 18789- Coloque una configuración mínima en
~/.openclaw/openclaw.json:
{ gateway: { mode: "local" }, channels: { whatsapp: { allowFrom: ["+15555550123"] } },}Ahora envía un mensaje al número del asistente desde tu teléfono autorizado.
Cuando finalice la integración, OpenClaw abre automáticamente el panel e imprime un enlace limpio (sin tokenizar). Si el panel solicita autenticación, pegue el secreto compartido configurado en la configuración de la interfaz de usuario de Control. La integración utiliza un token de forma predeterminada (gateway.auth.token), pero la autenticación por contraseña también funciona si cambió gateway.auth.mode a password. Para volver a abrir más tarde: openclaw dashboard.
Dar al agente un espacio de trabajo (AGENTS)
Sección titulada «Dar al agente un espacio de trabajo (AGENTS)»OpenClaw lee las instrucciones de operación y la “memoria” de su directorio de espacio de trabajo.
De forma predeterminada, OpenClaw usa ~/.openclaw/workspace como espacio de trabajo del agente y lo creará (junto con el AGENTS.md inicial, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md) automáticamente en la configuración/primera ejecución del agente. BOOTSTRAP.md solo se crea cuando el espacio de trabajo es totalmente nuevo (no debería volver después de eliminarlo). MEMORY.md es opcional (no se crea automáticamente); cuando está presente, se carga para sesiones normales. Las sesiones de subagente solo inyectan AGENTS.md y TOOLS.md.
openclaw setupGuía completa del diseño del espacio de trabajo y copias de seguridad: Espacio de trabajo del agente Flujo de trabajo de memoria: Memoria
Opcional: elija un espacio de trabajo diferente con agents.defaults.workspace (soporta ~).
{ agents: { defaults: { workspace: "~/.openclaw/workspace", }, },}Si ya envía sus propios archivos de espacio de trabajo desde un repositorio, puede deshabilitar por completo la creación de archivos de arranque:
{ agents: { defaults: { skipBootstrap: true, }, },}La configuración que lo convierte en “un asistente”
Sección titulada «La configuración que lo convierte en “un asistente”»OpenClaw tiene una configuración de asistente predeterminada bastante buena, pero generalmente querrás ajustar:
- persona/instrucciones en
SOUL.md - valores predeterminados de pensamiento (si se desea)
- latidos (heartbeats) (una vez que confíes en él)
Ejemplo:
{ logging: { level: "info" }, agents: { defaults: { model: { primary: "anthropic/claude-opus-4-6" }, workspace: "~/.openclaw/workspace", thinkingDefault: "high", timeoutSeconds: 1800, // Start with 0; enable later. heartbeat: { every: "0m" }, }, list: [ { id: "main", default: true, groupChat: { mentionPatterns: ["@openclaw", "openclaw"], }, }, ], }, channels: { whatsapp: { allowFrom: ["+15555550123"], groups: { "*": { requireMention: true }, }, }, }, session: { scope: "per-sender", resetTriggers: ["/new", "/reset"], reset: { mode: "daily", atHour: 4, idleMinutes: 10080, }, },}Sesiones y memoria
Sección titulada «Sesiones y memoria»- Archivos de sesión:
~/.openclaw/agents/<agentId>/sessions/{{SessionId}}.jsonl - Metadatos de la sesión (uso de tokens, última ruta, etc.):
~/.openclaw/agents/<agentId>/sessions/sessions.json(legado:~/.openclaw/sessions/sessions.json) /newo/resetinicia una sesión nueva para ese chat (configurable medianteresetTriggers). Si se envía solo, OpenClaw confirma el restablecimiento sin invocar el modelo./compact [instructions]compacta el contexto de la sesión e informa el presupuesto de contexto restante.
Latidos (modo proactivo)
Sección titulada «Latidos (modo proactivo)»Por defecto, OpenClaw ejecuta un latido 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.
Establezca agents.defaults.heartbeat.every: "0m" para desactivar.
- Si
HEARTBEAT.mdexiste pero está efectivamente vacío (solo líneas en blanco y encabezados de markdown como# Heading), OpenClaw omite la ejecución del latido para ahorrar llamadas a la API. - Si falta el archivo, el latido aún se ejecuta y el modelo decide qué hacer.
- Si el agente responde con
HEARTBEAT_OK(opcionalmente con un relleno corto; veragents.defaults.heartbeat.ackMaxChars), OpenClaw suprime el envío saliente para ese latido. - Por defecto, se permite la entrega de latidos a objetivos
user:<id>de tipo DM. Establezcaagents.defaults.heartbeat.directPolicy: "block"para suprimir la entrega a objetivos directos manteniendo las ejecuciones de latido activas. - Los latidos ejecutan turnos completos del agente: intervalos más cortos consumen más tokens.
{ agents: { defaults: { heartbeat: { every: "30m" }, }, },}Medios de entrada y salida
Sección titulada «Medios de entrada y salida»Los archivos adjuntos entrantes (imágenes/audio/documentos) pueden mostrarse en su comando a través de plantillas:
{{MediaPath}}(ruta de archivo temporal local){{MediaUrl}}(seudo-URL){{Transcript}}(si la transcripción de audio está habilitada)
Los archivos adjuntos salientes del agente utilizan campos de medios estructurados en la herramienta de mensaje o en la carga útil de respuesta, como media, mediaUrl, mediaUrls, path, o filePath. Argumentos de ejemplo de la herramienta de mensaje:
{ "message": "Here's the screenshot.", "mediaUrl": "https://example.com/screenshot.png"}OpenClaw envía medios estructurados junto con el texto. Las respuestas finales del asistente heredadas aún pueden normalizarse por compatibilidad, pero el resultado de las herramientas, el resultado del navegador, los bloques de streaming y las acciones de mensaje no analizan el texto como comandos de adjuntos.
El comportamiento de la ruta local sigue el mismo modelo de confianza de lectura de archivos que el agente:
- Si
tools.fs.workspaceOnlyestrue, las rutas locales de medios salientes se mantienen restringidas a la raíz temporal de OpenClaw, la caché de medios, las rutas del espacio de trabajo del agente y los archivos generados por el sandbox. - Si
tools.fs.workspaceOnlyesfalse, los medios locales salientes pueden usar archivos locales del host que el agente ya tiene permiso para leer. - Las rutas locales pueden ser absolutas, relativas al espacio de trabajo o relativas al directorio de inicio con
~/. - Los envíos locales al host todavía solo permiten tipos de medios y documentos seguros (imágenes, audio, video, PDF, documentos de Office y documentos de texto validados como Markdown/MD, TXT, JSON, YAML y YML). Esto es una extensión del límite de confianza de lectura del host existente, no un escáner de secretos: si el agente puede leer un archivo
secret.txtoconfig.jsonlocal del host, puede adjuntar ese archivo cuando la extensión y la validación de contenido coincidan.
Esto significa que las imágenes/archivos generados fuera del espacio de trabajo ahora se pueden enviar cuando tu política de fs ya permite esas lecturas, mientras que las extensiones de texto locales arbitrarias del host siguen bloqueadas. Mantén los archivos confidenciales fuera del sistema de archivos legible por el agente, o mantén tools.fs.workspaceOnly=true para envíos de rutas locales más estrictos.
Lista de verificación de operaciones
Sección titulada «Lista de verificación de operaciones»openclaw status # local status (creds, sessions, queued events)openclaw status --all # full diagnosis (read-only, pasteable)openclaw status --deep # asks the gateway for a live health probe with channel probes when supportedopenclaw health --json # gateway health snapshot (WS; default can return a fresh cached snapshot)Los registros residen en /tmp/openclaw/ (predeterminado: openclaw-YYYY-MM-DD.log).
Próximos pasos
Sección titulada «Próximos pasos»- WebChat: WebChat
- Operaciones de la puerta de enlace: Manual de la puerta de enlace
- Cron + despertares: Trabajos Cron
- Compañero de la barra de menús de macOS: Aplicación OpenClaw para macOS
- Aplicación de nodo iOS: Aplicación iOS
- Aplicación de nodo Android: Aplicación Android
- Estado de Windows: Windows (WSL2)
- Estado de Linux: aplicación de Linux
- Seguridad: Seguridad