readme

Dec 7, 2025

Momo Memory Engine Documentation

Gmail 기반 Memory-as-a-Tool 시스템의 설계 문서입니다.

읽는 순서

이 문서는 순서대로 읽는 것을 권장합니다.

1. 핵심 개념 (01-concepts/)

시스템을 이해하기 위한 기본 개념들:

  • overview.md - 전체 시스템 개요

  • graph-model.md - 왜 그래프 DB를 선택했는가

  • memory-vs-email.md - 이메일과 메모리의 차이

2. 타입 정의 (02-types/)

그래프 노드의 타입 정의와 설계 이유:

  • base.md - 기본 타입과 enum 정의

  • memory.md - MemoryNode 스키마

  • person.md - PersonNode 스키마

  • thread.md - ThreadNode 스키마

  • entity.md - EntityNode 스키마

  • task.md - TaskNode 스키마

3. 관계 정의 (03-relationships/)

노드 간 관계(Edge) 타입:

  • implicit.md - 암시적 관계 (자동 추론)

  • explicit.md - 명시적 관계 (LLM 추출)

4. 비즈니스 규칙 (04-rules/)

시스템 동작 규칙:

  • importance-scoring.md - 중요도 점수 산정

  • conflict-resolution.md - 충돌 해결 규칙

5. 인프라 (05-infrastructure/)

데이터베이스 및 외부 서비스 연결:

  • falkordb.md - FalkorDB 연결 및 설정

  • graph-schema.md - 그래프 스키마 및 인덱스

  • graph-relationships.md - 관계(엣지) 스키마 및 헬퍼

  • vector-index.md - 벡터 인덱스 및 유사도 검색

6. 통합 엔진 (06-consolidation/)

메모리 통합 및 결정 트리 로직:

  • decision-tree.md - 결정 트리 로직 (CREATE/UPDATE/SKIP/DELETE)

  • experiment-guide.md - 실험 방법론 및 검증 프로세스

  • experiment-improvements.md - TEN-311 실험 개선 계획 (현재 브랜치)

  • realistic-dataset-design.md - 개선 #1: 현실적인 테스트 데이터셋

  • contextual-similarity.md - 개선 #2: 맥락 기반 유사도 분석

  • update-vs-link-distinction.md - 개선 #3: UPDATE vs LINK 구분

  • version-history-management.md - 개선 #4: 버전 히스토리 관리

7. 추출 파이프라인 (07-extraction/)

이메일에서 구조화된 메모리 추출:

  • README.md - 파이프라인 개요 및 성과

  • 01-pipeline-overview.md - 전체 파이프라인 흐름

  • 02-domain-classification.md - 도메인 분류 및 Constitutional AI

  • 03-validation-framework.md - LLM-as-a-Judge 검증

  • 04-results.md - 실험 결과 (88% accuracy)

코드와의 매핑

문서

코드

docs/02-types/base.md

lib/types/base.ts

docs/02-types/memory.md

lib/types/nodes/memory.ts

docs/02-types/similarity.md

lib/types/similarity.ts

docs/04-rules/importance-scoring.md

lib/rules/importance.ts

docs/04-rules/conflict-resolution.md

lib/rules/conflict.ts

docs/05-infrastructure/falkordb.md

lib/graph/client.ts, lib/graph/config.ts

docs/05-infrastructure/graph-schema.md

lib/graph/schema.ts

docs/05-infrastructure/graph-relationships.md

lib/graph/relationships.ts

docs/05-infrastructure/vector-index.md

lib/graph/vector.ts

docs/06-consolidation/decision-tree.md

lib/consolidation/engine.ts, lib/consolidation/decisions/

docs/06-consolidation/realistic-dataset-design.md

.data/experiments/datasets/v2/, lib/extraction/noise-filter.ts

docs/06-consolidation/contextual-similarity.md

lib/consolidation/semantic-decomposition.ts, lib/consolidation/contextual-similarity.ts

docs/06-consolidation/update-vs-link-distinction.md

lib/consolidation/property-change-detector.ts, lib/consolidation/dynamic-weights.ts

docs/06-consolidation/version-history-management.md

lib/storage/version-manager.ts, lib/types/memory-version.ts

docs/07-extraction/01-pipeline-overview.md

scripts/validate-extraction.ts

docs/07-extraction/02-domain-classification.md

scripts/prompts/extraction-prompt.ts

docs/07-extraction/03-validation-framework.md

scripts/prompts/judge-prompt.ts

기여 가이드

새로운 코드를 작성할 때는 반드시 해당하는 문서도 함께 작성합니다.

문서에는 다음 내용이 포함되어야 합니다:

  1. 이렇게 설계했는가 (design rationale)

  2. 대안은 무엇이었고 왜 선택하지 않았는가

  3. 실제 사용 예시

  4. 관련 개념과의 연결