Image for post OpenClaw: crea un skill de auditoría con memoria persistente

OpenClaw: crea un skill de auditoría con memoria persistente


TL;DR: Los deployments de OpenClaw acumulan complejidad rápido: providers sin usar, cron jobs duplicados, bootstrap files que crecen hasta los 5.000 tokens sin que nadie los revise. Un skill de auditoría personalizado inspecciona todo eso automáticamente y guarda el estado del deployment en memoria persistente, para que no tengas que repetir el mismo debugging cada semana. Este artículo explica cómo construirlo desde cero con código funcional.

El problema de gestionar un deployment de OpenClaw real

Cuando llevas un mes usando OpenClaw en producción, el setup inicial ya no se parece al que configuraste el primer día. Tienes ocho cron jobs donde pusiste tres, dos providers activos que llevan semanas sin recibir ninguna petición, y un SOUL.md que ha crecido hasta los 4.000 tokens sin que nadie lo revisara. El agente sigue funcionando, pero está procesando contexto que ya no aporta nada útil.

El síntoma más común: abres una sesión nueva y el agente tarda en entender el estado actual del sistema. No porque sea lento, sino porque está cargando configuración obsoleta y memoria mal estructurada. El coste acumulado de eso no es trivial, especialmente en setups que corren 24/7 en un VPS o en Cloud Run.

La solución no es revisar el deployment a mano cada semana. Es crear un skill que lo haga por ti, y que recuerde lo que encontró la última vez.

¿Qué es exactamente un skill de OpenClaw?

Un skill de OpenClaw es un directorio que contiene un archivo skill.md con frontmatter YAML e instrucciones en Markdown. El agente invoca ese skill como una capacidad reutilizable: lo lee, sigue las instrucciones, y ejecuta las acciones definidas usando las herramientas disponibles (shell, sistema de archivos, APIs).

La estructura mínima es esta:

~/.openclaw/skills/deployment-audit/
├── skill.md          # instrucciones principales
└── audit_report.md   # plantilla de informe (opcional)

El frontmatter define los metadatos que OpenClaw usa para indexar el skill en tu instalación local o en ClawHub, donde hay más de 2.800 skills publicados a febrero 2026:

---
name: deployment-audit
description: Audita providers, cron jobs, bootstrap file y guarda el estado en memoria
version: 1.2.0
author: local
triggers:
  - "audita el deployment"
  - "revisa la configuracion"
  - "audit"
---

A partir del frontmatter, el cuerpo del archivo son instrucciones en lenguaje natural que el agente interpreta y ejecuta. Aquí reside la diferencia con un script bash: el agente razona sobre lo que encuentra y adapta el informe al estado actual del sistema.

Construyendo el skill de auditoría paso a paso

El skill que vamos a construir cubre cuatro áreas concretas:

  1. Providers activos, sin uso, y mal configurados
  2. Cron jobs: duplicados, schedules agresivos, jobs que nunca se han ejecutado
  3. Bootstrap file: tamaño estimado en tokens, secciones obsoletas, credenciales expuestas por error
  4. Snapshot del estado del deployment guardado en memoria persistente

Paso 1: crear el directorio del skill

mkdir -p ~/.openclaw/skills/deployment-audit
touch ~/.openclaw/skills/deployment-audit/skill.md

Paso 2: el cuerpo completo del skill.md

Las instrucciones van en inglés porque es el idioma con el que los modelos ejecutan con mayor consistencia. Los comentarios son orientativos:

---
name: deployment-audit
description: Audits providers, cron jobs, bootstrap file size, and saves state to memory
version: 1.2.0
author: local
triggers:
  - "audita el deployment"
  - "revisa configuracion"
  - "deployment audit"
  - "audit"
---

# Deployment Audit Skill

## Purpose
Perform a structured audit of this OpenClaw deployment and save findings
to persistent memory. Do not ask for confirmation before each step.
Execute all phases sequentially.

## Phase 1: Provider Audit
Run: `openclaw providers list --verbose`
- Flag any provider where last_used is older than 30 days
- Flag any provider with no api_key configured
- Flag duplicate providers (same model, different names)

Report: list of active, unused, and misconfigured providers.

## Phase 2: Cron Job Audit
Run: `openclaw cron list --json`
- Count total jobs
- Detect jobs with identical --system-event payloads (duplicates)
- Detect jobs scheduled more frequently than every 15 minutes
- List jobs with run_count: 0 created more than 7 days ago

Report: total jobs, duplicates found, aggressive schedulers, dead jobs.

## Phase 3: Bootstrap File Analysis
Read the main bootstrap file (check ~/.openclaw/SOUL.md first,
then ~/.openclaw/bootstrap.md).
- Estimate total tokens (characters / 4)
- List sections longer than 500 tokens
- Identify sections referencing providers not found in Phase 1 active list
- Flag potential credentials matching patterns: sk-[A-Za-z0-9]{20,} or AKIA

