Agent와 멀티에이전트 애플리케이션
Agent와 멀티에이전트 애플리케이션
AutoGen에서 말하는 에이전트(agent) 는 무엇을 뜻하는지부터 짚고 넘어갈게요. 에이전트는 메시지를 통해 통신하고, 자신만의 상태를 유지하며, 받은 메시지나 상태 변화에 응답해서 동작을 수행하는 소프트웨어 개체예요. 이런 동작은 에이전트의 상태를 바꾸고 메시지 로그 갱신, 새 메시지 전송, 코드 실행, API 호출 같은 외부 효과를 만들어 낼 수 있어요.
많은 소프트웨어 시스템이 서로 상호작용하는 독립적인 에이전트들의 집합으로 모델링될 수 있어요. 예를 들면 공장 바닥의 센서, 웹 애플리케이션을 지원하는 분산 서비스, 여러 이해관계자가 얽힌 비즈니스 워크플로, GPT-4 같은 언어 모델로 구동되는 AI 에이전트(코드를 쓰고, 외부 시스템과 연동하고, 다른 에이전트와 소통할 수 있는) 같은 것들이요. 이렇게 상호작용하는 여러 에이전트로 구성된 시스템을 멀티에이전트 애플리케이션(multi-agent applications) 이라고 불러요.
참고: AI 에이전트는 대개 소프트웨어 스택의 일부로 언어 모델을 사용해서 메시지를 해석하고, 추론하고, 동작을 수행해요.
멀티에이전트 애플리케이션의 특징
멀티에이전트 애플리케이션에서 에이전트들은:
- 같은 프로세스 안이나 같은 머신에서 실행될 수 있어요
- 서로 다른 머신이나 조직 경계를 넘어 동작할 수 있어요
- 서로 다른 프로그래밍 언어로 구현되고 다른 AI 모델이나 지시를 사용할 수 있어요
- 메시징을 통해 동작을 조정하면서 공유 목표를 향해 함께 일해요
각 에이전트는 독립적으로 개발·테스트·배포될 수 있는 자급자족 단위예요. 이런 모듈식 설계 덕분에 에이전트를 다른 시나리오에서 재사용하고 더 복잡한 시스템으로 조합할 수 있어요.
에이전트는 본질적으로 합성 가능(composable) 해요. 단순한 에이전트를 결합해서 복잡하고 적응력 있는 애플리케이션을 만들 수 있고, 각 에이전트가 전체 시스템에 특정 기능이나 서비스를 기여하죠.