05-infrastructure-graph-relationships
Dec 7, 2025
Graph Relationship Schema
코드:
lib/graph/relationships.ts
개요
FalkorDB에서 관계(엣지)를 생성하고 관리하기 위한 스키마와 헬퍼 함수입니다.
관계 분류
분류 | 생성 방식 | 예시 |
|---|---|---|
Implicit | 자동 추론 (구조적 속성) | SAME_THREAD, SIMILAR_CONTENT |
Explicit | LLM 추출 | MENTIONS, ASSIGNED_TO |
Implicit Relationships (암시적 관계)
구조적 속성에서 자동으로 추론되는 관계입니다.
엣지 레이블
Label | 설명 | 강도(strength) |
|---|---|---|
| 같은 이메일 스레드 | 1.0 (확정) |
| 같은 발신자 | 0.8 |
| 같은 엔티티 언급 | 0.7 |
| 시간적 인접 | 0.1~1.0 (시간 차이에 따라) |
| 내용 유사 (임베딩) | 0.5~1.0 (유사도) |
프로퍼티
사용 예시
Explicit Relationships (명시적 관계)
LLM이 이메일 내용에서 추출한 관계입니다.
엣지 레이블
Label | 설명 | Source → Target |
|---|---|---|
| A는 B의 일부 | Task → Memory, Memory → Thread |
| A가 B를 언급 | Memory → Entity/Person |
| A가 B를 참조 | Memory → Memory |
| A는 B의 후속 | Memory → Memory |
| A와 B가 상충 | Memory → Memory |
| A가 B를 갱신 | Memory → Memory |
| 태스크 할당 | Task → Person |
| A에 B가 관련됨 | Memory → Person |
| A가 B에 속함 | Memory → Thread |
| A가 B에서 근무 | Person → Entity |
| A가 B를 생산 | Entity → Entity |
프로퍼티
사용 예시
엣지 인덱스
관계 쿼리 성능을 위한 인덱스입니다.
Label | Property | 용도 |
|---|---|---|
| strength | 강도 필터링 |
| strength | 강도 필터링 |
| strength | 강도 필터링 |
| strength | 강도 필터링 |
| strength | 강도 필터링 |
| similarityScore | 유사도 필터링 |
| confidence | 신뢰도 필터링 |
| confidence | 신뢰도 필터링 |
| confidence | 신뢰도 필터링 |
| confidence | 신뢰도 필터링 |
| confidence | 신뢰도 필터링 |
| confidence | 신뢰도 필터링 |
인덱스 초기화
쿼리 패턴
특정 타입의 관계 조회
관련 메모리 탐색
사람 중심 탐색
설계 결정
왜 strength와 confidence를 분리했는가?
strength: 암시적 관계의 강도 (구조적으로 계산)
confidence: 명시적 관계의 LLM 추출 신뢰도
둘은 의미가 다르므로 분리하여 명확성 확보.
왜 MERGE 헬퍼를 제공하는가?
중복 관계 방지를 위해. 예를 들어, 같은 스레드의 두 메모리 사이에 SAME_THREAD 관계가 여러 번 생성되는 것을 방지.
다음 문서
벡터 인덱스 - 임베딩 기반 유사도 검색 (예정)
TypeScript 관계 타입 - 타입 정의