Report: estimated token count, bloated sections, stale refs, credential warnings.

## Phase 4: Memory Snapshot
Write audit results to: ~/.openclaw/memory/deployment-state.md

Format:
```
# Deployment State - {ISO_DATE}

## Providers
- Active: {list}
- Unused (>30d): {list}
- Misconfigured: {list}

## Cron Jobs
- Total: {count}
- Issues: {list}

## Bootstrap
- Estimated tokens: {count}
- Action items: {list}

## Audit timestamp: {ISO_DATETIME}
```

If the file already exists, append a new entry below the last one.
Do not overwrite previous entries.

## Output
Present a summary table after all phases complete:

| Area       | Status         | Issues found |
|------------|----------------|--------------|
| Providers  | OK/WARN/ERROR  | count        |
| Cron Jobs  | OK/WARN/ERROR  | count        |
| Bootstrap  | OK/WARN/ERROR  | count        |
| Memory     | Saved          | path         |

Paso 3: verificar que el skill está disponible

# Listar skills instalados localmente
openclaw skill:list

# Verificar que el nuevo skill aparece
openclaw skill:list | grep deployment-audit

# Ejecutar directamente sin esperar a un trigger conversacional
openclaw skill run deployment-audit

Una vez instalado, puedes invocarlo desde cualquier sesión del agente con mensajes como "audita el deployment" o "audit", que coinciden con los triggers del frontmatter.

Memoria persistente que sobrevive a reinicios

El sistema de memoria por defecto de OpenClaw escribe en archivos Markdown en disco, pero no garantiza que recupere esa información en sesiones futuras. El modelo decide qué cargar al contexto y qué no, basándose en heurísticas. Si el archivo de estado del deployment no está referenciado en el bootstrap, el agente puede ignorarlo por completo la siguiente vez que arranque.

Hay dos formas de resolver esto sin sobrecomplicar el setup.

Opción A: referenciar el archivo desde el bootstrap (solución mínima)

Añades una directiva al SOUL.md para que el agente sepa que ese archivo existe y debe consultarlo antes de cada auditoría:

# SOUL.md (fragmento)

## Deployment State
Before running any audit, read ~/.openclaw/memory/deployment-state.md
to load the last known state. Compare current findings against
previous state and highlight what has changed since the last audit.

El coste en tokens es mínimo si el archivo de estado está bien estructurado: menos de 300 tokens por entrada de auditoría, lo que significa que puedes mantener historial de varias semanas sin impacto notable en el contexto.

Opción B: plugin Mem0 para persistencia garantizada

Si tienes un setup con múltiples dispositivos o sesiones paralelas, el plugin oficial de Mem0 garantiza la persistencia mediante un vector store externo que funciona independientemente del ciclo de vida del agente:

openclaw plugins install @mem0/openclaw-mem0
{
  "plugins": {
    "entries": {
      "@mem0/openclaw-mem0": {
        "enabled": true,
        "config": {
          "mem0Url": "http://localhost:8080",
          "apiKey": "${MEM0_API_KEY}",
          "userId": "deployment-audit",
          "autoRecall": true,
          "autoCapture": true
        }
      }
    }
  }
}

Con autoCapture: true, cualquier cosa que el skill escriba a memoria queda indexada en el vector store y se recupera automáticamente en sesiones futuras. No necesitas cambiar nada en el skill.md.

Automatizar la auditoría con un cron job semanal

Un skill que tienes que ejecutar manualmente deja de usarse en dos semanas. El paso lógico es programarlo:

openclaw cron add \
  --name "weekly-deployment-audit" \
  --schedule "0 9 * * 1" \
  --session isolated \
  --system-event "Run the skill named 'deployment-audit' and deliver the summary." \
  --wake now

El flag --session isolated ejecuta el audit en una sesión separada, sin contaminar el contexto de tu sesión de trabajo principal. Si tienes Telegram configurado como canal de entrega, el resumen llega ahí cada lunes a las 9:00 sin intervención manual.

En producción

Un skill que funciona en local no siempre funciona igual en un VPS o en Cloud Run. Estas son las diferencias que importan antes de desplegarlo en producción.

Rutas de archivos: el skill asume ~/.openclaw/, que en un contenedor Docker puede ser /root/.openclaw/ o una ruta montada. Si el agente no encuentra los archivos, no fallará con un error claro, simplemente reportará que no hay nada que auditar. Fija las rutas como variables de entorno del contenedor en lugar de asumir el home del usuario.

Umbral de tokens del bootstrap: el propio skill detecta cuándo el SOUL.md crece demasiado, pero el momento práctico para actuar es a los 4.000 tokens, no cuando ya hay degradación de rendimiento visible. Por encima de esa cifra, cada sesión empieza con un coste base que se acumula rápido en setups 24/7.

