# GraphRAG & Knowledge Graph Memory (지식 그래프 메모리)

## 📌 Brief Summary
GraphRAG는 전통적인 벡터 기반 RAG의 한계를 극복하기 위해, 지식을 엔티티(Entity)와 그들 간의 관계(Relationship)로 이루어진 그래프 구조로 구축하고 탐색하는 진화된 검색 및 메모리 기술이다. 에이전트가 단편적인 정보를 찾는 것을 넘어, 복잡한 인과 관계, 도메인의 전체적인 맥락, 그리고 다단계(Multi-hop) 추론이 필요한 지식을 효과적으로 활용할 수 있게 한다.

## 📖 Core Content
*   **벡터 RAG와의 차이**: 벡터 RAG가 '의미적 유사성'을 기반으로 조각난 텍스트를 찾는다면, GraphRAG는 '논리적 연결성'을 기반으로 지식의 망(Mesh)을 탐색한다.
*   **엔티티 및 관계 추출 (Indexing)**: 비정형 데이터(문서)로부터 핵심 개념(노드)과 그들 사이의 관계(엣지)를 추출하여 지식 그래프를 생성한다.
*   **커뮤니티 요약 (Community Summarization)**: 그래프 내의 밀접하게 연결된 노드 그룹(커뮤니티)을 식별하고, 각 그룹의 상위 맥락을 요약하여 대규모 데이터셋에 대한 하향식(Top-down) 이해를 제공한다.
*   **다단계 추론 (Multi-hop Retrieval)**: "A의 특징이 B에게 미치는 영향은?"과 같은 질문에 대해 A -> 연결고리 -> B로 이어지는 경로를 추적하여 답변의 근거를 마련한다.
*   **지식 그래프 메모리 (S-component)**: 에이전트의 작업 이력을 단순 로그가 아닌 그래프 구조로 기록함으로써, 과거의 결정이 현재 작업에 미치는 복잡한 영향력을 추적하기 용이하게 한다.

## ⚖️ Trade-offs & Caveats
*   **구축 오버헤드**: 지식 그래프를 생성하고 유지하는 과정(ETL)에서 벡터 임베딩보다 훨씬 많은 추론 자원과 비용이 소모된다.
*   **복잡한 스키마 설계**: 도메인에 맞는 적절한 노드와 관계의 종류(Ontology)를 정의하는 과정에서 인간의 설계 역량이 요구될 수 있다.
*   **조회 지연**: 그래프 순회(Traversal)와 하이브리드 검색(Vector + Graph)을 수행하는 과정에서 답변 생성 시간이 길어질 수 있다.

## 🔗 Knowledge Connections

### Related Concepts
*   [[Retrieval-Augmented Generation (RAG)|Retrieval-Augmented Generation (RAG)]]
    *   연결 이유: GraphRAG는 RAG 기술의 고급 진화 형태이다.
*   [[Agent Memory System|Agent Memory System]]
    *   연결 이유: 그래프 구조는 에이전트의 복잡한 상태와 지식을 저장하는 가장 강력한 S-component 구현 방식 중 하나이다.
*   [[Semantics & Ontology|Semantics & Ontology]]
    *   연결 이유: 그래프를 설계하고 해석하는 학문적/기술적 토대이다.

### Deeper Research Questions
*   에이전트가 실행 도중 지식 그래프에 새로운 노드와 관계를 실시간으로 추가할 때 발생하는 '지식 일관성' 문제를 어떻게 해결할 것인가?
*   수백만 개의 노드를 가진 그래프에서 현재 질문과 가장 관련 있는 '서브그래프(Subgraph)'만을 효율적으로 추출하는 알고리즘은 무엇인가?
*   자연어 질문을 그래프 쿼리(Cypher, Gremlin)로 변환하는 과정에서 발생하는 모호성을 최소화하는 프롬프트 전략은 무엇인가?

### Practical Application Contexts
*   **Implementation:** Neo4j나 PuppyGraph와 같은 그래프 DB를 활용하여 지식 베이스를 구축하고, 에이전트가 이를 쿼리할 수 있는 도구를 제공한다.
*   **System Design:** 대규모 소프트웨어 프로젝트 분석 시, 파일 간의 의존성, 함수 호출 관계, 클래스 계층 구조를 지식 그래프로 만들어 에이전트가 전체 구조를 파악하며 코딩하게 한다.

---
*Last updated: 2026-05-01*
