(위 이미지를 클릭하면 이 수업의 동영상을 볼 수 있습니다)
다중 에이전트가 포함된 프로젝트를 시작하면 다중 에이전트 디자인 패턴을 고려해야 합니다. 그러나 언제 다중 에이전트로 전환해야 하는지와 그 장점이 무엇인지 즉시 명확하지 않을 수 있습니다.
이 수업에서는 다음 질문에 답하려고 합니다:
이 수업 후에 당신은 다음을 할 수 있어야 합니다:
더 큰 그림은 무엇인가요?
다중 에이전트는 여러 에이전트가 함께 협력하여 공통 목표를 달성할 수 있게 하는 디자인 패턴입니다.
이 패턴은 로봇 공학, 자율 시스템, 분산 컴퓨팅 등 다양한 분야에서 널리 사용됩니다.
그렇다면 다중 에이전트를 사용하는 좋은 사례는 어떤 것일까요? 다중 에이전트를 사용하는 것이 유리한 많은 시나리오가 있으며 특히 다음과 같은 경우입니다:
단일 에이전트 시스템은 간단한 작업에 적합할 수 있지만, 더 복잡한 작업에는 여러 에이전트를 사용하는 것이 여러 면에서 유리할 수 있습니다:
예를 들어 사용자의 여행 예약을 한다고 가정합시다. 단일 에이전트 시스템은 비행기 찾기부터 호텔과 렌터카 예약까지 모든 과정을 처리해야 합니다. 단일 에이전트가 이 모든 작업을 처리하려면 각 작업별 도구가 필요해서 복잡하고 유지보수와 확장이 어려운 단일체가 될 수 있습니다. 반면 다중 에이전트 시스템은 비행기 검색, 호텔 예약, 렌터카 예약을 각각 전문적으로 처리하는 에이전트를 갖고 있어 더 모듈화되고 유지보수 및 확장이 용이합니다.
이를 동네 여행사와 프랜차이즈 여행사와 비교할 수 있습니다. 동네 여행사는 하나의 에이전트가 모든 예약 업무를 처리하는 반면, 프랜차이즈는 각기 다른 에이전트가 여행 예약 각 부분을 담당합니다.
다중 에이전트 디자인 패턴을 구현하려면 패턴을 구성하는 요소를 이해해야 합니다.
다시 여행 예약 예를 구체적으로 봅시다. 이 경우 구성 요소는 다음과 같습니다:
여러 에이전트들이 어떻게 상호작용하는지 가시성 확보는 매우 중요합니다. 이는 디버깅, 최적화, 시스템 전반의 효율성 확보에 꼭 필요합니다. 이를 위해 활동 추적, 모니터링, 시각화 도구와 성능 지표 등이 필요합니다.
예를 들어 여행 예약의 경우 각 에이전트 상태, 사용자 선호 및 제약 조건, 에이전트 간 상호작용을 보여주는 대시보드가 있을 수 있습니다. 대시보드는 사용자 여행 날짜, 비행기 에이전트 추천 항공편, 호텔 에이전트 추천 호텔, 렌터카 에이전트 추천 차량을 표시해 에이전트 상호작용과 사용자 요구 충족 여부를 명확히 보여줍니다.
각 요소들을 좀 더 자세히 살펴봅시다.
로깅 및 모니터링 도구: 각 에이전트 행동을 기록하는 로깅이 필요합니다. 로그는 행동을 수행한 에이전트, 행동 내용, 시간, 결과를 포함해 디버깅 및 최적화에 활용됩니다.
시각화 도구: 에이전트 간 상호작용을 직관적으로 보여줄 수 있습니다. 예를 들어, 정보를 주고받는 흐름을 그래프로 표현하여 병목 현상, 비효율성 등의 문제를 파악할 수 있습니다.
성능 지표: 다중 에이전트 시스템의 효과를 추적합니다. 작업 완료 시간, 시간당 작업 수, 에이전트 추천 정확도 등을 측정해 개선점을 찾고 최적화할 수 있습니다.
다중 에이전트 앱을 만들 수 있는 몇 가지 구체적인 패턴을 살펴봅시다. 고려할 만한 흥미로운 패턴은 다음과 같습니다:
여러 에이전트가 서로 소통하는 그룹 채팅 애플리케이션을 만들 때 유용한 패턴입니다. 팀 협업, 고객 지원, 소셜 네트워킹에서 일반적으로 사용됩니다.
각 에이전트는 그룹 채팅 내 사용자 역할을 하며, 메시징 프로토콜로 메시지를 주고받습니다. 에이전트들은 그룹 채팅에 메시지를 보내고, 받으며, 다른 에이전트 메시지에 응답합니다.
중앙 서버를 통한 중앙집중형 아키텍처 또는 에이전트 간 직접 메시지 교환하는 분산형 아키텍처로 구현할 수 있습니다.

