Multi Agent 아키텍쳐
Multi Agent 아키텍쳐
오늘은 멀티에이전트을 사용할 때의 장점에 대한 설명 중심의 글을 하나 소개해 드릴게요.
Multi-Agent System
Multi-Agent systems are LLM applications that are changing the automation landscape with intelligent bots.
멀티 에이전트 시스템은?
- 멀티 에이전트 시스템은 언어 모델에 기반한 여러 독립 에이전트가 특정 방식으로 협력하는 것
- 에이전트
- 페스소나, 룰, 특정 언어모델의 프롬프트에 따라 정의되는 컨텍스트를 각각 가지고 있음
- 작업을 수행하기 위해 저마다 접근할 수 있는 다양한 툴을 가지고 있음
- 결정 사항에 대해 각각 다른 관점을 가지고 있음
단일 에이전트와의 차이점
- 단일 에이전트와의 차이점은 멀티 에이전트는 시스템 내에서 결정을 서로 상의하고 상호작용한다는 점이다.
- 단일 에이전트
- 모든 결정을 집중된 하나의 에이전트에서 처리한다.
- 주로 맥락 기반의 결정을 하기 때문에 다른 관점/가능성을 놓칠 수 있다.
- 멀티 에이전트
- 지능형 에이전트들이 여러 상호작용을 한다.
- 각 에이전트는 의사결정을 하고, 환경에 영향을 미친다.
💡멀티 에이전트의 핵심은
- 역할을 부여하여 다른 맥락을 가진 에이전트를 만듦으로써 문제 해결에 다른 관점을 갖게 한다는 것이다.
- 같은 LLM을 사용한다해도, 역할이 다르기 때문에 목적과 행동의 차이를 갖는다. (팀원처럼!)
- 이를 통해 결과의 오류를 잡아줄 뿐 아니라, 할루시네이션, 편향의 문제도 예방할 수 있다.
멀티 에이전트 시스템의 장점
- 관심사 분리
- 각 에이전트는 서로 다른 지시사항에 따라 few-shot examples, 맞춤형 파인튜닝 모델, 다양한 툴을 가질 수 있다.
- 작업의 분리에 따라, 도구 선택이 아닌 특정 작업에 집중할 수 있다.
- 모듈화
- 복잡한 업무를 관리 가능한 작은 단위로 분석하여, 특정 에이전트와 언어모델로 구분할 수 있다.
- 전체 어플리케이션에 영향 없이 에이전트를 독립적으로 평가하고 향상시킬 수 있다.
- 에이전트는 특정 작업에 포커싱해두면 좋은 결과를 도출할 수 있다.
- 다양화
- 전형적인 실생활에서의 팀의 모습처럼 다양한 관점을 가진 에이전트는 결과물을 개선하고, 할루시네이션과 편향을 피할 수 있다.
- 재사용성
- 에이전트를 한 번 구축해두면, 다양한 유즈케이스에서 재사용할 수 있다.
- 에이전트 에코시스템 : 오케스트레이션 및 코레오그래피 프레임워크 (AutoGen, Crew.ai)
오케스트레이션: 특정 마스터 에이전트가 모든 에이전트의 작업을 조정하고, 순차적 또는 병렬적으로 에이전트를 관리
코레오그래피: 각 에이전트가 독립적으로 상호작용하면서 자율적으로 작업을 수행하며, 서로의 출력을 받아 다음 작업을 처리하는 방식
멀티 에이전트의 일반적 아키텍쳐
- Agents: LLM을 통해 수행되는 명확한 역할, 페르소나, 컨텍스트를 가진 지능적 에이전트
- Connections: 에이전트들이 연결되는 방법
- Orchestration: 에이전트들이 함께 일하는 방식 정의(순차적(Sequential), 계층적(Hierarchical), 양방향(Bi-directional chat) 등)
- Human: 대부분의 유즈케이스에서 인간의 중간 역할이 필요. (결정을 내리거나 결과를 평가하기 위한 역할)
- Tools: 웹에서 정보를 검색하거나, 문서를 읽고, 쓰거나, githun에 코드를 업로드 하는 등의 에이전트가 사용할 툴들
- LLM: 이 모든 시스템은 특정 언어 모델(LLM)에 의해 지원되며, 에이전트가 추론을 위해 이를 사용
멀티에이전트 프레임워크
다중 에이전트 애플리케이션을 구축할 수 있는 다양한 프레임워크가 존재하며, 이 분야는 빠르게 발전있다.
이 분야는 빠르게 발전하고, 변화되고 있다.
- OpenAI Assistant: OpenAI에서 제공하는 이 프레임워크는 지속적이고 멀티모달 방식으로 작동하는 다중 에이전트 시스템을 지원하는 최초의 프레임워크 중 하나입니다. 파일과 도구(예: 코드 인터프리터)에 접근하고, 다른 에이전트와 통신하며 작업을 수행할 수 있습니다. 특히 장기적인 협업이나 상호작용이 필요한 애플리케이션에 이상적입니다.
- Autogen: Microsoft에서 제공하는 오픈 소스 프레임워크로, Autogen Studio라는 직관적인 UI 기반 개발 도구를 통해 강력한 다중 에이전트 애플리케이션을 구축할 수 있습니다. 대형 언어 모델(LLM)을 사용하는 에이전트를 생성할 수 있으며, 이를 맞춤형 정보로 강화할 수 있습니다. 오케스트레이터 기반의 다중 에이전트 아키텍처를 명확하게 정의하여 제공하는 것이 특징입니다.
- Dragonscale’s Multi-Agent Systems: 다양한 생성형 AI 모델과 도구를 통합하여 지능형 시스템을 구축할 수 있는 프레임워크로, 단순한 작업부터 복잡한 작업까지 관리할 수 있습니다. 특히 역동적인 비즈니스 환경에 적합하며, 복잡한 작업을 관리할 수 있는 프레임워크를 제공합니다.
- CrewAI: 떠오르는 프레임워크 중 하나로, Autogen과 비교되며 인기를 얻고 있습니다. CrewAI는 역할 수행과 자율적 AI 에이전트를 오케스트레이션하는 강력한 프레임워크를 제공합니다. 에이전트들이 복잡한 작업을 해결하기 위해 협력할 수 있도록 설계되어 있으며, AI 에이전트가 역할을 맡고 목표를 공유하며 유기적으로 작동할 수 있습니다. 개인적으로 주목하는 프레임워크이며, 다음 블로그에서 CrewAI를 이용해 구축한 애플리케이션을 다룰 예정입니다.
- LangGraph: LangChain 위에 구축된 강력한 다중 에이전트 프레임워크로, 상태를 유지하는 다중 액터 애플리케이션을 구축할 수 있습니다. LangChain Expression Language를 확장하여 여러 계산 단계를 거쳐 다양한 체인(또는 액터)을 조정할 수 있습니다. Pregel과 Apache Beam에서 영감을 받았으며, LangChain 생태계와 강력한 커뮤니티의 지원을 받습니다.
Autogen이 Autogen Studio라는 UI 기반 개발 도구를 지원하고 있는지 몰랐는데 한번 사용해보고 싶네요 ㅎㅎ
그리고 글을 읽다보니 핵심은 명확한 룰을 구분해주는 것이 멀티 에이전트 설계의 핵심인 것 같습니다!