핵심 개념 - 애플리케이션 스택

핵심 개념 - 애플리케이션 스택

AutoGen Core는 특정 에이전트 추상화나 멀티에이전트 패턴에 묶이지 않는, 의견이 없는(unopinionated) 프레임워크로 설계됐어요. 그래서 다양한 종류의 멀티에이전트 애플리케이션을 만들 수 있는 거예요. 이번 글에서는 AutoGen 애플리케이션이 어떻게 쌓여 있는지, 즉 애플리케이션 스택을 살펴볼게요.

출처: 공식 문서 - Application Stack

스택의 구성

스택의 맨 아래에는 에이전트들이 서로 통신할 수 있게 해 주는 기본 메시징·라우팅 기능이 있어요. 이것들은 에이전트 런타임(agent runtime)이 관리하고, 대부분의 애플리케이션에서는 개발자가 런타임이 제공하는 고수준 API만 다루면 돼요 (Agent and Agent Runtime 참고).

스택의 맨 위에서는 개발자가 에이전트들이 주고받을 메시지 타입을 정의해요. 이 메시지 타입들의 집합은 에이전트들이 지켜야 하는 행동 계약(behavior contract) 을 형성하고, 계약의 구현이 에이전트가 메시지를 어떻게 처리할지를 결정해요. 이 행동 계약을 메시지 프로토콜이라고도 불러요. 행동 계약을 구현하는 것은 개발자의 책임이고, 멀티에이전트 패턴은 이 행동 계약들로부터 만들어져요.

예제 애플리케이션: 코드 생성

구체적인 예시로, 코드 생성을 위한 멀티에이전트 애플리케이션을 생각해 볼게요. 이 애플리케이션은 세 개의 에이전트로 이뤄져 있어요: Coder Agent, Executor Agent, Reviewer Agent.

이 예시에서 행동 계약은 다음과 같아요:

  • CodingTaskMsg — 애플리케이션에서 Coder Agent로 가는 메시지
  • CodeGenMsg — Coder Agent에서 Executor Agent로 가는 메시지
  • ExecutionResultMsg — Executor Agent에서 Reviewer Agent로 가는 메시지
  • ReviewMsg — Reviewer Agent에서 Coder Agent로 가는 메시지
  • CodingResultMsg — Reviewer Agent에서 애플리케이션으로 가는 메시지

행동 계약은 에이전트들이 이 메시지들을 처리하는 방식으로 구현돼요. 예를 들어 Reviewer Agent는 ExecutionResultMsg를 들으면서 코드 실행 결과를 평가해 승인할지 거부할지 결정해요. 승인하면 CodingResultMsg를 애플리케이션에 보내고, 아니면 ReviewMsg를 Coder Agent에 보내서 코드 생성을 한 번 더 돌리게 해요.

이 행동 계약은 reflection(반성) 이라는 멀티에이전트 패턴의 한 사례예요 — 생성 결과를 또 다른 생성 라운드로 검토해서 전체 품질을 높이는 방식이죠.

더 알아보기 (Learn more)