Salta ai contenuti

Cognee - Piattaforma di Memoria per Agenti IA

Cognee - Piattaforma di Memoria per Agenti IA

Cognee è una piattaforma di memoria per IA open-source che offre agli agenti memoria long-term persistente tra sessioni utilizzando un grafo di conoscenza self-hosted. L”idea distintiva è la pipeline ECL — Extract, Cognify, Load — che acquisisce documenti, conversazioni e dati da molte fonti, li struttura in un grafo di entità e relazioni (il passaggio “cognify”), e li carica in archivi di grafi e vettori per il recupero. Questo rende la memoria uno strato attivo e queryable piuttosto che un dump di vettori piatto.

Installazione

MetodoComando
pippip install cognee
uvuv add cognee
Con extrapip install "cognee[postgres,neo4j]"
Imposta una chiave LLMexport LLM_API_KEY="sk-..."
Verificapython -c "import cognee; print('ok')"

La Pipeline ECL

FaseCosa fa
ExtractAcquisisce dati grezzi da 30+ tipi di fonte
CognifyCrea un grafo di conoscenza (entità, relazioni)
LoadArchivia in database di grafi e vettori per il recupero
SearchInterroga la memoria (grafo, vettore, o ibrida)

Uso Base

import cognee
import asyncio

async def main():
    # 1) Aggiungi dati alla memoria
    await cognee.add("Nick preferisce risposte concise e dirette.")
    await cognee.add(open("notes.md").read())

    # 2) Crea il grafo di conoscenza
    await cognee.cognify()

    # 3) Interroga la memoria
    results = await cognee.search("Quali sono le preferenze di Nick?")
    print(results)

asyncio.run(main())
ChiamataDescrizione
cognee.add(data)Acquisisce testo, file o dati strutturati
cognee.cognify()Elabora i dati acquisiti nel grafo
cognee.search(query, ...)Recupera dalla memoria
cognee.prune()Reimposta/cancella gli archivi di memoria

Tipi di Ricerca

TipoRestituisce
SearchType.GRAPH_COMPLETIONRisposta radicata nel grafo di conoscenza
SearchType.RAG_COMPLETIONRisposta RAG di vettori classica
SearchType.INSIGHTSRelazioni tra entità/insights
SearchType.CHUNKSChunk raw corrispondenti
SearchType.SUMMARIESRisultati riassunti
from cognee import SearchType
res = await cognee.search("connessioni tra X e Y",
                          query_type=SearchType.INSIGHTS)

Fonti di Dati

CategoriaEsempi
DocumentiPDF, DOCX, Markdown, testo
StrutturatiCSV, JSON, database
ConversazioniChat/cronologia messaggi
CodiceFile sorgente/repo

Backend di Archiviazione

StratoOpzioni
Archivio grafiNetworkX (predefinito), Neo4j, Kuzu
Archivio vettoriLanceDB (predefinito), Qdrant, pgvector, Weaviate
RelazionaleSQLite (predefinito), PostgreSQL
ConfigurazioneImposta tramite variabili d”ambiente / config

Dataset e Multi-Tenancy

FeatureUso
DatasetAmbito della memoria per utente/progetto
cognee.add(data, dataset_name="user-123")Ambito dell”acquisizione
PermessiControlla l”accesso alle partizioni di memoria

Flussi di Lavoro Comuni

# Dai a un agente memoria duratura di un utente tra le sessioni
await cognee.add(conversation_history, dataset_name="user-42")
await cognee.cognify()
context = await cognee.search("riassumi ciò che sappiamo dell''utente-42")
# inietta `context` nel prompt dell''agente

# Crea un grafo su un corpus di documenti per domande di connect-the-dots
for f in docs: await cognee.add(open(f).read())
await cognee.cognify()
await cognee.search("come si relazionano questi documenti?",
                    query_type=SearchType.INSIGHTS)

Cognee vs Altri Framework di Memoria

AspettoCogneeMem0Graphiti
ModelloGrafo-nativo (ECL)Multi-livello vettore/grafo/KVGrafo di conoscenza temporale
Punto di forzaRagionamento grafo locale-firstPersonalizzazione conversazionaleFatti che cambiano nel tempo
Self-host
Migliore perMemoria grafo critica per la privacyPersonalizzazioneRagionamento temporale

Risorse