Skip to main content

copilotkit.ai - “Subgraph”

LangGraph의 “Subgraph”

https://feature-viewer.copilotkit.ai/langgraph/feature/subgraphs?file=agent.py&view=readme

LangGraph 서브그래프 데모: 여행 계획 도우미 ✈️

LangGraph 서브그래프란 무엇인가요? 🤖

  • 서브그래프는 기본적으로 "다른 그래프의 노드로 사용되는 그래프"로, 강력한 캡슐화 및 재사용성을 가능하게 합니다.
  • LangGraph에서 모듈식의 확장 가능한 AI 시스템을 구축하는 데 있어 서브그래프 는 핵심적인 요소입니다.

핵심 개념

  • 캡슐화 : 각 서브그래프는 고유한 전문성을 바탕으로 특정 영역을 처리합니다.
  • 모듈성 : 서브그래프는 독립적으로 개발, 테스트 및 유지 관리할 수 있습니다.
  • 재사용성 : 동일한 하위 그래프를 여러 상위 그래프에서 사용할 수 있습니다.
  • 상태 통신 : 서브그래프는 상태를 공유하거나 변환을 통해 서로 다른 스키마를 사용할 수 있습니다.

데모 아키텍처 🗺️

  • 이 여행 계획 도구는 관리자가 조정하는 하위 그래프 와 사람이 직접 참여하는 의사 결정 과정을 보여줍니다.

상위 그래프: 여행 감독관

  • 역할 : 전문 여행사와 협력하여 여행 계획 수립 및 경로 설정을 조정합니다.
  • 상태 관리 : 모든 하위 그래프에서 공유되는 여정 객체를 유지합니다.
  • 지능 : 무엇이 필요한지, 그리고 각 요원을 언제 투입해야 하는지를 결정합니다.

하위 그래프 1: ✈️ 항공편 예약 대행사

  • 전문 분야 : 항공편 검색 및 예약
  • 과정 : 암스테르담에서 샌프란시스코까지의 항공편 옵션과 추천 항공편을 제시합니다.
  • 상호 작용 : 인터럽트를 사용하여 사용자가 원하는 항공편을 선택할 수 있도록 합니다.
  • 데이터 : 가격 및 비행시간을 포함한 고정 항공편 옵션(KLM, 유나이티드 항공)

하위 그래프 2: 🏨 호텔 에이전트

  • 전문 분야 : 숙소 찾기 및 예약
  • 과정 : 다양한 가격대의 샌프란시스코 호텔 옵션을 보여줍니다.
  • 상호 작용 : 인터럽트를 사용하여 사용자가 선호하는 호텔을 선택할 수 있도록 합니다.
  • 데이터 : 고정 호텔 옵션(호텔 제퍼, 리츠칼튼, 호텔 조이)

하위 그래프 3: 🎯 경험 에이전트

  • 전문 분야 : 레스토랑 및 액티비티 큐레이팅
  • 프로세스 : 선택한 항공편과 호텔을 기반으로 한 AI 기반 추천 특징 : 위치 정보를 기반으로 레스토랑 2곳과 액티비티 2곳을 조합하여 추천해 줍니다.
  • 데이터 : 정적 경험 (피어 39, 골든 게이트 브리지, 스완 오이스터 데포, 타르틴 베이커리)

작동 방식 🔄

  1. 사용자 요청 : "샌프란시스코 여행 계획을 세우는 데 도움을 주세요."
  2. 관리자 분석 : 필요한 출장 구성 요소를 결정합니다.
  3. 순차 라우팅 : 각 에이전트로 가는 경로를 논리적 순서로 지정합니다.
  • 첫째: 항공편 예약 대행사 이용 (교통편을 미리 준비하세요)
  • 그 후: 호텔 예약 대행사 (숙박 예약)
  • 마지막으로: 경험 에이전트(활동 계획)
  1. 인간의 의사 결정 : 각 에이전트는 옵션을 제시하고 인터럽트를 통해 사용자의 선택을 기다립니다.
  2. 상태 구축 : 선택된 항목은 공유 여정 객체에 저장됩니다.
  3. 완료 : 모든 요원은 최종 조정을 위해 감독관에게 보고합니다.

국가 간 소통 패턴 📊

Shared State Schema

  • 모든 서브그래프 에이전트는 공통 상태 객체를 공유하고 해당 객체에 기여합니다.

  • 어떤 에이전트든 공유 상태를 업데이트하면 이러한 변경 사항이 실시간 동기화를 통해 프런트엔드에 즉시 반영됩니다. 이는 다음과 같은 이점을 제공합니다.

  • 항공편 예약 사이트에서 선택한 항공편 정보 는 이후 상담원에게도 표시됩니다.

  • 호텔 선택은 체험 담당자의 추천에 영향을 미칩니다.

  • 모든 업데이트는 프런트엔드 UI와 실시간으로 동기화됩니다.

  • 상태 지속성은 워크플로 전반에 걸쳐 여행 일정을 유지합니다.

Human-in-the-Loop Pattern

  • 두 개의 전문 에이전트는 인터럽트를 사용하여 실행을 일시 중지하고 사용자 기본 설정을 수집합니다.
    • 항공편 상담원 : 옵션 제시 → 중단 → 선택 대기 → 계속 진행
    • 호텔 상담원 : 호텔 목록 표시 → 일시 중단 → 선택 대기 → 계속

프런트엔드 기능 👁️

  • 사용자 의사 결정을 위한 서브그래프의 인터럽트를 활용한 인간 참여형 시스템
  • 현재 활성화된 에이전트를 보여주는 서브그래프 감지 및 스트리밍 기능
  • 에이전트 간에 공유 여정이 구축됨에 따라 실시간 상태 업데이트가 제공됩니다.