Ir al contenido

Crea tu asistente personal con OpenClaw en 5 minutos

¿Alguna vez has sentido que tus mensajes se acumulan y que te vendría bien un clon que gestione tus tareas por ti? Configurar un asistente personal que realmente entienda tu contexto y pueda ejecutar acciones no tiene por qué ser un dolor de cabeza. OpenClaw es un Gateway auto-hospedado que conecta WhatsApp, Telegram, Discord, iMessage 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.

Estás poniendo a un agente en una posición para:

  • Ejecutar comandos en tu máquina (dependiendo de tu tool policy)
  • Leer/escribir archivos en tu workspace
  • Enviar mensajes a través de WhatsApp/Telegram/Discord/Mattermost (plugin)
  • Acceder a tu entorno local de ejecución

Empieza de forma conservadora:

  • Configura siempre channels.whatsapp.allowFrom (nunca lo dejes abierto al mundo en tu Mac personal).
  • Usa un número de WhatsApp dedicado para el asistente.
  • Los heartbeats ahora vienen por defecto cada 30 minutos. Desactívalos hasta que confíes en la configuración estableciendo agents.defaults.heartbeat.every: "0m".
  • OpenClaw instalado y configurado — mira Getting Started 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)»

Lo ideal es 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 convertirá en una “entrada del agente”. Rara vez querrás que eso suceda.

  1. Vincula WhatsApp Web (verás un QR; escanéalo con el teléfono del asistente):
Ventana de terminal
openclaw channels login
  1. Inicia el Gateway (déjalo ejecutándose):
Ventana de terminal
openclaw gateway --port 18789
  1. Pon una configuración mínima en ~/.openclaw/openclaw.json:
{
channels: { whatsapp: { allowFrom: ["+15555550123"] } },
}

Ahora envía un mensaje al número del asistente desde tu teléfono permitido.

Cuando termine el onboarding, abriremos automáticamente el dashboard y mostraremos un enlace limpio (sin tokens). Si pide autenticación, pega el token de gateway.auth.token en la configuración de la Control UI. Para volver a abrirlo más tarde: openclaw dashboard.

Dale un espacio de trabajo al agente (AGENTS)

Sección titulada «Dale un espacio de trabajo al agente (AGENTS)»

OpenClaw lee las instrucciones de operación y la “memoria” desde su directorio de workspace.

Por defecto, OpenClaw usa ~/.openclaw/workspace como el workspace del agente, y lo creará (junto con los archivos iniciales AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md) automáticamente al configurar o ejecutar el agente por primera vez. BOOTSTRAP.md solo se crea cuando el workspace es totalmente nuevo (no debería reaparecer tras borrarlo). MEMORY.md es opcional; si existe, se carga para las sesiones normales. Las sesiones de subagentes solo inyectan AGENTS.md y TOOLS.md.

Un consejo: trata esta carpeta como la “memoria” de OpenClaw y conviértela en un repo de git (idealmente privado) para que tus archivos AGENTS.md y de memoria tengan respaldo. Si git está instalado, los nuevos workspaces se inicializan automáticamente.

Ventana de terminal
openclaw setup

Guía completa de estructura de workspace y respaldos: Agent workspace Flujo de trabajo de memoria: Memory

Opcional: elige un workspace diferente con agents.defaults.workspace (soporta ~).

{
agent: {
workspace: "~/.openclaw/workspace",
},
}

Si ya manejas tus propios archivos de workspace desde un repo, puedes desactivar la creación de archivos bootstrap por completo:

{
agent: {
skipBootstrap: true,
},
}

La configuración que lo convierte en un “asistente”

Sección titulada «La configuración que lo convierte en un “asistente”»

OpenClaw viene por defecto con una buena configuración de asistente, pero normalmente querrás ajustar:

  • Persona/instrucciones en SOUL.md
  • Thinking defaults (si lo deseas)
  • Heartbeats (una vez que confíes en el sistema)

Ejemplo:

