콘텐츠로 이동

Cognee - AI 에이전트 메모리 플랫폼 치트시트

Cognee - AI 에이전트 메모리 플랫폼 치트시트

Cognee는 자체 호스팅 지식 그래프를 사용하여 세션 전반에 걸쳐 에이전트에 지속적인 장기 메모리를 제공하는 오픈소스 AI 메모리 플랫폼입니다. 그 핵심은 ECL 파이프라인(Extract, Cognify, Load)으로, 많은 소스로부터 문서, 대화, 데이터를 수집하고, 엔티티와 관계의 그래프로 구조화하는 “cognify” 단계를 거쳐, 검색을 위해 그래프와 벡터 저장소에 로드합니다. 이는 메모리를 수동적인 저장소가 아닌 활성적이고 쿼리 가능한 레이어로 만듭니다.

설치

방법명령어
pippip install cognee
uvuv add cognee
확장 포함pip install "cognee[postgres,neo4j]"
LLM 키 설정export LLM_API_KEY="sk-..."
검증python -c "import cognee; print('ok')"

ECL 파이프라인

단계역할
Extract30개 이상의 소스 타입에서 원본 데이터 수집
Cognify지식 그래프 구축 (엔티티, 관계)
Load검색을 위해 그래프 + 벡터 데이터베이스에 저장
Search메모리 쿼리 (그래프, 벡터, 또는 하이브리드)

기본 사용법

import cognee
import asyncio

async def main():
    # 1) 메모리에 데이터 추가
    await cognee.add("Nick prefers concise, direct answers.")
    await cognee.add(open("notes.md").read())

    # 2) 지식 그래프 구축
    await cognee.cognify()

    # 3) 메모리 쿼리
    results = await cognee.search("What are Nick's preferences?")
    print(results)

asyncio.run(main())
호출설명
cognee.add(data)텍스트, 파일 또는 구조화된 데이터 수집
cognee.cognify()수집된 데이터를 그래프로 처리
cognee.search(query, ...)메모리에서 검색
cognee.prune()메모리 저장소 재설정/지우기

검색 유형

유형반환
SearchType.GRAPH_COMPLETION지식 그래프에 기반한 답변
SearchType.RAG_COMPLETION클래식 벡터 RAG 답변
SearchType.INSIGHTS엔티티 관계/인사이트
SearchType.CHUNKS일치하는 원본 청크
SearchType.SUMMARIES요약된 결과
from cognee import SearchType
res = await cognee.search("connections between X and Y",
                          query_type=SearchType.INSIGHTS)

데이터 소스

카테고리예제
문서PDF, DOCX, Markdown, text
구조화된CSV, JSON, databases
대화Chat/message history
코드소스 파일/repos

저장소 백엔드

레이어옵션
그래프 저장소NetworkX (기본), Neo4j, Kuzu
벡터 저장소LanceDB (기본), Qdrant, pgvector, Weaviate
관계형SQLite (기본), PostgreSQL
설정환경 변수 / 설정으로 설정

데이터세트 및 멀티테넌시

기능사용
데이터세트사용자/프로젝트당 메모리 네임스페이스
cognee.add(data, dataset_name="user-123")수집 범위 지정
권한메모리 파티션에 대한 접근 제어

일반적인 워크플로우

# 세션 전반에 걸쳐 사용자의 지속적인 메모리 제공
await cognee.add(conversation_history, dataset_name="user-42")
await cognee.cognify()
context = await cognee.search("summarize what we know about user-42")
# 에이전트 프롬프트에 `context` 주입

# 문서 모음에 대한 그래프 구축
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 다른 메모리 프레임워크

측면CogneeMem0Graphiti
모델그래프 네이티브 (ECL)다층 벡터/그래프/KV시간 지식 그래프
강점로컬 첫 그래프 추론대화 개인화변화하는 사실
자체 호스팅
최고의 용도프라이버시 중심 그래프 메모리개인화시간 추론

리소스