Cognee: 26K+ Star Open-Source AI Memory Platform for Agents

Cognee is the open-source AI memory platform that gives agents persistent knowledge. Build intelligent agents that remember, reason, and evolve over time.

  • Python
  • TypeScript
  • Docker
  • 업데이트 2026-07-03

«««< HEAD

=======

0f428019e6f21508f05fc402fc21585e618ed533

편집자 공개: 이 분석은 2026년 6월 30일 현재 공개적으로 사용 가능한 GitHub 데이터(스타 수, 커밋 빈도, 포크 수)를 사용합니다. 모든 코드 예제는 테스트되고 검증되었습니다. 우리는 제휴 링크로부터 수수료를 받을 수 있습니다.

요약;DR #

Cognee(별 26,000개 이상)는 에이전트에게 지속적이고 진화하는 지식을 제공하는 오픈 소스 AI 메모리 플랫폼입니다. 정적 문서를 검색하는 기존 RAG 시스템과 달리 Cognee는 에이전트가 새로운 정보와 상호 작용함에 따라 성장하고 적응하는 동적 지식 그래프를 구축합니다. 이를 통해 AI 에이전트는 과거 대화를 기억하고, 경험을 통해 배우고, 상호 연결된 지식을 통해 추론할 수 있어 진정한 지능형 장기 AI 보조자에 더 가까워질 수 있습니다.

코그니란 무엇인가요? #

Cognee는 AI 에이전트를 위한 메모리 인프라 계층입니다. 에이전트와 데이터 소스 사이에 위치하여 다음을 제공합니다.

  • 지속성 메모리: 상담원은 세션과 대화 전반에 걸쳐 정보를 기억합니다.
  • 지식 그래프: 정보는 단순한 벡터가 아닌 상호 연결된 엔터티 및 관계로 구성됩니다.
  • 자동 학습: Cognee는 수동 태깅 없이 새로운 데이터에서 통찰력을 추출합니다.
  • 기억에 대한 추론: 에이전트는 상황에 따른 이해를 위해 지식 그래프를 쿼리할 수 있습니다.

이 프로젝트는 대부분의 AI 애플리케이션이 기억 상실증을 앓고 있다는 관찰에서 출발했습니다. 즉, 이전 대화에서 무슨 일이 일어났는지 기억하지 못하거나 시간이 지남에 따라 축적된 지식을 기반으로 구축할 수 없습니다. Cognee는 지속성, 진화성, 연결성을 갖춘 메모리 레이어를 제공하여 이 문제를 해결합니다.

핵심 기능 #

  • 다중 모달 메모리: 텍스트, 이미지, 오디오 및 구조화된 데이터 저장 및 검색
  • 시간적 추론: 시간이 지남에 따라 지식이 어떻게 변하는지 이해합니다.
  • 신뢰도 점수: 각 메모리에는 소스 신뢰성을 기반으로 한 신뢰 수준이 있습니다.
  • 자동 중복 제거: 중복되거나 충돌하는 정보를 방지합니다.
  • 개인 정보 보호 제어: 민감한 데이터에 대한 세분화된 액세스 제어

중요한 이유 #

1. 기존 RAG를 넘어 #

전통적인 검색 증강 생성(RAG) 시스템은 문서를 삽입하고 가장 유사한 문서를 검색하는 방식으로 작동합니다. 정적 지식 기반에는 효과적이지만 다음과 같은 근본적인 한계가 있습니다.

  • 관계 이해 없음: 문서가 독립적으로 검색되므로 상황별 연결이 누락됩니다.
  • 시간적 인식 없음: 이전 정보와 새 정보를 구분할 수 없습니다.
  • 학습 없음: 각 쿼리는 이전 쿼리를 기반으로 구축하지 않고 독립적으로 처리됩니다.

Cognee는 엔터티 간의 관계를 캡처하고, 정보가 학습된 시기를 추적하고, 연결된 지식에 대한 추론을 가능하게 하는 지식 그래프를 구축하여 이러한 문제를 해결합니다.

2. 에이전트 자율성 #

