나는 Hebbian learning과 GraphRAG를 이용한 지속 메모리 MCP를 구축했다
Source: Dev.to
문제
AI 코딩 어시스턴트는 세션 간에 모든 것을 잊어버립니다. 매 대화가 처음부터 시작됩니다. 아키텍처, 패턴, 선호도를 설명해도 다음 번에는 사라집니다.
Cuba‑Memorys는 PostgreSQL을 백엔드로 하는 지식 그래프를 이용해 AI 에이전트에게 지속적인 장기 기억을 제공하는 MCP 서버로 이 문제를 해결합니다. 쿠바 테마 이름을 가진 12개의 도구를 제공합니다.
- 엔티티, 관찰, 타입이 지정된 관계가 세션을 넘어 지속됩니다. AI는 프로젝트, 결정, 패턴 및 그들 간의 연결을 기억합니다.
- “함께 발화하는 뉴런은 함께 연결된다” — 기억은 사용에 따라 강화(Oja 규칙)되고, FSRS 간격 반복(Anki 뒤에 있는 알고리즘)으로 적응적으로 사라집니다.
- 단순 키워드 매칭이 아닙니다. Cuba‑Memorys는 네 가지 검색 신호를 결합합니다:
- TF‑IDF 유사도
- PostgreSQL 전체 텍스트 검색
- 트라이그램 매칭
- 선택적
pgvectorHNSW 임베딩
결과는 Reciprocal Rank Fusion을 사용해 최대 재현율로 순위가 매겨집니다.
🕸️ GraphRAG 강화
상위 검색 결과는 자동으로 1차 그래프 이웃으로 확장되어 AI에게 위상적 컨텍스트를 제공합니다 — 단순 텍스트 매칭이 아니라.
🛡️ 환각 방지 근거 제공
저장된 지식과 대조해 주장을 검증하고 단계별 신뢰 점수를 부여합니다: verified → partial → weak → unknown. AI는 답변 전에 스스로 사실 확인을 할 수 있습니다.
😴 REM 수면 통합
15분간 비활성 상태가 되면 시스템이 자동으로 유지 보수를 수행합니다: 적응형 감쇠, 중복 제거, 기억 통합. AI 기억에 대한 생물학적 수면과 같습니다.
📊 그래프 분석
- PageRank — 가장 중요한 엔티티 찾기
- Louvain 커뮤니티 — 지식 클러스터 발견
- Betweenness centrality — 연결 고리 개념 식별
12가지 도구
| Tool | Purpose (목적) |
|---|---|
cuba_alma | 지식 그래프 엔티티 CRUD |
cuba_cronica | 엔티티에 관찰 첨부 |
cuba_puente | 관계 생성/탐색 |
cuba_faro | 환각 방지 검색 |
cuba_alarma | 오류 보고 및 추적 |
cuba_expediente | 과거 오류 검색 (반복 방지) |
cuba_remedio | 오류를 해결됨으로 표시 |
cuba_eco | RLHF 피드백 루프 |
cuba_decreto | 아키텍처 결정 기록 |
cuba_jornada | 세션 관리 |
cuba_vigia | 그래프 분석 |
cuba_zafra | 기억 유지 보수 |
빠른 시작
{
"mcpServers": {
"cuba-memorys": {
"command": "python",
"args": ["-m", "cuba_memorys"],
"env": {
"DATABASE_URL": "postgresql://user:pass@localhost:5432/brain"
}
}
}
}
데이터베이스는 필요 시 Docker를 통해 자동 프로비저닝됩니다. 수동 설정이 전혀 필요 없습니다.
왜 “Cuba”?
도구들은 쿠바 스페인어 단어에서 따왔습니다 — alma (영혼), crónica (연대기), faro (등대), remedio (치료제). 개인 프로젝트로 시작했으며 이름이 고정되었습니다.
링크
- GitHub:
- PyPI:
pip install cuba-memorys - License: CC BY‑NC 4.0
유용하다고 생각되시면 GitHub에 ⭐를 남겨 주세요. 피드백과 기여를 언제든 환영합니다!