SWAMP: 오픈AI 모델을 사용한 멀티에이전트 시스템 구축
오픈AI에서 출시한 SWAMP는 경량의 멀티에이전트 오케스트레이션 프레임워크입니다. 이 프레임워크를 통해 오픈AI 모델을 사용하여 멀티에이전트 시스템을 구축할 수 있습니다. SWAMP는 추상화 수준이 매우 낮아 다른 멀티에이전트 프레임워크에 비해 구현이 간단합니다.
Hugging Face에서 제공하는 멀티에이전트 프레임워크인 Transformers Agents 2.0과 비슷하지만 SWAMP는 현재 사용 빈도가 낮은 편입니다. 다만, SWAMP는 오픈AI에서 공식적으로 제공하는 제품이 아니라는 점에 유의하세요.
SWAMP의 두 가지 주요 개념은 핸드오프와 루틴입니다. 루틴은 에이전트로 생각할 수 있고, 핸드오프는 에이전트 간에 실행을 전달하는 것입니다.
SWAMP 사용 방법
SWAMP를 사용하는 것은 간단합니다. 먼저 오케스트레이션 프레임워크인 SWAMP를 임포트하고 에이전트를 임포트해야 합니다. 에이전트는 다음 두 가지 부분으로 구성됩니다.
- 시스템 명령어
- 실행 가능한 명령어 집합
예를 들어, 다음과 같이 에이전트를 정의할 수 있습니다.
python
agent = Agent(
name="Agent A",
system_instructions="안녕하세요. 저는 Agent A입니다.",
functions=[
Function(name="transfer_to_agent_b", args=["message"])
]
)
이 코드에서 Agent A는 다른 에이전트인 Agent B로 실행을 전달하는 transfer_to_agent_b
함수를 사용할 수 있습니다.
SWAMP에서는 에이전트 간에 실행을 전달하는 것을 함수 호출로 간주합니다. 에이전트 간의 조정과 실행을 제어 가능하고 테스트하기 쉬운 방식으로 처리하는 것이 SWAMP의 주요 목표입니다.
SWAMP는 상태 머신을 기반으로 설계되었으며, 두 가지 추상화 수준인 에이전트와 핸드오프만을 사용합니다. 이를 통해 사용자는 원하는대로 시스템을 사용자 지정할 수 있습니다.
SWAMP 빌드 이유
SWAMP는 다음과 같은 이유로 빌드되었습니다.
- 경량 및 확장성
- 사용자 지정 가능성
- 개발자에게 완전한 투명성 제공
- 호스팅 솔루션(오픈AI의 Assistant API)과 달리 클라이언트 측에서 실행
멀티에이전트 시스템 구축 예제
SWAMP 리포지토리에는 멀티에이전트 시스템 구축을 위한 여러 예제가 제공됩니다. 예를 들어, 다음 코드는 사용자 입력을 받아 판매 또는 환불 에이전트에게 요청을 전달하는 트리아지 에이전트를 설정하는 방법을 보여줍니다.
“`python
트리아지 에이전트 설정
triage_agent = Agent(
name=”Triage Agent”,
system_instructions=”안녕하세요. 저는 트리아지 에이전트입니다.”,
functions=[
Function(name=”transfer_to_sales”),
Function(name=”transfer_to_refund”)
]
)
판매 에이전트 설정
sales_agent = Agent(
name=”Sales Agent”,
system_instructions=”안녕하세요. 저는 판매 에이전트입니다.”,
functions=[
Function(name=”process_order”),
Function(name=”apply_discount”),
Function(name=”transfer_back_to_triage”)
]
)
환불 에이전트 설정
refund_agent = Agent(
name=”Refund Agent”,
system_instructions=”안녕하세요. 저는 환불 에이전트입니다.”,
functions=[
Function(name=”process_refund”),
Function(name=”apply_discount”),
Function(name=”transfer_back_to_triage”)
]
)
“`
SWAMP를 사용하면 멀티에이전트 시스템을 쉽고 제어 가능하게 구축할 수 있습니다.