Agentic KG 직접 구축 + 도메인별 활용 사례: 코퍼스에서 에이전트까지
들어가며
이 글은 Agentic Knowledge Graph Curriculum의 8단계이자 시리즈의 피날레입니다. 1~7단계에서 우리는 조각들을 하나씩 벼렸습니다 — 왜 그래프인지(1), 어떻게 저장·질의하는지(2), 어떻게 짓는지(3·4), 어떻게 검색·추론하는지(5·6), 어떻게 에이전트의 도구·기억이 되는지(7). 이 글은 그 조각들을 하나의 파이프라인으로 꿰고, 그것이 각 도메인에서 어떻게 변주되는지 집대성합니다.
핵심 메시지는 하나입니다 — 아키텍처는 하나, 변주는 도메인마다. 코퍼스에서 시작해 에이전트로 끝나는 뼈대는 헬스케어든 금융이든 같고, 달라지는 것은 그 위에 얹는 스키마와 던지는 질문뿐입니다. 하나를 제대로 지으면 나머지가 보입니다.
📌 이 글에서 다루는 내용
- end-to-end 구축: 코퍼스→LLM 추출→그래프 적재→GraphRAG·추론→에이전트 write-back으로 이어지는 파이프라인을 개념과 핵심 코드 스니펫으로 조립, 단계별 함정
- 도메인별 활용 사례 집대성: 헬스케어·금융·보안·엔터프라이즈·추천·법률·개인 메모리 — 각 도메인의 스키마·질문·아키텍처 변주
- 한계·운영·다음 단계: 확장성·최신성·환각·거버넌스, 프로덕션으로 가는 체크리스트
한눈에 보기 — 하나로 꿴 파이프라인
시리즈 전체를 하나의 그림으로 닫습니다. 각 단계가 파이프라인의 한 칸을 맡고, write-back 고리가 그래프를 살아있게 합니다.
flowchart TD
CORPUS["비정형 코퍼스<br/>문서·리포트·로그"] --> EXTRACT["LLM 추출 · 4단계<br/>스키마 유도 · 검증"]
EXTRACT --> LOAD["그래프 DB 적재 · 2단계<br/>Neo4j · Cypher"]
LOAD --> INDEX["GraphRAG 인덱싱 · 5단계<br/>커뮤니티 요약"]
LOAD --> INFER["임베딩·추론 · 6단계<br/>링크 예측"]
INDEX --> AGENT["에이전트 · 7단계<br/>검색·추론·행동"]
INFER --> AGENT
AGENT -->|"질의: NL→Cypher"| LOAD
AGENT -->|"write-back: 새 사실"| LOAD
AGENT --> ANSWER["근거 있는 답변 · 행동"]
ANSWER --> DOMAINS["도메인 적용<br/>헬스케어·금융·보안·…"]
이 그림의 좌표는 하나입니다 — 모든 단계가 그래프(LOAD)를 중심으로 돌고, 에이전트가 그것을 읽고 쓰며 살아있게 한다는 것. 이것이 이 시리즈가 8단계에 걸쳐 세운 그림의 전부입니다.
end-to-end 구축 — 코퍼스에서 에이전트까지
개념 코드로 파이프라인을 조립해 봅니다. 각 스니펫은 앞 단계들에서 익힌 것의 요점입니다.
① 코퍼스 → 트리플 (4단계)
스키마를 제약한 LLM 추출로 문서에서 그래프 문서를 뽑습니다.
from langchain_experimental.graph_transformers import LLMGraphTransformer
transformer = LLMGraphTransformer(
llm=llm,
allowed_nodes=["환자", "질환", "약물", "검사"], # 도메인 스키마 (여기선 헬스케어)
allowed_relationships=["진단", "처방", "부작용"],
strict_mode=True,
)
graph_docs = transformer.convert_to_graph_documents(documents)
함정 — 청크 경계에서 사실이 잘리면 관계가 소실됩니다. 청킹은 문맥을 넉넉히, 그리고 각 트리플에 출처 근거를 함께 뽑아 검증에 대비합니다.
② 트리플 → 그래프 DB (2단계)
추출·검증·엔티티 해소를 거친 트리플을 그래프 DB에 적재합니다.
neo4j_graph.add_graph_documents(graph_docs) # 엔티티 해소로 같은 개체는 병합
# 제약으로 무결성 확보 (3단계의 기본키)
# CREATE CONSTRAINT patient_id IF NOT EXISTS
# FOR (p:환자) REQUIRE p.id IS UNIQUE;
함정 — 여기서 엔티티 해소를 건너뛰면 같은 환자가 여러 노드로 쪼개져 다중 홉 질의가 끊깁니다.
③ 그래프 → 에이전트 도구 (5·6·7단계)
GraphRAG 검색과 그래프 질의를 에이전트 도구로 등록하고, write-back까지 엮습니다.
tools = [
graph_query, # NL→Cypher 탐색 (7단계)
graphrag_local, # 개체 이웃 검색 (5단계)
graphrag_global, # 커뮤니티 요약 종합 (5단계)
predict_link, # 링크 예측 (6단계)
]
def remember(fact: dict):
"""새로 확인된 사실을 유효 기간과 함께 write-back (7단계)."""
neo4j.run(
"MERGE (a {id:$s})-[r:REL {type:$t, valid_from:$now}]->(b {id:$o})",
**fact,
)
agent = build_agent(llm, tools=tools + [remember])
함정 — write-back에 신뢰도·출처를 남기지 않으면, 잘못 써 넣은 한 사실이 이후 모든 답을 오염시킵니다. 중요한 갱신엔 휴먼인더루프를 둡니다.
이 세 조각이 한눈에 보기의 그림을 코드로 옮긴 것입니다. 도메인이 바뀌어도 이 뼈대는 그대로이고, allowed_nodes/allowed_relationships의 스키마와 에이전트가 답하는 질문만 달라집니다.
도메인별 활용 사례 집대성
이제 각 단계에서 예고한 사례들을 한자리에 모읍니다. 모두 위 파이프라인의 변주 — 스키마와 질문만 다를 뿐임을 눈여겨보세요.
| 도메인 | 스키마(노드·관계) | 대표 질문 / 에이전트 행동 | 특히 중요한 단계 |
|---|---|---|---|
| 헬스케어·바이오 | 약물·질환·유전자·논문 / 진단·처방·상호작용 | 약물 재창출 후보 예측, 환자 360° 그래프, 근거 추적 리서치 에이전트 | 6(링크 예측)·4(검증) |
| 금융 | 계좌·거래·법인 / 이체·소유·지배 | 자금세탁 고리·위장 계좌 탐지, 리스크 전파, 제재 대상 엔티티 해소 | 1(다중 홉)·3(엔티티 해소) |
| 사이버보안 | 자산·취약점·공격·행위자 / 노출·악용·연관 | 공격 경로 추론, 위협 인텔리전스 그래프, 침해 조사 에이전트 | 6(경로 추론)·7(에이전트) |
| 엔터프라이즈 지식·고객지원 | 문서·티켓·제품·팀 / 참조·해결·소속 | 근거 있는 사내 Q&A, 온보딩·지원 에이전트 | 5(GraphRAG)·7 |
| 추천·이커머스 | 사용자·상품·속성 / 구매·조회·유사 | 설명 가능한 추천, 함께 사는 상품, 경로 기반 근거 | 6(링크 예측)·1 |
| 법률·컴플라이언스 | 계약·조항·판례·규정 / 인용·상충·적용 | 다중 홉 근거 추적, 컴플라이언스 점검 에이전트 | 5·7·4(검증) |
| 개인·에이전트 메모리 | 사용자·선호·사건·사람 / 언급·선호·관계 | 시간에 걸쳐 자라는 장기 기억, “언제부터 바뀌었지?” | 7(temporal KG) |
두 가지가 보입니다. 첫째, 금융·헬스케어처럼 잘못이 규제·안전으로 직결되는 도메인일수록 엔티티 해소와 검증(3·4단계)의 무게가 큽니다. 둘째, 연결·종합이 본질인 도메인(지식 Q&A·법률)은 GraphRAG(5단계)가, 예측이 본질인 도메인(추천·신약)은 임베딩·추론(6단계)이, 시간이 본질인 도메인(개인 메모리)은 temporal KG(7단계)가 무게중심입니다. 같은 뼈대 위에서 어느 단계에 힘을 싣느냐가 도메인을 가릅니다.
한계·운영·다음 단계 — 프로덕션 체크리스트
Agentic KG를 실제로 굴리려면 넘어야 할 벽이 있습니다.
- 확장성: 그래프가 커지면 커뮤니티 재계산·다중 홉 질의 비용이 오릅니다. 인덱싱 주기, 질의 깊이 제한, 그래프 파티셔닝을 설계합니다.
- 최신성(freshness): 5단계의 GraphRAG 인덱싱은 무겁습니다. 코퍼스가 자주 바뀌면 증분 갱신(전체 재인덱싱 대신 바뀐 부분만)이 필수입니다. 7단계의 write-back이 이 증분성과 만납니다.
- 환각·정확성: LLM 추출과 text-to-Cypher는 틀릴 수 있습니다. 출처 근거·스키마 검증·근거 경로 제시를 기본값으로 둡니다.
- 거버넌스·보안: 누가 어떤 노드·관계를 볼 수 있는가(접근 제어), 사실의 출처·계보, 개인정보. 이 주제의 깊은 결은 자매 시리즈 Ontology의 거버넌스 단계와 통합니다.
- 평가: 에이전트의 답을 무엇으로 채점하는가 — 근거 경로의 정확성, 검색 재현율, write-back의 신뢰도. 평가 없이는 개선도 없습니다.
이 체크리스트가 “돌아가는 데모”와 “믿고 쓰는 시스템”을 가릅니다.
정리 — 시리즈를 닫으며
- 아키텍처는 하나입니다: 코퍼스 → LLM 추출 → 그래프 DB → GraphRAG·추론 → 에이전트 write-back. 이 뼈대가 8단계 전체의 결론입니다.
- 변주는 도메인마다입니다. 헬스케어·금융·보안·지원·추천·법률·개인 메모리는 스키마와 질문이 다를 뿐, 같은 파이프라인의 변주입니다.
- 어느 단계에 힘을 싣느냐가 도메인을 가릅니다: 규제·안전이면 엔티티 해소·검증, 연결·종합이면 GraphRAG, 예측이면 임베딩·추론, 시간이면 temporal KG.
- 프로덕션은 체크리스트의 문제입니다. 확장성·최신성·환각·거버넌스·평가를 넘어야 데모가 시스템이 됩니다.
이로써 Agentic-Knowledge-Graph 시리즈를 닫습니다. 지식 그래프가 무엇이며 왜 그래프인지에서 출발해, LLM으로 짓고 GraphRAG·추론으로 지능을 얹고, 에이전트의 도구·기억으로 살아있게 하는 전 여정을 8단계로 걸었습니다. 도구와 라이브러리는 바뀌겠지만 — 문서를 그래프로 짓고, 그 위에서 검색·추론하고, 에이전트가 도구·기억으로 삼아 읽고 쓴다는 뼈대는 오래 갑니다. 이제 여러분의 도메인에서, 여러분의 스키마로 이 뼈대를 세울 차례입니다.
다음 학습 (Next Learning)
- Agentic Knowledge Graph Curriculum — 완주한 8단계 로드맵으로 돌아가 전체를 조망
- 7단계 · Agentic Knowledge Graph — 이 파이프라인의 심장인 에이전트 루프 복습
- Ontology Essential Curriculum — 거버넌스·시맨틱 모델링의 자매 시리즈로 시야 넓히기
- Data Engineering Essential Curriculum — 그래프의 재료가 되는 데이터를 수집·처리하는 파이프라인