OpenClawSkills
GitHub
Inicio Rápido • 10 min de lectura

Configuración de Asistente Personal

Una guía completa para ejecutar OpenClaw como asistente personal (incluyendo consideraciones de seguridad).

OpenClaw es un gateway de WhatsApp + Telegram + Discord + iMessage para agentes **Pi**. Los plugins también permiten acceso a Mattermost. Esta guía es para la configuración de "Asistente Personal": usar un número de WhatsApp dedicado para actuar como un Agente siempre en línea.

Tutorial.step

⚠️ Seguridad Primero

Estás poniendo un Agente en una posición donde puede: - Ejecutar comandos en tu máquina (dependiendo de tu configuración de herramientas Pi) - Leer/escribir archivos en tu espacio de trabajo - Enviar mensajes salientes vía WhatsApp/Telegram/Discord/Mattermost (vía plugin) Recomendamos comenzar con una configuración conservadora:

- Siempre establece `channels.whatsapp.allowFrom` (no ejecutes un asistente "abierto al mundo" en tu máquina personal).

- Usa un número de WhatsApp separado para el asistente.

- El latido predeterminado es cada 30 minutos. Sugerimos desactivarlo hasta que confíes en la configuración: `agents.defaults.heartbeat.every: "0m"`.

Tutorial.step

Requisitos Previos

- Node **22+** - OpenClaw disponible en tu PATH del sistema (recomendado: instalación global) - Un segundo número de teléfono (SIM/eSIM/prepago todos funcionan) para el número del asistente

Bash
npm install -g openclaw@latest

Ejecutar desde el código fuente (modo dev):

Bash
git clone https://github.com/openclaw/openclaw.git
cd openclaw
pnpm install
pnpm ui:build # instala dependencias UI en la primera ejecución
pnpm build
pnpm link --global
Tutorial.step

Estrategia de Teléfono Dual (Recomendado)

Esta es la estructura que quieres:

Terminal
Tu Teléfono (Personal)             Teléfono del Asistente (Secundario)
┌─────────────────┐           ┌─────────────────┐
│  Tu WhatsApp    │  ──────▶  │ WhatsApp Asistente│
│  +1-555-TU       │  mensaje  │  +1-555-ASIST   │
└─────────────────┘           └────────┬────────┘
                                       │ Vincular vía código QR
                                       ▼
                              ┌─────────────────┐
                              │  Tu Mac          │
                              │  (openclaw)      │
                              │    Agente Pi     │
                              └─────────────────┘

Si vinculas tu cuenta personal de WhatsApp a OpenClaw, cada mensaje que te envían se convierte en "entrada del agente". Esto generalmente no es lo que quieres.

Tutorial.step

Inicio Rápido en 5 Minutos

1. Vincular WhatsApp Web (se mostrará QR; escanear con el teléfono del asistente):

Bash
openclaw channels login

2. Iniciar el Gateway (mantenerlo ejecutándose):

Bash
openclaw gateway --port 18789

3. Escribir una configuración mínima en `~/.openclaw/openclaw.json`:

Bash
'{'
  channels: '{' whatsapp: '{' allowFrom: ["+15555550123"] '}' '}',
'}'

Ahora, envía un mensaje al número del asistente desde tu teléfono en la lista permitida. Una vez completada la incorporación, abrimos automáticamente el enlace del dashboard con un token e imprimimos la URL tokenizada. Para abrirlo después: `openclaw dashboard`.

Tutorial.step

Dar al Agente un Espacio de Trabajo (AGENTS)

OpenClaw lee instrucciones operativas y "recuerdos" desde su directorio de espacio de trabajo. Por defecto, OpenClaw usa `~/.openclaw/workspace` como espacio de trabajo del agente y lo crea automáticamente al configurar/ejecutar por primera vez (junto con los archivos iniciales `AGENTS.md`, `SOUL.md`, `TOOLS.md`, `IDENTITY.md`, `USER.md`). `BOOTSTRAP.md` solo se crea cuando el espacio de trabajo es nuevo (y no debería reaparecer después de eliminarlo).

Recomendación: Trata esta carpeta como la "memoria" de OpenClaw y respáldala convirtiéndola en un repositorio git (repo privado preferido) para `AGENTS.md` y archivos de memoria. Si git está instalado, un nuevo espacio de trabajo se inicializará automáticamente como repo.

Bash
openclaw setup

