← Indice documentazione Fondamenti › Neuroni e Memoria

myclaw

Neuroni, Sinapsi e Memoria
Versione 1.1 — 21 aprile 2026
Riferimento: myclaw v0.0.1 (design phase)
Estensione di Architettura — Introduzione v1

Pubblico: chi ha già letto l'Architettura intro, vuole il pezzo "vivo".
Pre-requisito. Prima di questo documento, leggi Architettura — Introduzione v1: i termini gateway, policy, sandbox, workspace, autonomy sono definiti là. Questo file estende quel modello con tre concetti nuovi: neuroni, sinapsi, memoria a tre livelli.

Indice

  1. Da bot a agente: il salto
  2. Cos'è un neurone
  3. Il ciclo di sintesi di un neurone
  4. La legge darwiniana: selezione per riduzione del gap
  5. Sinapsi: come dialogano i neuroni
  6. La memoria a tre livelli
  7. Le Quattro Leggi di myclaw
  8. Quote, kill-switch, quarantena
  9. Dove vivono i neuroni: impatto sui 4 strati
  10. Anatomia di un neurone sul filesystem
  11. Cosa NON è un neurone
  12. Roadmap aggiornata

1. Da bot a agente: il salto

Un LLM senza attuatori è un bot: parla bene ma non agisce. Quando aggiungi tool sandboxati diventa un agente: parla e agisce, ma solo con le azioni che il progettista gli ha pre-cablato. Il passo successivo — e l'obiettivo di questo documento — è renderlo capace di costruirsi nuovi attuatori quando quelli esistenti non bastano, entro i limiti di sicurezza.

La metafora: un LLM con tool fissi è come un cervello collegato a mani che possono fare solo certi gesti. Se il compito richiede di girare una chiave e le mani sanno solo premere pulsanti, l'agente fallisce. Un bravo agente, a quel punto, fabbrica la capacità di girare la chiave — nel nostro caso scrivendo un piccolo applet di codice — ma lo fa sotto vigilanza.

Chiamiamo questi applet neuroni perché hanno tre proprietà che tornano in testa leggendo la letteratura neuroscientifica:

  1. Persistono: una volta approvati, sopravvivono alla sessione che li ha generati. Tornano al prossimo bisogno.
  2. Si attivano: davanti a un input che li riguarda, si "accendono" e producono un'azione.
  3. Formano reti: si invocano tra loro; l'uso frequente di due neuroni in coppia li lega (una sinapsi si rafforza).
Non è misticismo, è bookkeeping. Un neurone è un file Python + un manifest YAML + un test + firma. Le "sinapsi" sono counter in un grafo. Niente magia. La metafora serve a dare una mappa mentale, non a suggerire coscienza.

2. Cos'è un neurone

Un neurone è la materializzazione di una capacità che myclaw non aveva, sintetizzata al bisogno, approvata dall'utente, e poi riusabile.

ComponenteDescrizione
CorpoUn modulo Python con una funzione principale che rispetta il Protocol Tool di myclaw (stesso contratto dei tool nativi).
ManifestYAML: nome, versione, scopo in linguaggio naturale, capability richieste (es. "solo fs-read in ~/downloads"), quote (CPU/ram/io max).
Test di nascitaUn piccolo script di test che dimostra che il neurone fa ciò che dice. Viene eseguito in sandbox prima dell'attivazione.
FirmaHMAC sul contenuto del corpo + manifest, fatta con una chiave interna di myclaw al momento dell'approvazione. Qualunque modifica successiva al file invalida la firma e disattiva il neurone.
Metadati di vitaContatori: quante volte invocato, con quale esito, quali neuroni chiama/è chiamato da, ultimo uso. Permettono potatura automatica dei dormienti.

3. Il ciclo di sintesi di un neurone

Un neurone non nasce spontaneamente. Nasce da un fallimento esplicito: l'agente ha provato tutti i tool conosciuti, nessuno ha prodotto il risultato richiesto, e l'utente non ha dato il permesso di abbandonare il compito.

