RAG를 조금 고치는 수준이 아니라, 에이전트가 계속 학습하는 메모리와 지식 인프라를 별도 엔진으로 분리하자는 방향의 프로젝트입니다.
Cognee란?
Cognee는 AI 에이전트 메모리를 위한 오픈소스 knowledge engine입니다.
프로젝트 설명을 보면 핵심은 명확합니다. 각종 문서와 데이터를 어떤 형식으로든 받아들여, 그 내용을 단순 벡터 검색 대상으로만 두지 않고 의미 기반 검색 + 관계 기반 연결 + 지속 학습 가능한 컨텍스트 계층으로 바꾸겠다는 것입니다.
즉 Cognee는 단순한 문서 검색 라이브러리가 아니라, 에이전트가 장기적으로 쓸 수 있는 memory / knowledge infrastructure에 가깝습니다.
- GitHub: https://github.com/topoteretes/cognee
- 포지션: AI agent memory / knowledge engine
- 핵심 키워드: vector search, graph database, persistent memory, context management
왜 주목할 만한가?
1. 벡터 검색만으로는 부족하다는 문제의식이 뚜렷함
일반적인 RAG는 문서를 쪼개 임베딩하고, 질문이 들어오면 비슷한 조각을 찾는 흐름이 많습니다. 이 방식은 빠르고 단순하지만, 시간이 지날수록 관계 구조와 문맥 진화를 반영하기 어려운 경우가 많습니다.
Cognee는 이 지점을 파고듭니다. 설명에 따르면 이 프로젝트는
- 벡터 검색,
- 그래프 데이터베이스,
- cognitive science 접근 을 결합해, 문서가 단순 검색 대상이 아니라 관계와 진화가 보존되는 지식 구조가 되게 하려 합니다.
2. ‘지속 학습하는 에이전트’에 초점이 맞춰져 있음
Cognee는 단순 지식 저장소가 아니라, Persistent and Learning Agents를 명시적으로 강조합니다. 즉
- 피드백으로부터 학습하고,
- 컨텍스트를 관리하고,
- 여러 에이전트 간 지식을 공유하고,
- 시간이 지나도 지식 기반이 살아 있게 하려는 방향입니다.
이 점 때문에 Cognee는 일반 RAG 툴보다 agent memory infrastructure에 더 가깝게 느껴집니다.
3. 신뢰성과 추적성까지 같이 밀고 있음
README는 다음 요소도 강조합니다.
- user/tenant isolation
- traceability
- OTEL collector
- audit traits
즉 단순 기능 데모를 넘어서, 실서비스나 멀티테넌트 환경에서 필요한 격리, 관찰성, 감사 가능성을 염두에 둔 구조를 지향합니다. 이것은 “에이전트를 오래 운영할 사람들”에게 꽤 중요한 신호입니다.
핵심 동작 방식
README를 기준으로 보면 Cognee의 큰 흐름은 다음과 같습니다.
- 데이터를 추가한다
- 그것을 knowledge engine에 적재하고 변환한다
- 벡터/그래프 관계를 함께 활용해 검색한다
- 결과를 에이전트가 쓸 수 있는 memory/context로 사용한다
가장 간단한 예시는 다음과 같습니다.
import cognee
import asyncio
async def main():
await cognee.add("Cognee turns documents into AI memory.")
await cognee.cognify()
results = await cognee.search("What does Cognee do?")
asyncio.run(main())
여기서 중요한 건 단순 add/search가 아니라,
중간의 cognify()가 데이터를 에이전트가 쓸 수 있는 지식 구조로 정제하는 과정처럼 보인다는 점입니다.
CLI도 제공합니다.
cognee-cli add "Cognee turns documents into AI memory."
cognee-cli cognify
cognee-cli search "What does Cognee do?"
즉 라이브러리와 CLI 양쪽에서 접근 가능한 구조입니다.
에이전트 하네스 아키텍처 관점에서 보면
Cognee를 가장 잘 이해하는 방법은, 이 프로젝트를 “대답 잘하는 챗봇”이 아니라 에이전트 하네스 아래에 붙는 메모리/지식 계층으로 보는 것입니다.
구조를 단순화하면 이렇게 볼 수 있습니다.
사용자 / 앱 / 메신저
↓
에이전트 하네스 (planner / tool runner / session manager)
↓
Cognee
(ingestion / cognify / vector+graph retrieval / memory layer)
↓
LLM / tool execution / final response
계층별 역할
-
에이전트 하네스
- 어떤 정보가 필요한지 판단
- 언제 지식을 적재하고, 언제 검색할지 결정
- 여러 도구 호출과 메모리 조회를 조합
-
Cognee
- 다양한 형식의 데이터를 받아들이고
- 그것을 검색 가능한 지식 구조로 변환하며
- 벡터+그래프 기반으로 관련 문맥을 반환하고
- 장기 메모리/지식 엔진처럼 동작
-
LLM / 실행 계층
- Cognee가 제공한 문맥을 바탕으로 답변 생성
- 혹은 추가 작업 수행
왜 하네스와 잘 맞는가?
에이전트 시스템이 커질수록 중요한 건 더 긴 프롬프트가 아니라, 좋은 컨텍스트 운영 계층입니다.
Cognee는 바로 이 구간에 들어갑니다. 즉,
- 자료 적재
- 관계 기반 연결
- 메모리 검색
- 다중 에이전트 지식 공유
- 피드백 기반 학습
을 별도의 knowledge engine으로 떼어내어, 상위 에이전트 하네스가 이를 재사용하게 만드는 구조입니다.
이 관점에서 보면 Cognee는 “에이전트 앱” 그 자체가 아니라, 에이전트 앱들이 공통으로 기대는 기억/지식 인프라 부품이라고 보는 편이 맞습니다.
블로그 자동화 같은 흐름과도 연결되는 이유
전하께서 말씀하신 “블로그 자동화도 섞여 있다”는 감각이 여기서 생깁니다. 실제로 블로그 자동화, 업무 자동화, 리서치 에이전트, 코딩 에이전트는 전부
- 자료를 넣고
- 관계를 찾고
- 필요한 문맥을 꺼내고
- 결과를 생성하는 구조를 공유합니다.
Cognee는 바로 그 공통 기반을 담당하려는 프로젝트라, 겉보기엔 RAG 같아도 실제로는 automation-friendly memory substrate에 더 가깝습니다.
설치와 실행
README 기준 기본 요구사항은 다음과 같습니다.
- Python 3.10 ~ 3.13
- OpenAI 호환 API 키 또는 다른 LLM provider 설정
설치는 간단합니다.
uv pip install cognee
환경 변수 예시:
import os
os.environ["LLM_API_KEY"] = "YOUR OPENAI_API_KEY"
또는 .env 파일 템플릿을 사용할 수 있습니다.
로컬 UI도 제공합니다.
cognee-cli -ui
즉 빠르게 라이브러리로 붙여도 되고, CLI나 로컬 UI를 통해 개발·검증 흐름을 잡아도 됩니다.
어떤 사람에게 맞는가?
잘 맞는 경우
- 에이전트 메모리 계층을 별도로 설계하고 싶은 팀
- 단순 벡터 검색을 넘어서 그래프 기반 연결이 필요한 팀
- 여러 에이전트가 지식을 공유하는 구조를 만들고 싶은 팀
- traceability, auditability, tenant isolation이 중요한 팀
덜 맞는 경우
- 아주 단순한 단일 문서 챗봇이면 충분한 경우
- 장기 메모리보다 일회성 검색만 필요한 경우
- graph/vector 복합 구조를 운영할 만큼 복잡도를 감당하기 싫은 경우
즉 Cognee는 가벼운 RAG 데모보다, 장기 운영형 에이전트 시스템을 고민하는 사람에게 더 매력적인 프로젝트입니다.
한 줄 총평
Cognee는 “문서를 잘 찾는 도구” 정도로 보면 과소평가하게 됩니다.
오히려 이것은, 에이전트가 계속 학습하고 기억을 공유하며 신뢰 가능한 문맥을 유지하도록 돕는 knowledge/memory engine에 가깝습니다.
에이전트 하네스 아키텍처에서 메모리 계층을 진지하게 다루는 사람이라면, 한 번쯤 깊게 들여다볼 가치가 충분한 프로젝트입니다.