Guía completa de estructura del espacio de trabajo y respaldo: Espacio de trabajo del agente

Flujo de trabajo de memoria: Memoria

Opcional: Establece una ruta diferente para el espacio de trabajo vía `agents.defaults.workspace` (soporta `~`):

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

Si ya estás distribuyendo tus propios archivos de espacio de trabajo vía repo, puedes desactivar la creación de archivos bootstrap completamente:

Json5
{
  agent: {
    skipBootstrap: true,
  },
}
Tutorial.step

Configuración para una verdadera "Sensación de Asistente"

OpenClaw viene con valores predeterminados decentes para asistente, pero generalmente querrás ajustar:

- Persona / Instrucciones en `SOUL.md`

- Valores predeterminados de pensamiento (si es necesario)

- Latido (habilitar después de confiar en él)

Ejemplo:

Json5
{
  logging: { level: "info" },
  agent: {
    model: "anthropic/claude-opus-4-5",
    workspace: "~/.openclaw/workspace",
    thinkingDefault: "high",
    timeoutSeconds: 1800,
    // Comienza con 0; habilita 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,
    },
  },
}
Tutorial.step

Sesiones y Memoria

- Archivos de sesión: `<code1>~/.openclaw/agents/<agentId>/sessions/{'{SessionId}'}.jsonl</code1>`

- Metadatos de sesión (uso de tokens, última ruta, etc.): `<code1>~/.openclaw/agents/<agentId>/sessions/sessions.json</code1>` (ruta antigua: `<code2>~/.openclaw/sessions/sessions.json</code2>` )

- `/new` o `/reset` inicia una nueva sesión para ese chat (configurado vía `resetTriggers`). Si se envía como comando independiente, el Agente responde con un mensaje corto de confirmación.

- `/compact [instrucciones]` compacta el contexto de la sesión e informa el presupuesto de contexto restante.

Tutorial.step

Latido (Modo Proactivo)

Por defecto, OpenClaw ejecuta un latido cada 30 minutos con el prompt:

`Lee HEARTBEAT.md si existe (contexto del espacio de trabajo). Síguelo estrictamente. No infieras ni repitas tareas antiguas de chats anteriores. Si nada necesita atención, responde HEARTBEAT_OK.`

Establecer `agents.defaults.heartbeat.every: "0m"` desactiva los latidos.

- Si `HEARTBEAT.md` existe pero está esencialmente vacío (solo líneas en blanco o un título como `# Encabezado`), OpenClaw omite el latido para ahorrar llamadas API.

- Si el archivo falta, el latido aún se ejecuta, dejando que el modelo decida qué hacer.

- Si el Agente responde `HEARTBEAT_OK` (puede contener relleno menor; ver `agents.defaults.heartbeat.ackMaxChars`), OpenClaw suprime el envío saliente de ese latido.

- Los latidos son turnos completos del agente; intervalos más cortos consumen más tokens.

Json5
{
  agent: {
    heartbeat: { every: "30m" },
  },
}
Tutorial.step

Medios de Entrada y Salida

Los adjuntos entrantes (imágenes/audio/docs) se proporcionan a tus comandos mediante parámetros de plantilla:

- `<code1>'{'{MediaPath}'}'</code1>` (ruta de archivo temporal local)

- `<code2>'{'{MediaUrl}'}'</code2>` (pseudo-URL)

- `<code3>'{'{Transcript}'}'</code3>` (si la transcripción de audio está habilitada)

Adjuntos salientes del Agente: Escribe `<code1>MEDIA:<ruta-o-url>'</code1>` (sin espacios) en una línea separada. Por ejemplo:

Terminal
Aquí está la captura de pantalla.
MEDIA:https://example.com/screenshot.png

OpenClaw analiza estas líneas y las envía como medios junto con el texto.

Tutorial.step

Lista de Verificación de Operaciones

Bash
openclaw status          # Estado local (creds, sesiones, eventos en cola)
openclaw status --all    # Diagnósticos completos (solo lectura, fácil de pegar/compartir)
openclaw status --deep   # Añade sondeos de salud del gateway (Telegram + Discord)
openclaw health --json   # Instantánea de salud del Gateway (WS)

Los registros predeterminan a `/tmp/openclaw/` (nombres de archivo como `openclaw-YYYY-MM-DD.log`).

Tutorial.step

Siguientes Pasos