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, 골든 게이트 브리지, 스완 오이스터 데포, 타르틴 베이커리)
작동 방식 🔄
- 사용자 요청 : "샌프란시스코 여행 계획을 세우는 데 도움을 주세요."
- 관리자 분석 : 필요한 출장 구성 요소를 결정합니다.
- 순차 라우팅 : 각 에이전트로 가는 경로를 논리적 순서로 지정합니다.
- 첫째: 항공편 예약 대행사 이용 (교통편을 미리 준비하세요)
- 그 후: 호텔 예약 대행사 (숙박 예약)
- 마지막으로: 경험 에이전트(활동 계획)
- 인간의 의사 결정 : 각 에이전트는 옵션을 제시하고 인터럽트를 통해 사용자의 선택을 기다립니다.
- 상태 구축 : 선택된 항목은 공유 여정 객체에 저장됩니다.
- 완료 : 모든 요원은 최종 조정을 위해 감독관에게 보고합니다.
국가 간 소통 패턴 📊
Shared State Schema
모든 서브그래프 에이전트는 공통 상태 객체를 공유하고 해당 객체에 기여합니다.
어떤 에이전트든 공유 상태를 업데이트하면 이러한 변경 사항이 실시간 동기화를 통해 프런트엔드에 즉시 반영됩니다. 이는 다음과 같은 이점을 제공합니다.
항공편 예약 사이트에서 선택한 항공편 정보 는 이후 상담원에게도 표시됩니다.
호텔 선택은 체험 담당자의 추천에 영향을 미칩니다.
모든 업데이트는 프런트엔드 UI와 실시간으로 동기화됩니다.
상태 지속성은 워크플로 전반에 걸쳐 여행 일정을 유지합니다.
Human-in-the-Loop Pattern
- 두 개의 전문 에이전트는 인터럽트를 사용하여 실행을 일시 중지하고 사용자 기본 설정을 수집합니다.
- 항공편 상담원 : 옵션 제시 → 중단 → 선택 대기 → 계속 진행
- 호텔 상담원 : 호텔 목록 표시 → 일시 중단 → 선택 대기 → 계속
프런트엔드 기능 👁️
- 사용자 의사 결정을 위한 서브그래프의 인터럽트를 활용한 인간 참여형 시스템
- 현재 활성화된 에이전트를 보여주는 서브그래프 감지 및 스트리밍 기능
- 에이전트 간에 공유 여정이 구축됨에 따라 실시간 상태 업데이트가 제공됩니다.