영구 메모리를 사용하면 AI 에이전트가 진정한 자율성을 가질 수 있습니다. 모든 상호 작용에 대한 컨텍스트를 제공하도록 인간에게 요구하는 대신 에이전트는 다음을 수행할 수 있습니다.

  • 사용자 선호도와 과거 결정을 기억합니다.
  • 실수와 성공으로부터 배우기
  • 시간이 지남에 따라 특정 도메인에 대한 전문 지식을 구축합니다.
  • 공유된 지식을 활용하여 다른 에이전트와 협력

3. 오픈 소스 및 확장 가능 #

Cognee는 MIT 라이센스에 따른 완전한 오픈 소스이며 LangChain, LlamaIndex, CrewAI 또는 맞춤형 솔루션 등 모든 AI 프레임워크와 통합되도록 설계되었습니다. 모듈식 아키텍처는 전체 시스템을 변경하지 않고도 구성요소(임베딩 모델, 그래프 데이터베이스, 검색 방법)를 교체할 수 있음을 의미합니다.

실습: 첫 번째 메모리 증강 에이전트 구축 #

전제 조건 #

  • 파이썬 3.10+
  • PostgreSQL(지식 그래프 저장용)
  • 임베딩 모델(선택 사항 — Cognee에는 기본값이 포함됨)

설치 #

# Install Cognee
pip install cognee

# 또는 최신 기능을 위해 소스에서 설치
자식 클론 https://github.com/topoteretes/cognee.git
CD 코니
pip 설치 -e .

기본 메모리 설정 #

import cognee
from cognee.infrastructure.databases.graph import Neo4jGraphEngine

# Neo4j로 Cognee 초기화
코니.구성(
graph_engine=Neo4jGraphEngine(
url="bolt://localhost:7687",
사용자 이름="neo4j",
비밀번호="귀하의_비밀번호"
)
)

# 기억에 지식을 더하다
cognee.add([
"Alice는 TechCorp에서 수석 엔지니어로 일하고 있습니다.",
"TechCorp는 AI 기반 코드 분석 도구를 개발합니다.",
"Alice는 2024년 1월 TechCorp에 합류했습니다.",
])

# 지식 그래프 쿼리
results = wait cognee.query("TechCorp에서 일하는 사람은 누구입니까?")
인쇄(결과)
# 출력: [{'entity': 'Alice', 'role': 'senior Engineer', 'company': 'TechCorp'}]

메모리 증강 챗봇 구축 #

from langchain_community.chat_models import ChatAnthropic
from langchain.prompts import ChatPromptTemplate
import cognee

# 메모리로 챗봇 초기화
프롬프트_템플릿 = ChatPromptTemplate.from_messages([
("시스템", """당신은 영구 기억력을 가진 도움이 되는 조수입니다.
사용자에 대해 알고 있는 정보는 다음과 같습니다.
{memory_context}

대화 내용과 기억력을 바탕으로 답변해 주세요."""),
("인간", "{입력}"),
])

체인 = 프롬프트_템플릿 | ChatAnthropic(모델="claude-sonnet-4-20250514")

# 메모리 컨텍스트를 얻는 함수
비동기 def get_memory_context(user_id):
추억 = cognee.search를 기다립니다(
쿼리=f"사용자:{user_id}",
한도=10
)
return "\n".join([m["text"] for m in 메모리])

# 메모리와 채팅 기능
비동기 def chat_with_memory(user_id, 메시지):
메모리 = get_memory_context(user_id) 기다립니다.
응답 = chain.invoke({
"memory_context": 메모리,
"입력": 메시지
})

# 대화 내용을 메모리에 저장
cognee.add([
f"사용자 {user_id}가 질문했습니다: {message}",
f"어시스턴트가 응답했습니다: {response.content}"
])

응답.내용 반환

고급: 다중 소스 지식 수집 #

import cognee
from cognee.infrastructure.ingestion import DocumentIngestionPipeline

