Agentic KG 직접 구축 + 도메인별 활용 사례: 코퍼스에서 에이전트까지

end-to-end 파이프라인과 도메인 부챗살 — 코퍼스에서 에이전트까지, 그리고 일곱 도메인 코퍼스에서 에이전트로, 그리고 도메인으로 코퍼스 문서·리포트·로그 LLM 추출 4단계 그래프 DB 2단계 GraphRAG ·추론 5·6단계 에이전트 7단계 write-back — 새 사실이 그래프로 헬스케어 금융 보안 엔터프라이즈 추천 법률 개인 메모리 아키텍처는 하나, 변주는 도메인마다 — 스키마와 질문만 다를 뿐
이 시리즈를 한 장으로 닫으며 — 코퍼스 → LLM 추출 → 그래프 DB → GraphRAG·추론 → 에이전트의 뼈대에 write-back 고리가 걸리고, 그 끝에서 헬스케어·금융·보안·엔터프라이즈·추천·법률·개인 메모리 일곱 도메인으로 갈라진다. 뼈대는 같고, 변주는 스키마와 질문뿐이다.

들어가며

이 글은 Agentic Knowledge Graph Curriculum8단계이자 시리즈의 피날레입니다. 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의 스키마와 에이전트가 답하는 질문만 달라집니다.

하나의 뼈대, 두 도메인의 변주 — 스키마와 질문만 갈아 끼운다 헬스케어 스키마 환자·약물·질환 / 진단·처방 질문 약물 재창출 후보? — 같은 뼈대 — 코퍼스 LLM 추출 ← 스키마 주입 그래프 DB GraphRAG·추론 에이전트 ← 질문 주입 스키마 계좌·거래·법인 / 이체·소유 질문 자금세탁 고리? 금융 뼈대는 그대로 — 갈아 끼우는 건 두 칸, 스키마와 질문뿐
같은 다섯 칸 뼈대에 헬스케어와 금융을 얹은 모습. 바뀌는 것은 LLM 추출에 넣는 스키마에이전트에게 던지는 질문 두 칸뿐이고, 나머지는 그대로다.

도메인별 활용 사례 집대성

이제 각 단계에서 예고한 사례들을 한자리에 모읍니다. 모두 위 파이프라인의 변주 — 스키마와 질문만 다를 뿐임을 눈여겨보세요.

도메인 스키마(노드·관계) 대표 질문 / 에이전트 행동 특히 중요한 단계
헬스케어·바이오 약물·질환·유전자·논문 / 진단·처방·상호작용 약물 재창출 후보 예측, 환자 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단계)가 무게중심입니다. 같은 뼈대 위에서 어느 단계에 힘을 싣느냐가 도메인을 가릅니다.

도메인별 무게중심 지도 — 같은 뼈대, 다른 힘점 무게중심 지도 — 같은 뼈대, 다른 힘점 3·4단계 검증·엔티티 해소 규제·안전 금융 헬스케어 5단계 GraphRAG 연결·종합 엔터프라이즈 Q&A 법률·컴플라이언스 6단계 임베딩·추론 예측 추천·이커머스 신약 후보 7단계 temporal KG 시간 개인·에이전트 메모리 "언제부터 바뀌었지?" 규제·안전이면 검증, 연결이면 GraphRAG, 예측이면 추론, 시간이면 temporal — 힘점이 도메인을 가른다
같은 파이프라인이라도 도메인마다 힘을 싣는 단계가 다르다 — 규제·안전은 검증(3·4), 연결·종합은 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)