¿Qué hace Habilidad de Auto-mejora?
Registra aprendizajes y errores en archivos markdown para la mejora continua. Los agentes de codificación pueden procesarlos posteriormente para crear correcciones, y los aprendizajes importantes se promueven a la memoria del proyecto.
Referencia Rápida
| Situación | Acción |
|---|---|
| Un comando/operación falla | Registrar en .learnings/ERRORS.md |
| El usuario te corrige | Registrar en .learnings/LEARNINGS.md con categoría correction |
| El usuario quiere una funcionalidad que falta | Registrar en .learnings/FEATURE_REQUESTS.md |
| La API/herramienta externa falla | Registrar en .learnings/ERRORS.md con detalles de integración |
| El conocimiento estaba desactualizado | Registrar en .learnings/LEARNINGS.md con categoría knowledge_gap |
| Se encontró un mejor enfoque | Registrar en .learnings/LEARNINGS.md con categoría best_practice |
| Simplificar/Endurecer patrones recurrentes | Registrar/actualizar .learnings/LEARNINGS.md con Source: simplify-and-harden y un Pattern-Key estable |
| Similar a una entrada existente | Vincular con **See Also**, considerar aumentar la prioridad |
| Aprendizaje ampliamente aplicable | Promover a CLAUDE.md, AGENTS.md, y/o .github/copilot-instructions.md |
| Mejoras en el flujo de trabajo | Promover a AGENTS.md (espacio de trabajo OpenClaw) |
| Problemas con herramientas | Promover a TOOLS.md (espacio de trabajo OpenClaw) |
| Patrones de comportamiento | Promover a SOUL.md (espacio de trabajo OpenClaw) |
Configuración OpenClaw (Recomendada)
OpenClaw es la plataforma principal para esta habilidad. Utiliza inyección de prompt basada en el espacio de trabajo con carga automática de habilidades.
Instalación
A través de ClawdHub (recomendado):
clawdhub install self-improving-agent
Manual:
git clone https://github.com/peterskoett/self-improving-agent.git ~/.openclaw/skills/self-improving-agent
Reelaborado para openclaw desde el repositorio original: https://github.com/pskoett/pskoett-ai-skills - https://github.com/pskoett/pskoett-ai-skills/tree/main/skills/self-improvement
Estructura del Espacio de Trabajo
OpenClaw inyecta estos archivos en cada sesión:
~/.openclaw/workspace/
├── AGENTS.md # Flujos de trabajo multi-agente, patrones de delegación
├── SOUL.md # Directrices de comportamiento, personalidad, principios
├── TOOLS.md # Capacidades de herramientas, problemas de integración
├── MEMORY.md # Memoria a largo plazo (solo sesión principal)
├── memory/ # Archivos de memoria diaria
│ └── YYYY-MM-DD.md
└── .learnings/ # Archivos de registro de esta habilidad
├── LEARNINGS.md
├── ERRORS.md
└── FEATURE_REQUESTS.md
Crear Archivos de Aprendizaje
mkdir -p ~/.openclaw/workspace/.learnings
Luego crea los archivos de registro (o cópialos de assets/):
LEARNINGS.md— correcciones, lagunas de conocimiento, mejores prácticasERRORS.md— fallos de comandos, excepcionesFEATURE_REQUESTS.md— funcionalidades solicitadas por el usuario
Objetivos de Promoción
Cuando los aprendizajes demuestren ser ampliamente aplicables, promuévelos a los archivos del espacio de trabajo:
| Tipo de Aprendizaje | Promover a | Ejemplo |
|---|---|---|
| Patrones de comportamiento | SOUL.md | "Sé conciso, evita descargos" |
| Mejoras en el flujo de trabajo | AGENTS.md | "Crea subagentes para tareas largas" |
| Problemas con herramientas | TOOLS.md | "Git push necesita autenticación configurada primero" |
Comunicación Entre Sesiones
OpenClaw proporciona herramientas para compartir aprendizajes entre sesiones:
- sessions_list — Ver sesiones activas/recientes
- sessions_history — Leer la transcripción de otra sesión
- sessions_send — Enviar un aprendizaje a otra sesión
- sessions_spawn — Crear un subagente para trabajo en segundo plano
Opcional: Activar Hook
Para recordatorios automáticos al inicio de la sesión:
# Copiar hook al directorio de hooks de OpenClaw
cp -r hooks/openclaw ~/.openclaw/hooks/self-improvement
# Habilitarlo
openclaw hooks enable self-improvement
Consulta references/openclaw-integration.md para detalles completos.
Configuración Genérica (Otros Agentes)
Para Claude Code, Codex, Copilot u otros agentes, crea .learnings/ en tu proyecto:
mkdir -p .learnings
Copia las plantillas de assets/ o crea archivos con encabezados.
Añade referencia a los archivos del agente AGENTS.md, CLAUDE.md, o .github/copilot-instructions.md para recordarte registrar aprendizajes. (Esta es una alternativa a los recordatorios basados en hooks)
Flujo de Trabajo de Auto-mejora
Cuando ocurran errores o correcciones:
- Registrar en
.learnings/ERRORS.md,LEARNINGS.md, oFEATURE_REQUESTS.md - Revisar y promover aprendizajes ampliamente aplicables a:
CLAUDE.md- hechos y convenciones del proyectoAGENTS.md- flujos de trabajo y automatización.github/copilot-instructions.md- contexto para Copilot
Formato de Registro
Entrada de Aprendizaje
Añadir a .learnings/LEARNINGS.md:
## [LRN-YYYYMMDD-XXX] categoría
**Logged**: Marca de tiempo ISO-8601
**Priority**: baja | media | alta | crítico
**Status**: pendiente
**Area**: frontend | backend | infra | tests | docs | config
### Resumen
Descripción en una línea de lo aprendido
### Detalles
Contexto completo: qué pasó, qué estaba mal, qué es correcto
### Acción Sugerida
Corrección o mejora específica a realizar
### Metadatos
- Source: conversación | error | retroalimentación_usuario
- Related Files: ruta/al/archivo.ext
- Tags: etiqueta1, etiqueta2
- See Also: LRN-20250110-001 (si está relacionado con una entrada existente)
- Pattern-Key: simplify.codigo_muerto | harden.validacion_entrada (opcional, para seguimiento de patrones recurrentes)
- Recurrence-Count: 1 (opcional)
- First-Seen: 2025-01-15 (opcional)
- Last-Seen: 2025-01-15 (opcional)
---
Entrada de Error
Añadir a .learnings/ERRORS.md:
## [ERR-YYYYMMDD-XXX] nombre_del_comando_o_habilidad
**Logged**: Marca de tiempo ISO-8601
**Priority**: alta
**Status**: pendiente
**Area**: frontend | backend | infra | tests | docs | config
### Resumen
Breve descripción de lo que falló
### Error
Mensaje de error real o salida
### Contexto
- Comando/operación intentada
- Entrada o parámetros utilizados
- Detalles del entorno si es relevante
### Solución Sugerida
Si es identificable, qué podría resolver esto
### Metadatos
- Reproducible: sí | no | desconocido
- Related Files: ruta/al/archivo.ext
- See Also: ERR-20250110-001 (si es recurrente)
---
Entrada de Solicitud de Funcionalidad
Añadir a .learnings/FEATURE_REQUESTS.md:
## [FEAT-YYYYMMDD-XXX] nombre_de_la_capacidad
**Logged**: Marca de tiempo ISO-8601
**Priority**: media
**Status**: pendiente
**Area**: frontend | backend | infra | tests | docs | config
### Capacidad Solicitada
Lo que el usuario quería hacer
### Contexto del Usuario
Por qué lo necesitaba, qué problema está resolviendo
### Estimación de Complejidad
simple | media | compleja
### Implementación Sugerida
Cómo se podría construir, qué podría extender
### Metadatos
- Frequency: primera_vez | recurrente
- Related Features: nombre_funcionalidad_existente
---
Generación de ID
Formato: TYPE-YYYYMMDD-XXX
- TYPE:
LRN(aprendizaje),ERR(error),FEAT(funcionalidad) - YYYYMMDD: Fecha actual
- XXX: Número secuencial o 3 caracteres aleatorios (ej.,
001,A7B)
Ejemplos: LRN-20250115-001, ERR-20250115-A3F, FEAT-20250115-002
Resolución de Entradas
Cuando un problema se soluciona, actualiza la entrada:
- Cambiar
**Status**: pendiente→**Status**: resuelto - Añadir bloque de resolución después de Metadatos:
### Resolución
- **Resolved**: 2025-01-16T09:00:00Z
- **Commit/PR**: abc123 o #42
- **Notes**: Breve descripción de lo que se hizo
Otros valores de estado:
in_progress- Se está trabajando activamentewont_fix- Se decidió no abordar (añadir razón en notas de Resolución)promoted- Elevado a CLAUDE.md, AGENTS.md, o .github/copilot-instructions.md
Promoción a la Memoria del Proyecto
Cuando un aprendizaje es ampliamente aplicable (no es una corrección única), promuévelo a la memoria permanente del proyecto.
Cuándo Promover
- El aprendizaje aplica a múltiples archivos/funcionalidades
- Conocimiento que cualquier colaborador (humano o IA) debería saber
- Previene errores recurrentes
- Documenta convenciones específicas del proyecto
Objetivos de Promoción
| Objetivo | Qué Pertenece Allí |
|---|---|
CLAUDE.md | Hechos del proyecto, convenciones, problemas para todas las interacciones con Claude |
AGENTS.md | Flujos de trabajo específicos del agente, patrones de uso de herramientas, reglas de automatización |
.github/copilot-instructions.md | Contexto y convenciones del proyecto para GitHub Copilot |
SOUL.md | Directrices de comportamiento, estilo de comunicación, principios (espacio de trabajo OpenClaw) |
TOOLS.md | Capacidades de herramientas, patrones de uso, problemas de integración (espacio de trabajo OpenClaw) |
Cómo Promover
- Destilar el aprendizaje en una regla o hecho conciso
- Añadir a la sección apropiada en el archivo objetivo (crear archivo si es necesario)
- Actualizar la entrada original:
- Cambiar
**Status**: pendiente→**Status**: promovido - Añadir
**Promoted**: CLAUDE.md,AGENTS.md, o.github/copilot-instructions.md
- Cambiar
Ejemplos de Promoción
Aprendizaje (detallado):
El proyecto usa pnpm workspaces. Intenté
npm installpero falló. El archivo de bloqueo espnpm-lock.yaml. Debo usarpnpm install.
En CLAUDE.md (conciso):
## Compilación y Dependencias
- Gestor de paquetes: pnpm (no npm) - usa `pnpm install`
Aprendizaje (detallado):
Al modificar endpoints de API, debo regenerar el cliente TypeScript. Olvidar esto causa discrepancias de tipos en tiempo de ejecución.
En AGENTS.md (procesable):
## Después de Cambios en la API
1. Regenerar cliente: `pnpm run generate:api`
2. Verificar errores de tipo: `pnpm tsc --noEmit`
Detección de Patrones Recurrentes
Si estás registrando algo similar a una entrada existente:
- Buscar primero:
grep -r "palabra_clave" .learnings/ - Vincular entradas: Añadir
**See Also**: ERR-20250110-001en Metadatos - Aumentar prioridad si el problema sigue repitiéndose
- Considerar solución sistémica: Los problemas recurrentes a menudo indican:
- Documentación faltante (→ promover a CLAUDE.md o .github/copilot-instructions.md)
- Automatización faltante (→ añadir a AGENTS.md)
- Problema arquitectónico (→ crear ticket de deuda técnica)
Flujo de Simplificar y Endurecer
Usa este flujo de trabajo para ingerir patrones recurrentes de la habilidad
simplify-and-harden y convertirlos en guías de prompt duraderas.
Flujo de Ingestión
- Leer
simplify_and_harden.learning_loop.candidatesdel resumen de la tarea. - Para cada candidato, usar
pattern_keycomo clave de deduplicación estable. - Buscar en
.learnings/LEARNINGS.mduna entrada existente con esa clave:grep -n "Pattern-Key: <pattern_key>" .learnings/LEARNINGS.md
- Si se encuentra:
- Incrementar
Recurrence-Count - Actualizar
Last-Seen - Añadir enlaces
See Alsoa entradas/tareas relacionadas
- Incrementar
- Si no se encuentra:
- Crear una nueva entrada
LRN-... - Establecer
Source: simplify-and-harden - Establecer
Pattern-Key,Recurrence-Count: 1, yFirst-Seen/Last-Seen
- Crear una nueva entrada
Regla de Promoción (Retroalimentación del Prompt del Sistema)
Promover patrones recurrentes a archivos de contexto del agente/prompt del sistema cuando todos sean ciertos:
Recurrence-Count >= 3- Visto en al menos 2 tareas distintas
- Ocurrió dentro de una ventana de 30 días
Objetivos de promoción:
CLAUDE.mdAGENTS.md.github/copilot-instructions.mdSOUL.md/TOOLS.mdpara guías a nivel de espacio de trabajo OpenClaw cuando corresponda
Escribe las reglas promovidas como reglas de prevención cortas (qué hacer antes/mientras se codifica), no informes largos de incidentes.
Revisión Periódica
Revisa .learnings/ en puntos de interrupción naturales:
Cuándo Revisar
- Antes de comenzar una nueva tarea importante
- Después de completar una funcionalidad
- Cuando trabajes en un área con aprendizajes pasados
- Semanalmente durante el desarrollo activo
Verificación Rápida de Estado
# Contar elementos pendientes
grep -h "Status\*\*: pending" .learnings/*.md | wc -l
# Listar elementos pendientes de alta prioridad
grep -B5 "Priority\*\*: high" .learnings/*.md | grep "^## \["
# Encontrar aprendizajes para un área específica
grep -l "Area\*\*: backend" .learnings/*.md
Acciones de Revisión
- Resolver elementos corregidos
- Promover aprendizajes aplicables
- Vincular entradas relacionadas
- Escalar problemas recurrentes
Disparadores de Detección
Registra automáticamente cuando notes:
Correcciones (→ aprendizaje con categoría correction):
- "No, eso no está bien..."
- "En realidad, debería ser..."
- "Te equivocas sobre..."
- "Eso está desactualizado..."
Solicitudes de Funcionalidades (→ solicitud de funcionalidad):
- "¿Puedes también..."
- "Ojalá pudieras..."
- "¿Hay alguna manera de..."
- "¿Por qué no puedes..."
Lagunas de Conocimiento (→ aprendizaje con categoría knowledge_gap):
- El usuario proporciona información que no sabías
- La documentación que consultaste está desactualizada
- El comportamiento de la API difiere de tu entendimiento
Errores (→ entrada de error):
- El comando devuelve un código de salida distinto de cero
- Excepción o traza de pila
- Salida o comportamiento inesperado
- Tiempo de espera agotado o fallo de conexión
Guías de Prioridad
| Prioridad | Cuándo Usar |
|---|---|
critical | Bloquea la funcionalidad principal, riesgo de pérdida de datos, problema de seguridad |
high | Impacto significativo, afecta flujos de trabajo comunes, problema recurrente |
medium | Impacto moderado, existe alternativa |
low | Molestia menor, caso extremo, agradable de tener |
Etiquetas de Área
Usa para filtrar aprendizajes por región del código base:
| Área | Alcance |
|---|---|
frontend | UI, componentes, código del lado del cliente |
backend | API, servicios, código del lado del servidor |
infra | CI/CD, despliegue, Docker, nube |
tests | Archivos de prueba, utilidades de prueba, cobertura |
docs | Documentación, comentarios, READMEs |
config | Archivos de configuración, entorno, ajustes |
Mejores Prácticas
- Registra inmediatamente - el contexto está más fresco justo después del problema
- Sé específico - los agentes futuros necesitan entender rápidamente
- Incluye pasos de reproducción - especialmente para errores
- Víncula archivos relacionados - facilita las correcciones
- Sugiere correcciones concretas - no solo "investigar"
- Usa categorías consistentes - permite el filtrado
- Promueve agresivamente - si tienes dudas, añádelo a CLAUDE.md o .github/copilot-instructions.md
- Revisa regularmente - los aprendizajes obsoletos pierden valor
Opciones de Gitignore
Mantener aprendizajes locales (por desarrollador):
.learnings/
Rastrear aprendizajes en el repositorio (para todo el equipo): No añadir a .gitignore - los aprendizajes se convierten en conocimiento compartido.
Híbrido (rastrear plantillas, ignorar entradas):
.learnings/*.md
!.learnings/.gitkeep
Integración de Hooks
Habilita recordatorios automáticos a través de hooks del agente. Esto es optativo - debes configurar los hooks explícitamente.
Configuración Rápida (Claude Code / Codex)
...