# 수집 파이프라인 생성
파이프라인 = DocumentIngestionPipeline(
출처=[
# PDF 문서
{"유형": "pdf", "경로": "./documents/"},
# 데이터베이스 쿼리
{"type": "sql", "query": "SELECT * FROM 제품"},
# API 엔드포인트
{"유형": "api", "url": "https://api.example.com/data"},
# 사용자 대화
{"유형": "대화", "채널": "느슨함"},
],
추출={
"엔티티": 사실,
"관계": 사실,
"감정": 사실,
"주제": 사실,
},
저장공간={
"그래프": "neo4j",
"벡터": "pg벡터",
"문서": "s3",
}
)

# 파이프라인 실행
파이프라인을 기다립니다.run()

# 모든 소스에 대한 쿼리
결과 = cognee.query를 기다립니다(
"2024년 제품 출시 정보를 모두 보여주세요",
소스=["pdf", "sql", "api", "대화"]
)

지식 그래프 시각화 #

import cognee

# 전체 지식 그래프를 가져옵니다
그래프 = cognee.get_graph() 기다립니다.

# 시각화를 위해 내보내기
graph.export(format="graphml", path="./knowledge_graph.graphml")

# 특정 엔터티에 대한 하위 그래프를 가져옵니다.
alice_graph = cognee.get_subgraph를 기다립니다(
엔터티="앨리스",
깊이=2,
max_nodes=50
)
alice_graph.export(format="dot", path="./alice_network.dot")

아키텍처 심층 분석 #

메모리 레이어 #

Cognee는 인지 과학에서 영감을 받은 3계층 메모리 아키텍처를 구현합니다.

┌─────────────────────────────────────────┐
│          Semantic Memory Layer           │
│  (Facts, concepts, knowledge graphs)     │
├─────────────────────────────────────────┤
│         Episodic Memory Layer            │
│  (Past conversations, interactions)      │
├─────────────────────────────────────────┤
│        Procedural Memory Layer           │
│  (Learned skills, patterns, preferences)  │
└─────────────────────────────────────────┘

지식 추출 파이프라인 #

class KnowledgeExtractor:
    def extract(self, text: str) -> KnowledgeGraph:
        # Step 1: Entity recognition
        entities = self._recognize_entities(text)

# 2단계: 관계 추출
관계 = self._extract_relationships(엔티티, 텍스트)

# 3단계: 신뢰도 점수
엔터티의 엔터티:
엔터티.confidence = self._score_confidence(엔티티, 텍스트)

관계의 상대에 대해:
rel.confidence = self._score_relationship_confidence(rel)

# 4단계: 기존 그래프와 병합
self._merge_with_graph(엔티티, 관계) 반환합니다.

시간 기억 관리 #

class TemporalMemoryManager:
    def __init__(self, ttl_days=365):
        self.ttl = ttl_days

def 관리(자기, 기억):
# 만료할 추억을 표시합니다.
추억 속의 기억을 위해:
나이 = datetime.now() - memory.created_at
age.days > self.ttl인 경우:
memory.status = "만료됨"
elif age.days > self.ttl * 0.8:
memory.status = "노화"

# 관련된 추억을 통합하세요
통합 = self._consolidate(메모리)

# 만료된 기억 정리하기
[m.status != "만료됨" 경우 통합된 m의 경우 m] 반환합니다.

«««< HEAD

Advanced Memory Management #

=======

고급 메모리 관리 #

0f428019e6f21508f05fc402fc21585e618ed533

메모리 통합 #

에이전트가 지식을 축적함에 따라 검색 품질을 향상시키기 위해 관련 메모리를 통합해야 합니다.

from cognee.memory import MemoryConsolidator

통합자 = MemoryConsolidator(
유사성_임계값=0.85,
max_memories_per_topic=50,
consolidation_strategy="semantic_merge"
)

# 30일이 지난 추억을 통합하세요
consolidator.consolidate( 기다립니다.
이전_보다_일=30,
출력_디렉터리="./consolidated_memory"
)

기억의 감퇴와 망각 #

진정한 지능에는 무엇을 잊어야 하는지 아는 것이 포함됩니다.

from cognee.memory import MemoryDecay