{
logging: { level: "info" },
agent: {
model: "anthropic/claude-opus-4-6",
workspace: "~/.openclaw/workspace",
thinkingDefault: "high",
timeoutSeconds: 1800,
// Empezar con 0; activar después.
heartbeat: { every: "0m" },
},
channels: {
whatsapp: {
allowFrom: ["+15555550123"],
groups: {
"*": { requireMention: true },
},
},
},
routing: {
groupChat: {
mentionPatterns: ["@openclaw", "openclaw"],
},
},
session: {
scope: "per-sender",
resetTriggers: ["/new", "/reset"],
reset: {
mode: "daily",
atHour: 4,
idleMinutes: 10080,
},
},
}
  • 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 (antiguo: ~/.openclaw/sessions/sessions.json)
  • /new o /reset inicia una sesión fresca para ese chat (configurable mediante resetTriggers). Si se envía solo, el agente responde con un saludo corto para confirmar el reinicio.
  • /compact [instrucciones] compacta el contexto de la sesión e informa sobre el presupuesto de contexto restante.

Por defecto, 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.md existe pero está vacío (solo líneas en blanco o encabezados markdown como # Heading), OpenClaw omite la ejecución del heartbeat para ahorrar llamadas a la API.
  • Si el archivo no existe, el heartbeat se ejecuta igual y el modelo decide qué hacer.
  • Si el agente responde con HEARTBEAT_OK (opcionalmente con un relleno corto; ver agents.defaults.heartbeat.ackMaxChars), OpenClaw suprime el envío del mensaje para ese heartbeat.
  • Por defecto, se permite el envío de heartbeats a objetivos tipo DM user:<id>. Establece agents.defaults.heartbeat.directPolicy: "block" para suprimir el envío directo manteniendo activas las ejecuciones de heartbeat.
  • Los heartbeats ejecutan turnos completos del agente; intervalos más cortos consumen más tokens.
{
agent: {
heartbeat: { every: "30m" },
},
}

Los archivos adjuntos entrantes (imágenes/audio/documentos) pueden exponerse a tu comando mediante plantillas:

  • {{MediaPath}} (ruta local del archivo temporal)
  • {{MediaUrl}} (pseudo-URL)
  • {{Transcript}} (si la transcripción de audio está activa)

Archivos adjuntos salientes del agente: incluye MEDIA:<path-or-url> en su propia línea (sin espacios). Ejemplo:

Here’s the screenshot.
MEDIA:https://example.com/screenshot.png

OpenClaw extrae estos elementos y los envía como archivos multimedia junto al texto.

El comportamiento de las rutas locales sigue el mismo modelo de confianza de lectura de archivos que el agente:

  • Si tools.fs.workspaceOnly es true, las rutas locales de MEDIA: salientes se restringen a la raíz temporal de OpenClaw, el caché de medios, rutas del workspace del agente y archivos generados en el sandbox.
  • Si tools.fs.workspaceOnly es false, MEDIA: puede usar archivos locales del host que el agente ya tenga permiso para leer.
  • Los envíos locales del host solo permiten medios y tipos de documentos seguros (imágenes, audio, video, PDF y documentos de Office). El texto plano y archivos tipo secreto no se tratan como medios enviables.

Esto significa que las imágenes o archivos generados fuera del workspace ahora pueden enviarse cuando tu política de sistema de archivos ya permite esas lecturas, sin abrir el riesgo de filtración de archivos de texto arbitrarios del host.

Ventana de terminal
openclaw status # local status (creds, sessions, queued events)
openclaw status --all # full diagnosis (read-only, pasteable)
openclaw status --deep # adds gateway health probes (Telegram + Discord)
openclaw health --json # gateway health snapshot (WS)

Los logs se guardan en /tmp/openclaw/ (por defecto: openclaw-YYYY-MM-DD.log).

AI Setup Assistant

OpenClaw

OpenClaw Expert

Sigues atascado?

Si esta pagina no resolvio tu caso, pregunta a OpenClaw Expert para pasos concretos.