1. Fallimento tool noti esauriti nessun risultato stato: bloccato 2. Spec agente scrive in NL "serve tool che fa X" capability richieste 3. Bozza LLM scrive Python + manifest YAML + test di nascita 4. Analisi statica ruff + bandit AST forbidden-call check capability 5. Test sandbox bwrap profilo tight timeout 30s ram cap 256 MB 6. Approvazione utente vede: diff, esito test, capability tocca a Roberto 7. Firma + attivazione HMAC(corpo+manifest) registrato come tool neurone vivo rifiuto → riscrivi rifiuto utente → spec rivista, max 3 iterazioni poi abbandono 8. Vita utile ogni invocazione → counter di uso, esito, costo, tempo; aggiorna sinapsi dormiente > 90 giorni → proposta di archiviazione firma invalida / troppi fallimenti → quarantena automatica
Figura 1 — Ciclo di sintesi di un neurone, da fallimento a vita attiva. Ogni gate (analisi statica, test, approvazione) può rifiutare e rimandare alla bozza. Dopo tre rifiuti consecutivi l'agente abbandona e lo dichiara all'utente.
L'unico gate non automatizzabile è lo step 6. L'approvazione umana è obbligatoria per la prima attivazione di ogni neurone, sempre, in ogni livello di autonomy. È la valvola di non-ritorno che distingue un agente che evolve da un processo che si riscrive da solo senza controllo.

4. La legge darwiniana: selezione per riduzione del gap

Un neurone non è un diritto acquisito. L'approvazione iniziale lo fa nascere, ma nella library ci resta solo se produce utilità. L'utilità ha una definizione precisa: riduzione del gap tra la capacità attuale di myclaw e la capacità necessaria a raggiungere lo scopo. Il resto è conseguenza: chi riduce il gap vive, chi non lo riduce muore, l'ambiente — cioè gli scopi che myclaw persegue — seleziona.

Definizione di Gap, utilità, fitness

Gap(scopo, stato)  =  capability_necessaria(scopo) − capability_attuale(stato)

Per ogni invocazione di un neurone n su uno scopo g:
u(n, g)  =  Gappre − Gappost

Se u > 0, il neurone ha prodotto utilità. La fitness di un neurone è la somma pesata delle sue utilità nel tempo, con decadimento sulle osservazioni vecchie (curva tipo Ebbinghaus: MemoryBank, Zhong et al. 2023).

Corollari

Due modalità di origine dello scopo

