최근 LLM(Large Language Model) 기술이 발전하면서 AI 에이전트를 활용한 다양한 솔루션이 등장하고 있다. 이 중에서도 '멀티 에이전트 시스템'은 복잡한 작업을 여러 전문 에이전트가 협업하여 해결하는 접근 방식으로, 단일 에이전트로는 해결하기 어려운 문제들을 효과적으로 다룰 수 있게 해준다. 이번 글에서는 멀티 에이전트의 개념과 구조, 그리고 실제 사례를 살펴보고자 한다.
멀티 에이전트란?
기본 개념: AI 에이전트와 단일 에이전트
AI 에이전트는 목표 달성을 위해 반복적으로 계획을 세우고 행동을 취하는 LLM 기반 개체다. 각 에이전트는 특정 역할을 수행하도록 페르소나(persona)가 주어지는데, 이는 에이전트의 설명과 접근 가능한 도구들을 정의한다.
단일 에이전트 아키텍처(Single-Agent Architecture)는 하나의 언어 모델이 모든 추론(reasoning), 계획(planning), 실행(execution)을 담당하는 구조다. 이 경우 에이전트는 다른 에이전트와의 상호작용 없이 독립적으로 작업을 수행한다.
멀티 에이전트 구조
멀티 에이전트 시스템은 두 개 이상의 에이전트가 협업하여 작업을 수행하는 구조다. 각 에이전트는 고유한 페르소나를 가지며, 동일하거나 서로 다른 언어 모델과 도구를 사용할 수 있다. 멀티 에이전트 구조는 크게 두 가지 유형으로 나눌 수 있다:
- 수직형 아키텍처: 하나의 리드 에이전트(Lead Agent)가 다른 에이전트들을 관리하고 지시하는 구조. 리드 에이전트를 중심으로 의사소통이 이루어진다.
- 수평형 아키텍처: 모든 에이전트가 동등한 지위를 가지며, 그룹 토론을 통해 정보를 공유하고 협업하는 구조.
주요 멀티 에이전트 아키텍처 연구
- Embodied LLM Agents: 리더의 존재와 역동적인 팀 구조가 에이전트 팀의 성능을 향상시킬 수 있음을 보여준다.
- DyLAN: 에이전트의 기여도를 지속적으로 평가하고 상위 기여자로 팀을 구성하는 동적 네트워크 구조를 통해 효과적인 협업을 달성한다.
- AgentVerse: 모집, 협업적 의사 결정, 독립적 실행, 평가의 단계를 통해 구조화된 그룹 계획 수립 프로세스를 제안한다.
- MetaGPT: 구조화된 출력물 생성과 선택적 정보 공유를 통해 에이전트 간 효율적인 의사소통을 가능하게 한다.
LangGraph: 멀티 에이전트 워크플로우 구축 도구
LangGraph는 LangChain 생태계의 확장으로, LLM을 사용하여 에이전트 및 다중 에이전트 워크플로우를 생성하는 라이브러리다.
주요 구성 요소
- Nodes: 도구와 같은 모든 함수 또는 LangChain 실행 가능한 객체(Runnable Object)
- Edge: 노드 사이의 방향을 정의
- Stateful Graph: 그래프의 기본 유형으로, 노드를 통해 데이터를 처리할 때 상태 객체를 관리하고 업데이트하도록 설계
핵심 기능
- 그래프 구조: 노드(함수 또는 도구)와 에지(노드 간 연결)로 구성
- 조건부 에지와 일반 에지: 조건부 에지는 워크플로에 주기성을 추가하는 데 중요
LangGraph의 활용 분야
- RAG 파이프라인 개선: 순환 그래프 구조로 검색된 객체의 품질을 평가하고, 필요한 경우 쿼리를 개선하는 피드백 루프 도입 가능
- 멀티 에이전트 워크플로우: 복잡한 작업을 작은 하위 작업으로 나누어 여러 에이전트가 협업하여 해결
- 인간 참여 루프(Human-in-the-loop): 사람이 다음 노드로 이동하기 전에 상태를 검토할 수 있는 워크플로우 지원
- 계획 에이전트(Planning Agent): LLM 플래너가 사용자 요청을 계획 및 분해하고, 실행자가 도구를 호출하는 구조 구축
- 멀티모달 에이전트: 비전 지원 웹 네비게이터 같은 멀티모달 에이전트 구축 가능
LangGraph vs LangChain Agent
LangGraph와 LangChain의 Agent는 트레이드오프 관계를 가진다:
ReAct / LangChain LangGraph
신뢰성 | LLM이 각 단계에서 올바른 결정을 내려야 하므로 신뢰성 저하 | 제어 흐름이 명확하고 각 노드에서 수행할 작업이 특정되어 있어 더 안정적 |
유연성 | LLM이 작업 순서를 자유롭게 선택할 수 있어 유연성 높음 | 제어 흐름이 설정되어 있어 유연성이 다소 제한됨 |
SLM 호환성 | 파라미터 크기가 작은 모델과 호환성 낮음 | 작은 모델과도 호환성 높음 |
실제 멀티 에이전트 활용 사례: Corca 헬스케어
단일 에이전트의 한계
헬스케어 도메인에서 단일 에이전트를 사용할 때 다음과 같은 문제점이 발생했다:
- 복잡한 상담 내용: 개인적인 요건과 환경을 종합적으로 이해하여 객관적인 내용을 작성해야 함
- 다양한 데이터 참고 필요: 책, 과거 상담내역, 추천 제품 등 다양한 자료를 참고해야 함
- 책임 분리 필요: 작업 단계별로 책임을 분리해야 하는 경우 발생
- 할루시네이션 최소화: 특히 헬스케어에서는 정확한 정보 제공이 중요함
멀티 에이전트 솔루션
이러한 문제를 해결하기 위해 리더 에이전트와 협업 에이전트들로 구성된 멀티 에이전트 구조를 도입했다:
문제 해결 과정
- Leader Agent가 Key Point Analyzer Agent에게 복잡한 질문을 간단한 여러 개의 Sub-question으로 나누도록 요청
- Leader Agent가 각 Sub-question에 대해 Question Answerer Agent를 생성하고 답변 요청
- Question Answerer Agent는 Vector Store에서 필요한 정보를 찾아 답변
- Leader Agent는 각 Sub-Question의 답변을 종합하여 Reviewer Agent에게 검토 요청
- Reviewer Agent의 피드백을 반영하여 최종 답변 생성
장점
- 개인화된 답변: 복잡한 질문을 작은 부분으로 나누고 종합하여 더 맞춤화된 답변 제공
- 명확한 역할 분리: 각 에이전트의 기능과 역할이 명확히 분리되어 확장성 향상
- 할루시네이션 방지: Reviewer Agent를 통한 품질 관리로 정확성 향상
실제 답변 비교 예시
개발자로 일하는 30대 남성의 영양제 추천 질문에 대한 답변 비교:
단일 에이전트 답변
단일 에이전트는 일반적인 건강 관리 조언에 집중하며, 구체적인 제품 추천이나 복용 방법을 제시하지 않았다. 전반적으로 포괄적이지만 개인화된 정보가 부족했다.
멀티 에이전트 답변
멀티 에이전트는 다음과 같은 구체적인 정보를 제공했다:
- 오메가3와 락토바실러스 복용 추천
- 루테인과 간 부담에 관한 구체적인 정보
- 탄수화물 섭취 패턴에 맞는 크롬 보충제 추천
- 새우 알레르기 고려한 주의사항
- 실제 제품명과, 복용법까지 상세히 제공
멀티 에이전트 접근법은 사용자의 구체적인 상황(불규칙한 수면, 탄수화물 위주 식습관, 새우 알레르기 등)을 고려한 맞춤형 답변을 제공하여 훨씬 실용적이고 유용한 정보를 제공했다.
댓글