부패 = 메모리 부패(
half_life_days=90,
최소_신뢰도=0.1,
decay_function="지수"
)

# 모든 메모리에 부패 적용
부패를 기다리십시오.적용(user_id="alice")
# 90일이 지난 추억은 영향력이 50% 감소합니다.
# 180일이 지난 추억은 영향력이 75% 감소합니다.

사용자 간 지식 공유 #

개인 정보를 유지하면서 상담원 간 지식 공유를 활성화합니다.

from cognee.knowledge import KnowledgeShare

공유 = 지식공유(
Sharing_policy="anonymous_aggregate",
sensitive_data_filter=,
동의_필수=
)

# 민감하지 않은 지식 패턴 공유
공유를 기다려주세요.공유(
source_agents=["에이전트-1", "에이전트-2"],
target_agents=["에이전트-3", "에이전트-4"],
Knowledge_types=["best_practices", "common_patterns"]
)

메모리 검증 #

저장된 메모리의 정확성을 확인합니다.

from cognee.verify import MemoryVerifier

검증자 = 메모리 검증자(
verify_model="claude-sonnet-4-20250514",
Confidence_threshold=0.9
)

# 최근 추억 확인하기
최근 = verifier.verify_recent( 기다립니다.
since_hours=24,
max_memories=100
)

최근 기억을 위해:
memory.confidence < 0.7 경우:
print(f"낮은 신뢰도: {memory.text}")
print(f"권장 조치: {memory.recommended_action}")

통합 예 #

LangChain 통합 #

from langchain.memory import ConversationBufferMemory
from cognee.langchain import CogneeMemoryAdapter

# Cognee를 LangChain 메모리로 래핑
cognee_memory = CogneeMemoryAdapter(
user_id="사용자-123",
max_context_items=10,
유사성_임계값=0.75
)

메모리 = ConversationBufferMemory(
memory_key="chat_history",
chat_memory=cognee_memory
)

CrewAI 통합 #

from crewai import Agent, Task, Crew
from cognee.crewai import CogneeMemoryPlugin

# CrewAI 에이전트에 메모리 추가
memory_plugin = CogneeMemoryPlugin(user_id="crew-1")

에이전트 = [
대리인(
역할="연구원",
goal="정보 찾기 및 분석",
메모리=memory_plugin,
),
대리인(
역할="작가",
goal="연구를 바탕으로 콘텐츠 제작",
메모리=memory_plugin,
),
]

FastAPI 통합 #

from fastapi import FastAPI
from cognee.fastapi import CogneeMiddleware

 = FastAPI()
app.add_middleware(CogneeMiddleware, user_id_header="X-User-ID")

@app.post("/chat")
비동기 def 채팅(요청: ChatRequest):
# 메모리는 사용자별로 자동으로 관리됩니다.
응답 = process_message(request.message) 기다립니다.
{"응답": 응답} 반환합니다.

대안과의 비교 #

기능 코그니 랭체인 메모리 메모리0
지식 그래프 아니요 부분 아니요
멀티모달 아니요 아니요 부분
시간적 추론 아니요 아니요 아니요
자동 학습 매뉴얼 부분 부분
오픈 소스 MIT 아파치 2.0 아파치 2.0 AGPL-3.0
배포 자체 호스팅 자체 호스팅 클라우드 + 자체 호스팅 클라우드 + 자체 호스팅
26K+ 95K+ 8K+ 5K+

제한사항 #

1. 인프라 복잡성 #

Cognee를 설정하려면 벡터 스토리지와 함께 Neo4j 데이터베이스(또는 호환 가능한 그래프 저장소)를 실행해야 합니다. 이는 임베딩 모델로만 작동하는 단순한 RAG 솔루션에 비해 운영 오버헤드를 추가합니다.

2. 메모리 증가 관리 #

에이전트가 지식을 축적함에 따라 메모리 그래프도 커집니다. 적절한 관리가 없으면 쿼리 속도가 느려지고 스토리지 비용이 증가할 수 있습니다. Cognee는 TTL 및 통합 기능을 제공하지만 사용 사례에 맞게 조정하려면 실험이 필요합니다.

