Pular para o conteúdo

Cognee - Plataforma de Memória de Agente AI

Cognee - Plataforma de Memória de Agente AI

Cognee é uma plataforma de memória AI de código aberto que fornece aos agentes memória de longo prazo persistente em múltiplas sessões usando um grafo de conhecimento auto-hospedado. Sua ideia definidora é o pipeline ECL — Extract, Cognify, Load — que ingere documentos, conversas e dados de muitas fontes, os estrutura em um grafo de entidades e relacionamentos (o passo “cognify”), e os carrega em armazenadores de grafo + vetor para recuperação. Isso faz da memória uma camada ativa e consultável, em vez de um depósito inerte.

Instalação

MétodoComando
pippip install cognee
uvuv add cognee
Com extraspip install "cognee[postgres,neo4j]"
Defina uma chave LLMexport LLM_API_KEY="sk-..."
Verificarpython -c "import cognee; print('ok')"

O Pipeline ECL

EstágioO que faz
ExtractIngira dados brutos de 30+ tipos de fonte
CognifyConstrua um grafo de conhecimento (entidades, relacionamentos)
LoadArmazene em bancos de dados de grafo + vetor para recuperação
SearchConsulte memória (grafo, vetor ou híbrida)

Uso Básico

import cognee
import asyncio

async def main():
    # 1) Adicione dados à memória
    await cognee.add("Nick prefere respostas concisas e diretas.")
    await cognee.add(open("notes.md").read())

    # 2) Construa o grafo de conhecimento
    await cognee.cognify()

    # 3) Consulte memória
    results = await cognee.search("Quais são as preferências de Nick?")
    print(results)

asyncio.run(main())
ChamadaDescrição
cognee.add(data)Ingira texto, arquivos ou dados estruturados
cognee.cognify()Processe dados ingeridos no grafo
cognee.search(query, ...)Recupere da memória
cognee.prune()Resete/limpe armazenadores de memória

Tipos de Busca

TipoRetorna
SearchType.GRAPH_COMPLETIONResposta fundamentada no grafo de conhecimento
SearchType.RAG_COMPLETIONResposta clássica de RAG vetorial
SearchType.INSIGHTSRelacionamentos/insights de entidade
SearchType.CHUNKSChunks brutos correspondentes
SearchType.SUMMARIESResultados resumidos
from cognee import SearchType
res = await cognee.search("conexões entre X e Y",
                          query_type=SearchType.INSIGHTS)

Fontes de Dados

CategoriaExemplos
DocumentosPDF, DOCX, Markdown, texto
EstruturadosCSV, JSON, bancos de dados
ConversasHistórico de chat/mensagens
CódigoArquivos/repositórios de código-fonte

Backends de Armazenamento

CamadaOpções
Armazenador de grafoNetworkX (padrão), Neo4j, Kuzu
Armazenador de vetorLanceDB (padrão), Qdrant, pgvector, Weaviate
RelacionalSQLite (padrão), PostgreSQL
ConfigDefina via variáveis de ambiente / config

Datasets e Multi-Tenancy

RecursoUso
DatasetsNamespace de memória por usuário/projeto
cognee.add(data, dataset_name="user-123")Escopo de ingestão
PermissõesControle de acesso a partições de memória

Workflows Comuns

# Dê a um agente memória durável de um usuário entre sessões
await cognee.add(conversation_history, dataset_name="user-42")
await cognee.cognify()
context = await cognee.search("resuma o que sabemos sobre user-42")
# injete `context` no prompt do agente

# Construa um grafo sobre um corpus de documentos para perguntas de conexão
for f in docs: await cognee.add(open(f).read())
await cognee.cognify()
await cognee.search("como esses documentos se relacionam?",
                    query_type=SearchType.INSIGHTS)

Cognee vs Outros Frameworks de Memória

AspectoCogneeMem0Graphiti
ModeloGraph-nativo (ECL)Multi-tier vetor/grafo/KVGrafo de conhecimento temporal
ForçaRaciocínio de grafo primeiro-localPersonalização conversacionalFatos que mudam com o tempo
Auto-hospedadoSimSimSim
Melhor paraMemória de grafo crítica em privacidadePersonalizaçãoRaciocínio temporal

Recursos