Salta ai contenuti

Memoria Autonoma

Quando abilitato, l’agente estrae automaticamente la conoscenza duratura dalle sessioni passate e inietta un riepilogo compatto in ogni nuova sessione. Nel tempo costruisce un archivio di memoria con ambito di progetto — decisioni tecniche, workflow ricorrenti, insidie — che viene mantenuto senza sforzo manuale.

Disabilitato per impostazione predefinita. Si abilita tramite /settings o config.yml:

memories:
enabled: true

All’avvio della sessione, se esiste un riepilogo di memoria per il progetto corrente, viene iniettato nel system prompt come blocco Memory Guidance. L’agente è istruito a:

  • Trattare la memoria come contesto euristico — utile per processi e decisioni precedenti, non autorevole sullo stato attuale del repository.
  • Citare il percorso dell’artefatto di memoria quando la memoria modifica il piano, e abbinarlo a evidenze dal repository corrente prima di agire.
  • Preferire lo stato del repository e le istruzioni dell’utente quando sono in conflitto con la memoria; trattare la memoria in conflitto come obsoleta.

L’agente può leggere i file di memoria direttamente utilizzando URL memory:// con lo strumento read:

URLContenuto
memory://rootRiepilogo compatto iniettato all’avvio
memory://root/MEMORY.mdDocumento completo di memoria a lungo termine
memory://root/skills/<name>/SKILL.mdUn playbook di competenze generato
SottocomandoEffetto
viewMostra il payload di iniezione della memoria corrente
clear / resetElimina tutti i dati di memoria e gli artefatti generati
enqueue / rebuildForza l’esecuzione della consolidazione al prossimo avvio

Le memorie vengono costruite da una pipeline in background che si esegue all’avvio o manualmente tramite comando slash.

Fase 1 — estrazione per sessione: Per ogni sessione passata che è cambiata dall’ultima elaborazione, un modello legge la cronologia della sessione ed estrae segnali duraturi: decisioni tecniche, vincoli, errori risolti, workflow ricorrenti. Le sessioni troppo recenti, troppo vecchie o attualmente attive vengono saltate. Ogni estrazione produce un blocco di memoria grezzo e una breve sinossi per quella sessione.

Fase 2 — consolidamento: Dopo l’estrazione, un secondo passaggio del modello legge tutte le estrazioni per sessione e produce tre output scritti su disco:

  • MEMORY.md — un documento di memoria a lungo termine curato
  • memory_summary.md — il testo compatto iniettato all’avvio della sessione
  • skills/ — playbook procedurali riutilizzabili, ciascuno nella propria sottodirectory

La Fase 2 utilizza un lease per evitare la doppia esecuzione quando più processi si avviano simultaneamente. Le directory di competenze obsolete dalle esecuzioni precedenti vengono eliminate automaticamente.

Tutti gli output vengono scansionati alla ricerca di segreti prima di essere scritti su disco.

Il comportamento di estrazione e consolidamento della memoria è interamente guidato da file di prompt statici in src/prompts/memories/.

FileScopoVariabili
stage_one_system.mdSystem prompt per l’estrazione per sessione
stage_one_input.mdTemplate del turno utente che racchiude il contenuto della sessione{{thread_id}}, {{response_items_json}}
consolidation.mdPrompt per il consolidamento tra sessioni{{raw_memories}}, {{rollout_summaries}}
read_path.mdGuida di memoria iniettata nelle sessioni attive{{memory_summary}}

La memoria si appoggia al sistema di ruoli del modello.

FaseRuoloScopo
Fase 1 (estrazione)defaultEstrazione della conoscenza per sessione
Fase 2 (consolidamento)smolSintesi tra sessioni

Se smol non è configurato, la Fase 2 ricade sul ruolo default.

ImpostazionePredefinitoDescrizione
memories.enabledfalseInterruttore principale
memories.maxRolloutAgeDays30Le sessioni più vecchie di questo valore non vengono elaborate
memories.minRolloutIdleHours12Le sessioni attive più di recente rispetto a questo valore vengono saltate
memories.maxRolloutsPerStartup64Limite di sessioni elaborate in un singolo avvio
memories.summaryInjectionTokenLimit5000Massimo di token del riepilogo iniettato nel system prompt

Parametri di regolazione aggiuntivi (concorrenza, durate dei lease, budget di token) sono disponibili nella configurazione per un uso avanzato.

  • src/memories/index.ts — orchestrazione della pipeline, iniezione, gestione dei comandi slash
  • src/memories/storage.ts — coda di lavori basata su SQLite e registro dei thread
  • src/prompts/memories/ — template dei prompt di memoria
  • src/internal-urls/memory-protocol.ts — gestore degli URL memory://