이전 글에서는 AI 에이전트의 기본적인 아키텍처와 프로덕션 단계로 나아가기 위한 AgentOps 운영 전략의 중요성, 그리고 에이전트 운영의 핵심 원리인 '측정하고 최적화한다'는 원리를 구현하기 위한 AI 에이전트 평가 방법에 대해 자세히 알아보았습니다. 단일 에이전트의 역량, 궤적, 최종 응답을 평가하는 다양한 방법과 도전 과제들을 살펴보았습니다.
이번 글에서는 단일 에이전트를 넘어, 여러 에이전트가 협력하여 복잡한 문제를 해결하는 '다중 에이전트 시스템'에 대해 알아보고, 이러한 시스템을 어떻게 효과적으로 평가할 수 있는지 정리해보겠습니다.
다중 에이전트 시스템이란 무엇인가? 🤝
최근 AI 시스템은 단일 에이전트에서 여러 전문 에이전트가 협력하여 복잡한 목표를 달성하는 다중 에이전트 아키텍처로 진화하고 있습니다. 다중 에이전트 시스템은 마치 팀을 이루어 복잡한 문제를 해결하는 전문가 팀과 같습니다. 각 에이전트는 특정 분야에 특화된 독립적인 개체이며, 잠재적으로 다른 LLM을 사용하고 고유한 역할과 문맥을 가집니다. 이들은 공통 목표를 달성하기 위해 서로 소통하고 협력합니다. 이는 하나의 LLM이 모든 작업을 처리하는 기존의 단일 에이전트 시스템과는 차별화됩니다.
다중 에이전트 시스템은 단일 에이전트 시스템에 비해 여러 가지 장점을 제공합니다:
향상된 정확도 (Enhanced Accuracy): 에이전트들이 서로의 작업을 교차 검증하여 더 정확한 결과를 도출할 수 있습니다.
향상된 효율성 (Improved Efficiency): 에이전트들이 병렬적으로 작업하여 작업 완료 속도를 높일 수 있습니다.
복잡한 작업 처리 능력 향상 (Better Handling of Complex Tasks): 대규모 작업을 더 작고 관리 가능한 하위 작업으로 분해하여 각 에이전트가 특정 측면에 집중할 수 있습니다.
확장성 증가 (Increased Scalability): 전문화된 기능을 가진 에이전트를 추가하여 시스템을 쉽게 확장할 수 있습니다.
향상된 내결함성 (Improved Fault Tolerance): 하나의 에이전트가 실패하더라도 다른 에이전트가 해당 역할을 대신할 수 있습니다.
환각 및 편향 감소 (Reduced Hallucinations and Bias): 여러 에이전트의 관점을 결합함으로써 환각 및 편향의 영향을 줄여 더 신뢰할 수 있는 출력을 얻을 수 있습니다.
특히 자동차 AI와 같은 실제 환경에서는 연결성 유무에 관계없이 작동하고, 안전 및 사용자 경험을 위해 온디바이스 및 클라우드 처리 간의 균형을 맞추며, 내비게이션, 미디어 제어, 메시징, 차량 시스템 등 다양한 전문 기능을 원활하게 조정해야 하므로 다중 에이전트 아키텍처의 이점이 두드러집니다.
다중 에이전트 아키텍처 이해하기 ✨
기존의 모놀리식(monolithic) AI 시스템과 달리, 다중 에이전트 아키텍처는 문제를 전문화된 에이전트가 처리하는 개별 작업으로 분해합니다. 각 에이전트는 정의된 역할에 따라 작동하며, 다른 에이전트와 동적으로 상호 작용하여 의사 결정, 지식 검색 및 실행을 최적화합니다. 이러한 아키텍처는 더 구조화된 추론, 분산된 문제 해결 및 확장 가능한 작업 자동화를 가능하게 합니다.
다중 에이전트 시스템은 모듈성(modularity), 협업(collaboration), 계층 구조(hierarchy)의 원리를 핵심으로 활용하여 강력한 AI 생태계를 만듭니다. 이러한 시스템 내의 에이전트는 기능에 따라 다음과 같이 분류될 수 있습니다:
플래너 에이전트 (Planner Agents): 상위 목표를 구조화된 하위 작업으로 분해하는 역할을 담당합니다.
리트리버 에이전트 (Retriever Agents): 외부 소스에서 관련 데이터를 동적으로 가져와 지식 습득을 최적화합니다.
실행 에이전트 (Execution Agents): 계산을 수행하거나, 응답을 생성하거나, API와 상호 작용합니다.
이러한 구성 요소를 통해 다중 에이전트 아키텍처는 단순한 프롬프트 기반 상호 작용을 넘어 적응적이고 설명 가능하며 효율적인 AI 기반 워크플로우를 가능하게 합니다.
다중 에이전트 설계 패턴 (Design Patterns) 🎨
효과적인 다중 에이전트 아키텍처를 설계하기 위해 특정 설계 패턴이 등장했습니다. 이러한 패턴은 상호 작용 프로토콜, 위임 메커니즘 및 역할 분배를 정의하여 기업이 AI 기반 자동화를 구조화된 방식으로 구현할 수 있도록 합니다. 일반적인 설계 패턴에는 다음이 포함됩니다:
순차 패턴 (Sequential): 에이전트들이 순차적으로 작업하며, 각 에이전트가 작업을 완료한 후 다음 에이전트로 출력을 전달합니다. 마치 조립 라인과 같습니다.
계층 패턴 (Hierarchical): 에이전트들이 계층적 구조로 구성되며, '관리자(Manager)' 에이전트가 워크플로우를 조정하고 '작업자(Worker)' 에이전트에게 작업을 위임합니다. 자동차 AI의 오케스트레이터 에이전트가 사용자의 질의를 분류하여 전문 에이전트에게 라우팅하는 것이 예시입니다. 다이아몬드 패턴은 계층 패턴의 변형으로, 전문 에이전트의 응답이 중앙 조정 에이전트를 거쳐 사용자에게 전달됩니다.
협업 패턴 (Collaborative): 에이전트들이 정보를 공유하고 리소스를 협력하여 공통 목표를 달성합니다. 마치 프로젝트를 함께 작업하는 연구원 팀과 같습니다. Response Mixer 에이전트는 여러 에이전트의 응답을 결합하여 포괄적인 답변을 만듭니다.
경쟁 패턴 (Competitive): 에이전트들이 최고의 결과를 얻기 위해 서로 경쟁할 수 있습니다.
어떤 설계 패턴을 선택할지는 특정 애플리케이션과 에이전트 간 상호 작용의 원하는 수준에 따라 달라집니다.
에이전트의 주요 구성 요소📝
상호작용 래퍼 (Interaction Wrapper): 에이전트와 환경 사이의 인터페이스 역할을 하며, 다양한 입력 및 출력 양식에 대한 통신 및 적응을 관리합니다.
메모리 관리 (Memory Management): 즉각적인 컨텍스트(작업 메모리, 캐시, 세션)를 위한 단기 메모리와 학습된 패턴 및 경험(에피소드, 예제, 스킬, 참조 데이터)을 위한 장기 저장소를 포함합니다. 또한 단기 메모리 항목 중 장기 메모리로 복사되어야 할 항목을 결정하는 "Reflection" 기능도 포함될 수 있습니다.
인지 기능 (Cognitive Functionality): Chain-of-Thought (CoT), ReAct, 추론, 사고 또는 플래너 서브시스템에 의해 뒷받침됩니다. 복잡한 작업을 논리적인 단계로 분해하고 자체 수정을 수행할 수 있게 합니다. 불확실한 경우 명확한 질문을 하기 위한 사용자 의도 개선 기능도 포함될 수 있습니다.
도구 통합 (Tool Integration): 에이전트가 외부 도구를 활용할 수 있도록 합니다. 동적 도구 레지스트리를 통해 도구의 발견, 등록 및 "Tool RAG"를 지원합니다.
Tool RAG의 개념: RAG(Retrieval-Augmented Generation)는 일반적으로 외부 지식 소스에서 관련 정보를 검색(Retrieval)하여 LLM의 답변 생성(Generation)을 강화하는 기법입니다. 'Tool RAG'는 이 RAG 개념을 도구 선택에 적용한 것. 즉, 에이전트가 현재 수행하려는 작업의 목표나 컨텍스트(질문 또는 상황)를 기반으로, 레지스트리에 등록된 도구 목록 중에서 가장 적합하거나 필요한 도구 정보를 '검색(Retrieval)'하고, 그 정보를 바탕으로 어떤 도구를 어떻게 사용할지에 대한 '계획이나 호출을 생성(Generation)'하는 과정
흐름 / 라우팅 (Flow / Routing): 다른 에이전트와의 연결을 제어하여 다중 에이전트 시스템 내에서 동적인 이웃 발견과 효율적인 통신을 촉진합니다. 작업 위임, 사용자 상호작용 핸드오프 또는 다른 에이전트를 도구로 사용하는 방식으로 구현될 수 있습니다.
피드백 루프 / 강화 학습 (Feedback Loops / Reinforcement Learning): 상호작용 결과를 처리하고 의사결정 전략을 개선함으로써 지속적인 학습 및 적응을 가능하게 합니다. 생성형 AI 에이전트의 경우, 전통적인 강화 학습 훈련 방식보다는 과거의 성능 메트릭을 미래 의사결정에 통합하는 형태를 취하는 경우가 많습니다.
에이전트 통신 (Agent Communication): 다중 에이전트 시스템의 성공에 필수적입니다. 에이전트 간의 구조적이고 효율적인 통신 프로토콜을 통해 합의를 도출하고 복잡한 문제를 협력적으로 해결할 수 있습니다. -> 구글이 발표한 A2A
원격 에이전트 통신 (Remote Agent Communication): 조직 내에서 에이전트 간에 메시지, 작업, 지식을 공유하는 데 중요하며, 특히 원격 에이전트가 포함될 때 통신 프로토콜이 더욱 중요해집니다. 비동기 작업 및 세션은 내구성이 있어야 하고, 최종 사용자가 세션 중이 아닐 때도 알림으로 업데이트되어야 합니다. 에이전트 간 협상에는 사용자를 세션으로 참여시키거나 지원되는 사용자 경험 기능을 활용할 수 있어야 합니다.
에이전트 및 도구 레지스트리 (Agent & Tool Registry (mesh)): 소수의 도구나 에이전트를 넘어설 경우, 도구 또는 에이전트의 "메시(mesh)"에서 발견(Discover), 등록(Register), 관리(Administer), 선택 및 활용(Select and Utilize)을 위한 강력한 시스템이 필요합니다. 도구 및 에이전트의 온톨로지(ontology) 및 설명, 기능 및 요구사항, 성능 메트릭이 매우 중요하며, 에이전트는 이 시스템의 데이터를 기반으로 사용할 도구 또는 에이전트를 선택하고 계획을 수립합니다. (-> Tool RAG에서는 데이터베이스 역할?)
다중 에이전트 시스템의 도전 과제 🤔
다중 에이전트 시스템은 많은 장점을 제공하지만, 몇 가지 도전 과제에도 직면합니다:
작업 통신 (Task Communication): 오늘날 대부분의 에이전트 프레임워크는 구조화된 비동기 작업이 아닌 메시지 형태로 통신합니다. (-> 메세지 형태로 인한 느린 이슈가 있을수도?)
작업 할당 (Task Allocation): 복잡한 작업을 다른 에이전트에게 효율적으로 분배하는 것이 어려울 수 있으며, 피드백 루프는 종종 개발자가 직접 구현해야 합니다. (-> 피드백 루프는 어떻게 구현할 것인가??)
추론 조정 (Coordinating Reasoning): 에이전트들이 효과적으로 토론하고 함께 추론하게 하려면 정교한 조정 메커니즘이 필요합니다.
문맥 관리 (Managing Context): 에이전트 간의 모든 정보, 작업 및 대화를 추적하는 것이 복잡해질 수 있습니다.
시간 및 비용 (Time and Cost): 다중 에이전트 상호 작용은 계산 비용이 많이 들고 시간이 소요될 수 있습니다. 이로 인해 런타임 가격이 높아지고 사용자 지연 시간이 증가할 수 있습니다. (-> 어떤 최적화 방법이 있을까요?)
복잡성 (Complexity): 마이크로 서비스 아키텍처와 유사하게, 각 에이전트 자체는 단순할 수 있지만 시스템 전체는 더 복잡해지는 경향이 있습니다.
이러한 도전 과제를 해결하는 것은 강력하고 효율적인 다중 에이전트 시스템을 개발하는 데 매우 중요합니다.
다중 에이전트 시스템 평가하기 📝
다중 에이전트 시스템의 평가는 단일 에이전트 시스템 평가의 명확한 발전 형태입니다. 앞선 글에서 다뤘던 에이전트 성공 지표 (Agent Success Metrics)는 변경되지 않습니다. 비즈니스 지표 (목표 달성률, 사용자 참여도 등)는 북극성 지표로, 목표 및 중요한 작업 성공 지표, 그리고 지연 시간 및 오류와 같은 애플리케이션 원격 분석 지표 모두 여전히 중요합니다. 복잡한 상호 작용 중 발생하는 일을 디버깅하고 이해하기 위해 다중 에이전트 시스템에 트레이스 (trace)를 계측하는 것이 도움이 됩니다.
이전 글에서 자동화된 에이전트 평가를 위한 최적의 두 가지 접근 방식인 궤적 평가 (Evaluating Trajectories)와 최종 응답 평가 (Evaluating the Final Response)에 대해 논의했습니다. 이는 다중 에이전트 시스템에서도 마찬가지입니다. 다중 에이전트 시스템의 경우, 작업 궤적에는 여러 에이전트 또는 심지어 모든 에이전트가 포함될 수 있습니다. 여러 에이전트가 작업에 협력하더라도 최종적으로 사용자에게 반환되는 단일 최종 응답은 독립적으로 평가될 수 있습니다.
다중 에이전트 시스템은 단일 시스템보다 더 많은 단계를 가질 가능성이 높기 때문에, 각 단계에서 상세하게 평가할 수 있습니다. 각 에이전트를 독립적으로 평가하거나 시스템 전체를 평가할 수 있으며, 궤적 평가는 이를 확장 가능한 방식으로 수행할 수 있는 접근 방식입니다.
하지만 다중 에이전트 시스템에만 해당하는 몇 가지 고유한 질문들이 있습니다:
협력 및 조정 (Cooperation and Coordination): 에이전트들이 공통 목표를 달성하기 위해 얼마나 잘 협력하고 행동을 조정하는가?
계획 및 작업 할당 (Planning and Task Assignment): 올바른 계획을 세웠고 계획을 잘 지켰는가? 하위 에이전트가 주요 계획에서 벗어나거나 막다른 길에 빠지지는 않았는가?
에이전트 활용 (Agent Utilization): 에이전트들이 올바른 에이전트를 선택하고, 에이전트를 도구로 사용하거나, 백그라운드 작업을 위임하거나, 사용자를 전달하는 것을 얼마나 효과적으로 수행하는가?
확장성 (Scalability): 에이전트를 더 추가함에 따라 시스템 품질이 향상되는가? 지연 시간이 줄어드는가? 더 효율적이거나 비효율적인가?
이러한 유형의 질문은 개발자가 다중 에이전트 시스템의 개선 영역을 식별하는 데 도움이 될 수 있습니다. 이러한 질문에 답변하기 위해 단일 에이전트 시스템에 사용하는 것과 동일한 도구를 사용하지만, 분석의 복잡성은 증가합니다. 이러한 방식으로 끊임없이 평가 방법을 개선함으로써 AI 에이전트가 미래에 책임감 있고 효과적이며 윤리적으로 개발 및 배포되도록 보장할 수 있습니다.
(-> 결국 단일 에이전트 평가 방식의 확장 수준에서 멈춰있으며, 다중 에이전트만을 위한 평가는 아직 제공되는 툴이 없는거 같다..)
이번 편에서는 다중 에이전트 시스템의 개념, 아키텍처, 장점, 도전 과제 및 평가 방법에 대해 살펴보았습니다.
다음 편에서는 다중 에이전트 아키텍처의 중요한 진화 형태인 Agentic RAG (Retrieval-Augmented Generation)에 대해 더 자세히 알아보겠습니다.