Kore Memory
Il layer di memoria che ragiona come un essere umano.
Kore Memory è una libreria Python che fornisce agli agenti AI un sistema di memoria ispirato alla biologia. Utilizza le curve dell'oblio di Ebbinghaus per far decadere i ricordi nel tempo, assegna automaticamente un punteggio di importanza senza bisogno di un LLM e offre ricerca semantica in oltre 50 lingue -- il tutto funzionando completamente offline sulla tua macchina.
pip install kore-memory
Perché Kore Memory?
La maggior parte dei sistemi di memoria per AI tratta lo storage come un semplice dump chiave-valore oppure richiede costose chiamate LLM per ogni operazione. Kore Memory adotta un approccio radicalmente diverso:
- Decay di Ebbinghaus -- I ricordi svaniscono naturalmente nel tempo, proprio come la memoria umana. I ricordi importanti durano più a lungo; quelli banali scompaiono. Ogni recupero rafforza il ricordo (ripetizione dilazionata).
- Nessun LLM necessario -- Il calcolo dell'importanza, la compressione e la ricerca girano tutti in locale. Nessuna API key, nessuna chiamata cloud, nessun costo di utilizzo.
- Completamente offline -- SQLite + sentence-transformers locali. Funziona su macchine air-gapped, pipeline CI e dispositivi edge.
- Pronto per il multi-agent -- Isolamento dei namespace tramite header
X-Agent-Id. Ogni agente vede solo i propri ricordi.
Confronto funzionalità
| Funzionalità | Kore Memory | Mem0 | Letta | Memori |
|---|---|---|---|---|
| Funzionamento offline | Sì | No | No | No |
| Nessun LLM necessario | Sì | No | No | Sì |
| Decay della memoria (Ebbinghaus) | Sì | No | No | No |
| Punteggio di importanza automatico (locale) | Sì | Via LLM | No | No |
| Compressione della memoria | Sì | No | No | No |
| Ricerca semantica (50+ lingue) | Sì (locale) | Via API | Sì | Sì |
| API Timeline | Sì | No | No | No |
| Tag e grafo delle relazioni | Sì | No | Sì | No |
| TTL / scadenza automatica | Sì | No | No | No |
| Supporto server MCP | Sì | No | No | No |
| API Batch (fino a 100) | Sì | No | No | No |
| Export / Import (JSON) | Sì | No | Sì | No |
| Soft-delete / Archivio | Sì | No | No | No |
| Metriche Prometheus | Sì | No | No | No |
| Dashboard web | Sì | No | No | No |
Concetti fondamentali
La pipeline di memoria
Ogni ricordo attraversa cinque fasi:
- Salvataggio -- Il contenuto viene ricevuto via REST API, Python SDK o tool MCP
- Valutazione -- L'importanza viene calcolata automaticamente in locale su una scala 1--5 (oppure impostata esplicitamente)
- Embedding -- Un sentence-transformer locale genera un embedding semantico
- Archiviazione -- Il ricordo viene salvato in SQLite con un
decay_scoreiniziale di 1.0 - Decay -- Col tempo, il punteggio di decay diminuisce seguendo la curva di Ebbinghaus
Quando effettui una ricerca, i risultati sono ordinati per un punteggio effettivo che combina tre segnali:
effective_score = similarity * decay * importance
Questo significa che i ricordi recenti, importanti e semanticamente rilevanti emergono sempre per primi.
Categorie di memoria
I ricordi possono essere organizzati in categorie:
| Categoria | Caso d'uso |
|---|---|
general | Raccolta generica predefinita |
project | Conoscenze specifiche del progetto |
trading | Contesto finanziario / trading |
finance | Registrazioni e decisioni finanziarie |
person | Informazioni sulle persone |
preference | Preferenze e impostazioni dell'utente |
task | Attività, scadenze, pianificazioni |
decision | Decisioni architetturali e strategiche |
Isolamento dei namespace
Ogni richiesta API può includere un header X-Agent-Id. I ricordi sono rigorosamente isolati tra agenti -- l'agente A non può leggere né cercare i ricordi dell'agente B. Questo rende Kore sicuro per deployment multi-tenant e multi-agent.
Esempio rapido
# Avvia il server
pip install kore-memory[semantic]
kore
# Salva un ricordo
curl -X POST http://localhost:8765/save \
-H "Content-Type: application/json" \
-H "X-Agent-Id: my-agent" \
-d '{"content": "User prefers concise responses in Italian", "category": "preference"}'
# Cerca
curl "http://localhost:8765/search?q=user+preferences&limit=5" \
-H "X-Agent-Id: my-agent"
Oppure con il Python SDK:
from kore_memory import KoreClient
with KoreClient("http://localhost:8765", agent_id="my-agent") as kore:
kore.save("User prefers dark mode", category="preference")
results = kore.search("dark mode", limit=5)
for memory in results:
print(memory.content, memory.decay_score)
Requisiti
- Python 3.11+
- SQLite con FTS5 (incluso nella maggior parte delle installazioni Python)
- Nessuna GPU necessaria (sentence-transformers solo CPU)
Prossimi passi
- Installazione -- Installa Kore Memory con gli extra di cui hai bisogno
- Guida all'uso -- Salva, cerca, tagga e gestisci i ricordi
- Configurazione -- Variabili d'ambiente e ottimizzazione
- Riferimento API -- Documentazione completa dell'API REST
- Server MCP -- Usa Kore con Claude, Cursor e altri client MCP
- Architettura -- Come funzionano il motore di decay, il punteggio e la compressione