Ir al contenido

Memoria Autónoma

Cuando está habilitada, el agente extrae automáticamente conocimiento duradero de sesiones anteriores e inyecta un resumen compacto en cada nueva sesión. Con el tiempo construye un almacén de memoria con alcance de proyecto — decisiones técnicas, flujos de trabajo recurrentes, problemas conocidos — que se transmite hacia adelante sin esfuerzo manual.

Deshabilitada por defecto. Habilítela mediante /settings o config.yml:

memories:
enabled: true

Al inicio de la sesión, si existe un resumen de memoria para el proyecto actual, se inyecta en el prompt del sistema como un bloque de Memory Guidance. El agente recibe instrucciones de:

  • Tratar la memoria como contexto heurístico — útil para procesos y decisiones previas, no autoritativo sobre el estado actual del repositorio.
  • Citar la ruta del artefacto de memoria cuando la memoria cambie el plan, y combinarlo con evidencia del repositorio actual antes de actuar.
  • Preferir el estado del repositorio y las instrucciones del usuario cuando entren en conflicto con la memoria; tratar la memoria en conflicto como obsoleta.

El agente puede leer archivos de memoria directamente usando URLs memory:// con la herramienta read:

URLContenido
memory://rootResumen compacto inyectado al inicio
memory://root/MEMORY.mdDocumento completo de memoria a largo plazo
memory://root/skills/<name>/SKILL.mdUn manual de procedimientos de habilidad generado
SubcomandoEfecto
viewMostrar el contenido actual de inyección de memoria
clear / resetEliminar todos los datos de memoria y artefactos generados
enqueue / rebuildForzar la consolidación para que se ejecute en el próximo inicio

Las memorias se construyen mediante un pipeline en segundo plano que se ejecuta al inicio o se activa manualmente mediante un comando slash.

Fase 1 — extracción por sesión: Para cada sesión pasada que ha cambiado desde que fue procesada por última vez, un modelo lee el historial de la sesión y extrae señal duradera: decisiones técnicas, restricciones, fallos resueltos, flujos de trabajo recurrentes. Las sesiones demasiado recientes, demasiado antiguas o actualmente activas se omiten. Cada extracción produce un bloque de memoria sin procesar y una sinopsis breve para esa sesión.

Fase 2 — consolidación: Después de la extracción, una segunda pasada del modelo lee todas las extracciones por sesión y produce tres salidas escritas en disco:

  • MEMORY.md — un documento de memoria a largo plazo curado
  • memory_summary.md — el texto compacto inyectado al inicio de la sesión
  • skills/ — manuales de procedimientos reutilizables, cada uno en su propio subdirectorio

La Fase 2 utiliza un lease para prevenir la doble ejecución cuando múltiples procesos inician simultáneamente. Los directorios de habilidades obsoletos de ejecuciones anteriores se eliminan automáticamente.

Toda la salida se escanea en busca de secretos antes de escribirse en disco.

El comportamiento de extracción y consolidación de memoria está controlado completamente por archivos de prompt estáticos en src/prompts/memories/.

ArchivoPropósitoVariables
stage_one_system.mdPrompt del sistema para la extracción por sesión
stage_one_input.mdPlantilla de turno de usuario que envuelve el contenido de la sesión{{thread_id}}, {{response_items_json}}
consolidation.mdPrompt para la consolidación entre sesiones{{raw_memories}}, {{rollout_summaries}}
read_path.mdGuía de memoria inyectada en sesiones activas{{memory_summary}}

La memoria se apoya en el sistema de roles de modelo.

FaseRolPropósito
Fase 1 (extracción)defaultExtracción de conocimiento por sesión
Fase 2 (consolidación)smolSíntesis entre sesiones

Si smol no está configurado, la Fase 2 recurre al rol default.

AjustePredeterminadoDescripción
memories.enabledfalseInterruptor principal
memories.maxRolloutAgeDays30Las sesiones más antiguas que esto no se procesan
memories.minRolloutIdleHours12Las sesiones activas más recientemente que esto se omiten
memories.maxRolloutsPerStartup64Límite de sesiones procesadas en un solo inicio
memories.summaryInjectionTokenLimit5000Máximo de tokens del resumen inyectado en el prompt del sistema

Controles de ajuste adicionales (concurrencia, duraciones de lease, presupuestos de tokens) están disponibles en la configuración para uso avanzado.

  • src/memories/index.ts — orquestación del pipeline, inyección, manejo de comandos slash
  • src/memories/storage.ts — cola de trabajos respaldada por SQLite y registro de hilos
  • src/prompts/memories/ — plantillas de prompts de memoria
  • src/internal-urls/memory-protocol.ts — manejador de URLs memory://