여러 에이전트가 작업을 서로에게 인계하는 애플리케이션에 유용합니다.
고객 지원, 작업 관리, 워크플로 자동화 등에 일반적으로 사용됩니다.
각 에이전트는 작업이나 워크플로 단계 역할을 하며, 미리 정해진 규칙에 따라 작업을 다른 에이전트에 인계할 수 있습니다.

여러 에이전트가 협력해 사용자에게 추천을 제공할 애플리케이션에 유용합니다.
여러 에이전트가 협력하는 이유는 각 에이전트가 서로 다른 전문성을 갖고 있어 추천 과정에 다양한 방식으로 기여할 수 있기 때문입니다.
예를 들어, 사용자가 주식 시장에서 살 최고의 주식을 추천받고자 할 때를 봅시다.

고객이 제품 환불을 시도하는 경우를 생각해 봅시다. 이 과정에는 여러 에이전트가 관여할 수 있지만, 이 과정을 위한 특정 에이전트와 다른 프로세스에서도 사용할 수 있는 일반 에이전트로 나누어 보겠습니다.
환불 과정에 특정한 에이전트:
환불 과정에 관여할 수 있는 에이전트는 다음과 같습니다:
일반 에이전트:
이 에이전트들은 사업의 다른 부분에서도 사용할 수 있습니다.
앞서 나열한 에이전트는 환불 과정에 특화된 것들과 사업의 다른 부분에도 사용되는 일반 에이전트를 포함합니다. 이것이 다중 에이전트 시스템에서 어떤 에이전트를 사용할지 결정하는 데 도움이 되길 바랍니다.
고객 지원 프로세스를 위한 다중 에이전트 시스템을 설계하세요. 과정에 관여하는 에이전트들, 그 역할과 책임, 그리고 서로 어떻게 상호작용하는지 식별하세요. 고객 지원 프로세스에 특화된 에이전트와 사업의 다른 부분에서도 사용할 수 있는 일반 에이전트를 모두 고려하세요.
다음 해결책을 읽기 전에 잠시 생각해 보세요. 생각보다 더 많은 에이전트가 필요할 수 있습니다.
TIP: 고객 지원 프로세스의 다양한 단계를 생각해 보고, 모든 시스템에 필요한 에이전트도 고려해 보세요.
다중 에이전트 시스템에 가장 적합한 시나리오는 무엇인가요?
단일 에이전트가 보통 더 나은 선택인 경우는 언제인가요?
이번 강의에서는 다중 에이전트 설계 패턴을 살펴보았으며, 다중 에이전트가 적용되는 시나리오, 단일 에이전트 대비 다중 에이전트 사용의 장점, 다중 에이전트 설계 패턴 구현의 구성 요소, 그리고 여러 에이전트가 어떻게 상호작용하는지 가시성을 확보하는 방법을 다뤘습니다.
Microsoft Foundry Discord에 참여하여 다른 학습자들과 만나고, 오피스 아워에 참석하며, AI 에이전트 질문에 대한 답변을 받아보세요.
면책 조항: 이 문서는 AI 번역 서비스 Co-op Translator를 사용하여 번역되었습니다. 정확성을 기하기 위해 노력하고 있으나, 자동 번역은 오류나 부정확한 부분이 있을 수 있음을 유의하시기 바랍니다. 원본 문서의 원어본이 권위 있는 자료로 간주되어야 합니다. 중요한 정보의 경우, 전문가의 인간 번역을 권장합니다. 이 번역 사용으로 인해 발생하는 오해나 잘못된 해석에 대해 당사는 책임을 지지 않습니다.