Ir al contenido

Cognee - Plataforma de Memoria para Agentes IA

Cognee - Plataforma de Memoria para Agentes IA

Cognee es una plataforma de memoria IA de código abierto que otorga a los agentes memoria persistente a largo plazo a través de sesiones utilizando un gráfico de conocimiento alojado. Su idea definitoria es el pipeline ECL — Extract, Cognify, Load — que ingiere documentos, conversaciones y datos de muchas fuentes, los estructura en un gráfico de entidades y relaciones (el paso “cognify”), y los carga en almacenes de gráficos y vectores para recuperación. Esto convierte la memoria en una capa activa y consultable en lugar de un volcado de vectores plano.

Instalación

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

El Pipeline ECL

EtapaLo que hace
ExtractIngerir datos sin procesar de 30+ tipos de fuentes
CognifyConstruir un gráfico de conocimiento (entidades, relaciones)
LoadAlmacenar en bases de datos de gráficos + vectores para recuperación
SearchConsultar memoria (gráfico, vector, o híbrida)

Uso Básico

import cognee
import asyncio

async def main():
    # 1) Agregar datos a memoria
    await cognee.add("Nick prefers concise, direct answers.")
    await cognee.add(open("notes.md").read())

    # 2) Construir el gráfico de conocimiento
    await cognee.cognify()

    # 3) Consultar memoria
    results = await cognee.search("What are Nick's preferences?")
    print(results)

asyncio.run(main())
LlamadaDescripción
cognee.add(data)Ingerir texto, archivos o datos estructurados
cognee.cognify()Procesar datos ingeridos en el gráfico
cognee.search(query, ...)Recuperar de memoria
cognee.prune()Restablecer/limpiar almacenes de memoria

Tipos de Búsqueda

TipoDevuelve
SearchType.GRAPH_COMPLETIONRespuesta fundamentada en el gráfico de conocimiento
SearchType.RAG_COMPLETIONRespuesta RAG de vector clásica
SearchType.INSIGHTSRelaciones/insights de entidades
SearchType.CHUNKSFragmentos coincidentes sin procesar
SearchType.SUMMARIESResultados resumidos
from cognee import SearchType
res = await cognee.search("connections between X and Y",
                          query_type=SearchType.INSIGHTS)

Fuentes de Datos

CategoríaEjemplos
DocumentosPDF, DOCX, Markdown, texto
EstructuradosCSV, JSON, bases de datos
ConversacionesHistorial de chat/mensajes
CódigoArchivos/repos de fuente

Backends de Almacenamiento

CapaOpciones
Almacén de gráficosNetworkX (por defecto), Neo4j, Kuzu
Almacén de vectoresLanceDB (por defecto), Qdrant, pgvector, Weaviate
RelacionalSQLite (por defecto), PostgreSQL
ConfiguraciónEstablecer mediante variables de entorno / configuración

Conjuntos de Datos y Multi-Tenancy

CaracterísticaUso
Conjuntos de datosMemoria de espacio de nombres por usuario/proyecto
cognee.add(data, dataset_name="user-123")Ingesta de alcance
PermisosControlar acceso a particiones de memoria

Flujos de Trabajo Comunes

# Dar a un agente memoria duradera de un usuario a través de sesiones
await cognee.add(conversation_history, dataset_name="user-42")
await cognee.cognify()
context = await cognee.search("summarize what we know about user-42")
# inyectar `context` en el prompt del agente

# Construir un gráfico sobre un corpus de documentos para preguntas de conexión
for f in docs: await cognee.add(open(f).read())
await cognee.cognify()
await cognee.search("how do these documents relate?",
                    query_type=SearchType.INSIGHTS)

Cognee vs Otros Marcos de Memoria

AspectoCogneeMem0Graphiti
ModeloGráfico nativo (ECL)Vector/gráfico/KV de múltiples capasGráfico de conocimiento temporal
FortalezaRazonamiento de gráfico localPersonalización conversacionalHechos que cambian con el tiempo
Alojamiento automático
Mejor paraMemoria de gráfico crítica para privacidadPersonalizaciónRazonamiento temporal

Recursos