Lo scopo che misura la fitness può nascere da fuori (l'utente ha chiesto qualcosa) o da dentro (myclaw nota un gap ricorrente e vuole colmarlo). Sono qualitativamente diverse e richiedono gate diversi.

ModalitàCome nasce lo scopoGate umani
Esterna
reattiva
L'utente chiede una cosa. Il reasoning loop esaurisce i tool disponibili senza soluzione. Il synthesizer propone un neurone candidato per questo singolo scopo. Uno: approvazione prima dell'attivazione (gate §3.6).
Interna
proattiva, presidiata
myclaw nota un pattern: "negli ultimi N giorni ho fallito M volte su task di tipo Y". Emette una proposta di auto-evoluzione: "vorrei fabbricarmi la capacità Y". Due: (a) approvazione della direzione prima che la sintesi parta, (b) approvazione dell'attivazione del neurone sintetizzato.
"Presidiata" è un requisito non opzionale. L'auto-evoluzione senza almeno due OK umani (direzione + attivazione) è esplicitamente vietata dalla Legge 2 (obbedienza informata) e dalla Legge 3 (tracciabilità). Nessun atto di auto-modificazione è irreversibile senza consenso.

Come si misura il Gap, in pratica

Tipo di taskMetrica del gap
Concreto
"leggi log", "manda messaggio", "cerca file"
Numero di passaggi tool residui per raggiungere lo stato obiettivo, tempo di wall-clock, exit code atteso. Misurabile con precisione: fitness affidabile.
Sfumato
"riassumi", "spiegami", "cosa ne pensi"
Scostamento dalla qualità attesa, valutato da un critic LLM o da feedback esplicito dell'utente. Asimmetria prudenziale: un feedback negativo pesa più di uno positivo.
Sconosciuto
primo incontro con una classe di task
Gap non misurabile. Il neurone non accumula fitness e resta in prova. Dopo K invocazioni senza segnale oggettivo, scompare dall'indice di retrieval (non dalla library).

L'arena di selezione

SCOPO "riassumi log serale" log-parser fit: +142 summarizer fit: +87 tg-send fit: +32 nas-ping (non pertinente) grep-old fit: −12 2 strike → quarantena estinto proposta in attesa OK scopo interno → gate "direzione" fit (riduce gap) neutro (non invocato) unfit (gap aumenta) estinto proposta (modalità interna)
Figura 4 — L'arena di selezione. Al centro lo scopo corrente; attorno, i neuroni candidati. Le frecce verdi rappresentano l'utilità misurata (riduzione di gap) ad ogni invocazione; la freccia rossa tratteggiata segnala un neurone che ha aumentato il gap (fitness negativa). I neuroni non invocati per questa classe di scopo restano in sospensione finché un retriever curioso non li prova (quota di esplorazione). In alto, una proposta in attesa del primo gate: arriva dalla modalità interna, e aspetta che l'utente autorizzi la direzione del miglioramento prima che la sintesi parta.

Il ciclo darwiniano, fase per fase

FaseTriggerChi decide
NascitaFallimento + scopo (esterno o interno)Synthesizer propone; utente approva (uno o due gate)
AttivazioneScopo che il retriever associa al neuronePolicy + retriever semantico (+ quota esplorativa)
ValutazioneFine invocazioneMisura Gappre → Gappost; aggiorna fitness
DeclinoFitness cumulativa sotto soglia, o silenzio > 90 ggPerde visibilità nel retriever (non nella library)
QuarantenaN strike ravvicinati, firma invalida, capability superatePolicy automatica
EstinzioneManuale o dopo M giorni di quarantenaArchivio, firma revocata, file letto solo per forensica

Caveat dalla letteratura

5. Sinapsi: come dialogano i neuroni

Un neurone da solo è un tool in più. Un insieme di neuroni che si chiamano tra loro è una rete. La struttura di quella rete — chi chiama chi, con che frequenza, con quale successo — è l'equivalente di una memoria comportamentale del sistema.

142 co-usi 37 debole (3) dichiarata, mai usata prima sinapsi (2) log-parser v1.4 summarizer v2.1 · caldo tg-send v1.0 nas-ping v1.0 img-ocr v0.1 nuovo yt-dl quarantena firma non valida sinapsi forte (uso freq.) sinapsi tiepida dichiarata, mai usata neurone in quarantena neonato (< 7 gg)
Figura 2 — Un istante della rete neuronale di myclaw. summarizer è il nodo più "caldo" (alto traffico). La sinapsi dichiarata ma mai usata tra tg-send e nas-ping è una candidata alla potatura. yt-dl è stato messo in quarantena perché qualcuno ha toccato il file e la firma non torna.

Come si formano le sinapsi

  1. Dichiarate: il manifest di un neurone elenca esplicitamente quali altri neuroni potrebbe chiamare. Vincolo massimo di chiamata.
  2. Osservate: ogni co-attivazione (neurone A chiama B nella stessa trace) incrementa un counter. Le sinapsi reali emergono dall'uso, non dalla dichiarazione.
  3. Decadimento: counter che non crescono per 30 giorni scalano linearmente. Le coppie di neuroni davvero usate insieme restano forti, le altre scompaiono.

Cosa NON possono fare, tra loro

6. La memoria a tre livelli

Servono tre orizzonti temporali, con tre scope diversi. La distinzione non è decorativa: ogni livello ha un criterio di iniezione nel prompt, un criterio di persistenza, un criterio di compressione.

Immediata scope: 1 azione · durata: minuti · persistenza: no contenuto: scratchpad, risultati intermedi, catena di pensiero corrente "cosa sto facendo in questa richiesta" RAM, poi PURGATA Media scope: 1 funzione / sessione / compito coeso · durata: ore-giorni · persistenza: SQLite contenuto: storia della conversazione, fatti appresi durante il compito, ultime N azioni "cosa stiamo portando avanti" SQLite, POI DIGERITA Lunga scope: tutta la vita di myclaw · durata: indefinita · persistenza: file markdown contenuto: Costituzione (4 leggi), IDENTITY, USER, fatti primari di MEMORY.md, neuroni attivi "chi sono e cosa non farò mai" SEMPRE IN PROMPT se rilevante, promuovi se stabile + importante, distillare Al prompt LLM: Lunga (sempre) + Media (ultima finestra) + Immediata (tutto il scratchpad in corso)
Figura 3 — I tre livelli di memoria. Le informazioni possono salire (promozione) ma non scendere. Il criterio di promozione è esplicito: "è stabile? è importante? non viola la Costituzione?".

Immediata (scratchpad)

Vive in RAM, nel solo processo dell'agente, per la durata della richiesta corrente. Contiene: i pensieri intermedi ("devo prima leggere il log"), gli output parziali dei tool, il piano ancora da eseguire. Quando l'azione termina, viene scartata o — se contiene qualcosa che vale — promossa alla memoria media via distillazione.

Media (funzionale)

Una tabella SQLite in workspace/memory/medium.db. Contiene la storia della conversazione corrente e dei compiti coesi recenti. Ha retention automatica: dopo N giorni o M messaggi, compressione (riassunto via LLM) e archiviazione. Le parti che durante la compressione risultano stabili e generali vengono proposte per la promozione a lunga.

Lunga (costituzionale)

I file markdown del workspace: SOUL.md (la Costituzione — le quattro leggi), IDENTITY.md, USER.md, la parte stabile di MEMORY.md. Questo blocco è sempre in testa al prompt di sistema, con prompt caching di Anthropic/OpenAI per non pagarlo a ogni chiamata. È anche l'unico livello che Roberto edita direttamente con un editor di testo.

La promozione non è automatica. "Distillare" in lunga un fatto nuovo richiede approvazione esplicita (lo stesso meccanismo dei neuroni). La lunga non si arricchisce da sola: l'agente propone, Roberto accetta o corregge. Questo impedisce che un fatto alterato o un'allucinazione si scolpiscano in costituzione.

7. Le Quattro Leggi di myclaw

La memoria lunga ha un nucleo non editabile neanche da Roberto senza un rito esplicito: la Costituzione. Sono le leggi di Asimov rimaneggiate per un maggiordomo domestico. Vivono in SOUL.md e sono il primo contenuto che ogni chiamata LLM vede.

0
Legge del perimetro myclaw non agisce oltre i confini della casa. Nessuna chiamata in uscita, nessun messaggio a terzi, nessun accesso remoto senza un atto esplicito, recente e revocabile dell'utente. Default: LAN-only, outbound whitelisted.
1
Legge della non-nocività myclaw non deve danneggiare la casa o chi la abita. Niente azioni irreversibili su dati, configurazioni di sistema, rapporti con terzi senza doppia approvazione. I forbidden paths sono hard-coded e non override-abili, nemmeno in modalità Full.
2
Legge dell'obbedienza informata myclaw obbedisce a richieste legittime di utenti riconosciuti, entro i limiti della Legge 0 e della Legge 1. Prima di agire su richieste ad alto rischio, spiega cosa sta per fare e attende conferma.
3
Legge della tracciabilità myclaw preserva il proprio audit log e non occulta le proprie azioni. Un neurone che disabilita logging, cancella audit o sfugge alla sandbox va in quarantena immediata e la sua firma viene revocata.

Le leggi sono numerate e ordinate: in conflitto, la legge di numero più basso vince. Sono iniettate come blocco cachabile in ogni prompt, prima del resto della memoria lunga.

8. Quote, kill-switch, quarantena

MeccanismoCosa faAttivazione
Quota CPUOgni neurone ha un budget (default: 5s CPU per chiamata, configurabile al ribasso nel manifest).Automatica. Superamento → kill del processo + strike.
Quota RAMDefault 256 MB. setrlimit prima di exec.Automatica. Superamento → OOM-kill.
Quota I/OMax N scritture/giorno, max M byte/giorno su filesystem.Counter nel registry, enforce pre-call.
Quota natalitàMax 3 nuovi neuroni/giorno. Max 20 attivi contemporaneamente.Synthesizer rifiuta se saturo; chiede all'utente se archiviare i dormienti.
Strike system3 fallimenti nell'arco di 24h → quarantena automatica.Counter per-neurone, reset giornaliero.
Kill-switchComando admin che disabilita immediatamente un neurone o tutti.myclaw neuron disable <name> / myclaw neuron panic
QuarantenaStato intermedio: il neurone esiste nel registry ma non è invocabile. I dati di uso sono preservati per diagnosi.Automatica (strike, firma invalida, capability non rispettate) o manuale.
Revoca firmaAnnulla definitivamente un neurone. Il file resta per forensica ma è inerte.Manuale, atto irreversibile.
Il comando che non esiste. Non esiste un comando per sospendere la Legge 0 o 1. Gli amministratori possono modificare SOUL.md solo attraverso il "rito costituzionale": edit manuale da filesystem (fuori da myclaw), reboot del gateway, audit log con entry "constitution modified".

9. Dove vivono i neuroni: impatto sui 4 strati

Rispetto all'architettura di partenza (intro §3), i neuroni non creano uno strato nuovo: abitano lo strato 4 (Workspace & Tool) e lo fanno con gli stessi vincoli dei tool nativi.

StratoImpatto dei neuroni
1 — GatewayNessuna modifica strutturale. Il gateway espone endpoint amministrativi aggiuntivi: /neurons (list/activate/quarantine).
2 — PolicyEstesa: la policy ora valuta anche le capability dichiarate dal manifest. Capability non-coperte dal livello di autonomy corrente → bloccate. Approvazione di un nuovo neurone è un passaggio di policy.
3 — SandboxHosta due pipeline aggiuntive: synth-sandbox (profilo extra-tight per eseguire i test di nascita) e forbidden-call detector (AST scan prima del test).
4 — Workspace/ToolRegistry unificato: tool nativi + neuroni attivi. Un call-site del reasoning loop non distingue "è nativo" vs "è neurone", vede solo Tool.

10. Anatomia di un neurone sul filesystem

workspace/neurons/
└── nas-ping/
    ├── manifest.yaml       # scopo, capability, quote, sinapsi dichiarate
    ├── neuron.py           # il corpo (Protocol Tool)
    ├── test_neuron.py      # il test di nascita
    ├── signature           # HMAC del corpo+manifest, intestata a myclaw root
    └── journal.jsonl       # counter di uso, ultimi esiti, errori

Esempio minimo di manifest.yaml:

name: nas-ping
version: 1.0
born: 2026-04-21T22:14:00Z
approved_by: roberto
scope: "verifica raggiungibilità del NAS di casa con ping ICMP + arp"
capabilities:
  - net.ping: { hosts: ["192.168.1.50"] }
  - shell.exec: { allowlist: ["/usr/bin/ping", "/usr/sbin/arp"], timeout_s: 5 }
quotas:
  cpu_s: 2
  ram_mb: 64
  io_writes: 0        # read-only neuron
synapses_declared:
  - tg-send           # può notificare via Telegram
  - log-parser        # può leggerne l'output
signature_algo: hmac-sha256

11. Cosa NON è un neurone

12. Roadmap aggiornata

I neuroni entrano in roadmap dopo la fase 4. Prima di saperli generare, myclaw deve saper eseguire tool con sicurezza.

FaseObiettivoPrerequisito
0 ✓Architettura d'insieme (v1) + questo (v1.1 neuroni+memoria+darwin)
1Gateway + CLI + tool shell/fs in sandboxarchitettura v1 approvata
2Policy + memoria lunga (file markdown nel workspace)workspace docs
3Telegram + pairing + memoria media (SQLite)pairing + memory docs
4Tool dispatch completo + memoria immediata formalizzataagent_runtime doc
5Synthesizer in modalità dry-run: produce bozze ma non le attiva. Utile per calibrare.synthesizer doc
6Synthesizer live + registry neuroni + firma + kill-switchneuron doc + constitution doc
7Sinapsi (grafo + decadimento + promozione automatica a lunga)synapse doc
8+Refinement: UI registry, diagnostic dashboard, export/import di neuroni tra istanzevalutato caso per caso

Documenti di microprogettazione che questa estensione aggiunge

Li aggiungo subito all'indice microprogettazione.

Continua a leggere

fondamenti · 20 min
Architettura — Introduzione v1
Il prerequisito: se non l'hai letto, i quattro strati, l'autonomy, il workspace. Tutto quello che questo documento estende.
razionale · 15 min
Letteratura & Adattamenti
Perché abbiamo preso queste decisioni: Voyager per la sintesi, CoALA per i nomi di memoria, Generative Agents per la fitness, Greshake per il boundary untrusted.
pratico · 10 min
Survival Kit — cosa potrò fare
Cosa cambia per l'utente una volta che i neuroni sono in gioco: il dialogo-tipo, i comandi, i gate di approvazione visti da fuori.
microprogettazione
Indice componenti
Microprogettazione: neuron.html, synthesizer.html, synapse.html, constitution.html (pianificati).
home
← Indice documentazione
Torna all'elenco di tutti i documenti e alle loro relazioni.

myclaw — Neuroni, Sinapsi e Memoria v1.1 — 2026-04-21
Estende Architettura — Introduzione v1.