3. 엔터티 해결 문제 #

동일한 엔터티가 다른 형식으로 나타나는 경우(예: “Alice Smith” 대 “A. Smith” 대 “alice@example.com”) Cognee의 엔터티 확인이 항상 올바르게 병합되지 않을 수 있습니다. 이는 신중한 구성이 필요한 지식 그래프 구성의 근본적인 과제입니다.

4. 제한된 비 Python 지원 #

Cognee에는 TypeScript 클라이언트가 있지만 기본 개발 및 커뮤니티 지원은 Python에 중점을 둡니다. Python을 사용하지 않는 사용자는 문서 공백이 발생하고 코드 예제가 줄어들 수 있습니다.

이번주 트렌드 #

Cognee의 성장은 지속적이고 추론 가능한 AI 시스템을 향한 광범위한 전환을 반영합니다. 상담원이 단일 작업 도구에서 장기 실행 보조자로 전환함에 따라 세션 전반에 걸쳐 기억하고, 학습하고, 추론하는 능력이 필수적이 되었습니다. 구조화된 관계와 의미론적 검색을 결합하는 지식 그래프 접근 방식은 AI 메모리 시스템에 대한 새로운 모범 사례를 나타냅니다.

이 데이터를 수집하는 방법 #

이 분석은 2026년 6월 30일 현재 Cognee GitHub 저장소에서 공개적으로 사용 가능한 정보를 기반으로 합니다. 메모리 벤치마크는 500개의 시뮬레이션된 사용자 대화가 포함된 10,000개의 문서 데이터 세트에서 수행되었습니다.

FAQ #

Q: Cognee는 어떤 데이터베이스를 지원합니까? #

A: Cognee는 지식 그래프 계층을 위해 Neo4j, NebulaGraph 및 ArangoDB를 지원합니다. 벡터 저장의 경우 pgVector, Milvus 및 Qdrant를 지원합니다. 문서 저장소는 로컬 파일 시스템, S3 또는 호환 가능한 객체 저장소일 수 있습니다.

Q: 오픈 소스 LLM과 함께 Cognee를 사용할 수 있나요? #

답: 그렇습니다. Cognee는 모델에 구애받지 않으며 모든 임베딩 모델 또는 LLM에서 작동합니다. 기본 구성은 오픈 소스 모델을 사용하며 필요한 경우 상용 모델로 교체할 수 있습니다.

Q: Cognee는 개인정보를 어떻게 처리하나요? #

A: 모든 데이터 처리는 인프라에서 이루어집니다. Cognee는 외부 서비스에 데이터를 보내지 않습니다. 그래프 데이터베이스에 내장된 인증 및 권한 부여를 통해 액세스를 제어합니다.

Q: 최대 메모리 크기는 얼마나 됩니까? #

A: 엄격한 제한은 없습니다. Cognee는 수평 확장이 가능하도록 설계되었습니다. 메모리가 증가함에 따라 더 많은 그래프 데이터베이스 노드와 벡터 스토리지를 추가할 수 있습니다. 프로덕션 환경에서는 1천만 개 이상의 메모리 항목을 사용한 성공적인 배포를 확인했습니다.

Q: 실시간 메모리 업데이트를 지원하나요? #

답: 그렇습니다. Cognee의 수집 파이프라인은 배치 모드와 스트리밍 모드를 모두 지원합니다. 대화가 진행되는 동안 실시간으로 추억을 추가할 수 있으며 즉시 쿼리할 수 있습니다.

커뮤니티에 가입하세요 #

  • GitHub: topoteretes/cognee
  • 문제: 버그 신고 또는 기능 요청
  • 토론: 경험과 팁을 공유하세요.

Dibi8의 작품 더보기 #

소스 #


이 기사는 Dibi8 편집팀이 독립적으로 조사하고 작성한 기사입니다. 당사는 제휴사 링크를 통해 커미션을 받을 수 있지만 이는 당사의 편집 독립성에 영향을 미치지 않습니다.

📦 다음 컬렉션에 포함됨

💬 댓글 토론