Permisos de shell: el skill ejecuta comandos openclaw CLI. Si el agente corre como usuario sin privilegios (lo recomendable), asegúrate de que ese usuario tiene acceso a la configuración de OpenClaw. No ejecutes el agente como root.

Coste por ejecución: una auditoría completa con Claude Sonnet consume aproximadamente 3.000-5.000 tokens de entrada y entre 800-1.500 de salida, dependiendo del tamaño del bootstrap. A precios de febrero 2026, eso es menos de 0,05 € por ejecución semanal. No es un factor crítico, pero tener el baseline te permite detectar si algo falla: un audit que de repente consume 20.000 tokens tiene un problema de configuración, no de coste.

Setup multi-dispositivo: si usas OpenClaw en Mac y en un VPS simultáneamente, el archivo deployment-state.md no se sincroniza solo entre máquinas. Para mantener consistencia, usa el plugin Mem0 con servidor externo como fuente de verdad, o monta el directorio de memoria en almacenamiento compartido (un bucket de GCS con gcsfuse, por ejemplo).

Errores comunes al crear skills de auditoría

Error: el agente ignora las instrucciones del skill y responde conversacionalmente.
Causa: el trigger del skill no coincide con el mensaje que estás usando para invocarlo.
Solución: añade más variantes al array triggers del frontmatter, o invoca el skill directamente con openclaw skill run deployment-audit.

Error: la Fase 4 sobreescribe entradas anteriores en lugar de acumular historial.
Causa: las instrucciones usan "write to" y el modelo interpreta eso como sobreescritura completa.
Solución: usa el texto exacto "append a new entry below the last one. Do not overwrite previous entries." como aparece en el skill.md de este artículo.

Error: el skill detecta falsos positivos de credenciales en el SOUL.md.
Causa: el patrón sk- puede coincidir con palabras como "skill-" o "stack-" en el propio texto del bootstrap.
Solución: afina el patrón a sk-[A-Za-z0-9]{20,} o acepta que habrá falsos positivos y revisa los avisos de credenciales manualmente antes de actuar.

Error: el cron job semanal ejecuta una sesión vacía sin invocar el skill.
Causa: el mensaje de --system-event no es suficientemente explícito para que el agente entienda qué skill debe ejecutar.
Solución: cambia el mensaje a "Run the skill named 'deployment-audit' and deliver the summary results."

Preguntas frecuentes

¿Puedo usar este skill con cualquier provider (GPT, Gemini, Claude)?

Sí. Las instrucciones del skill.md son lenguaje natural y no dependen del modelo subyacente. Los modelos con ventana de contexto menor de 32K tokens pueden truncar el análisis de la Fase 3 si el bootstrap file es especialmente grande. En ese caso, el skill completará las fases 1 y 2 correctamente pero el análisis del bootstrap quedará incompleto.

¿Qué diferencia hay entre un skill de auditoría y un cron job de monitorización?

Un cron job de monitorización ejecuta una tarea predefinida y reporta datos fijos. Un skill de auditoría razona sobre lo que encuentra y adapta el informe al estado actual: si el número de cron jobs pasó de 5 a 12 desde la última semana, el skill lo detecta como anomalía y lo contextualiza con el historial guardado. Un cron job simplemente reportaría "12 jobs activos" sin ese contexto.

¿Es seguro darle al skill acceso al bootstrap file completo?

Depende de qué haya en ese archivo. Si contiene instrucciones sobre infraestructura interna o accesos, cualquier skill que ejecutes tiene visibilidad sobre ese contexto. A febrero 2026, el 36% de los skills publicados en ClawHub tienen vulnerabilidades reportadas según análisis de Cisco y Repello AI. La regla práctica: instala solo skills que hayas creado tú o revisado línea a línea antes de ejecutar.

Conclusión

Un skill de auditoría para OpenClaw es uno de esos proyectos que parecen secundarios hasta que llevas dos meses con el agente en producción y descubres que el deployment acumuló el doble de configuración de la que necesita. El skill.md que hemos construido aquí cubre las tres áreas que más afectan al rendimiento y al coste, y mantiene un historial que hace que cada auditoría sea más útil que la anterior.

La memoria persistente es lo que transforma esto de "script que ejecuto de vez en cuando" a "agente que entiende cómo ha evolucionado mi setup". Sin ella, cada auditoría empieza desde cero. Con ella, puedes ver si los problemas se acumulan o se resuelven a lo largo del tiempo.

Si ya tienes OpenClaw corriendo, el primer paso es el más directo: crea el directorio del skill, copia el skill.md, y ejecuta "audit" en tu próxima sesión. Lo que encuentres probablemente sea más interesante de lo que esperas.

¿Has construido skills personalizados para tu deployment? Cuéntame qué automatizaste primero en los comentarios, o encuéntrame en Twitter @sergiomarquezp_. El próximo artículo explora cómo orquestar sub-agentes paralelos en OpenClaw para monitorización en tiempo real de múltiples fuentes de datos.