AutoGen 에이전트 런타임 환경
AutoGen 에이전트 런타임 환경 (Agent Runtime Environments)
멀티 에이전트 애플리케이션의 기반에는 에이전트 간 통신을 돕고, 에이전트의 정체성과 생명주기를 관리하며, 보안·프라이버시 경계를 강제하는 런타임 환경(runtime environment)이 있어요.
AutoGen은 _standalone(독립형)_과 distributed(분산형) 두 가지 런타임 환경을 지원합니다. 두 타입 모두 멀티 에이전트 애플리케이션을 만들기 위한 공통 API 세트를 제공해서, 에이전트 구현을 바꾸지 않고도 그 사이를 전환할 수 있어요. 각 타입은 여러 구현을 가질 수도 있습니다.
Standalone Agent Runtime
Standalone 런타임은 모든 에이전트가 같은 프로그래밍 언어로 구현되고 같은 프로세스에서 실행되는 단일 프로세스 애플리케이션에 적합해요. Python API에서 standalone 런타임의 예는 SingleThreadedAgentRuntime입니다.
여기서 에이전트는 런타임을 통해 메시지로 통신하고, 런타임은 에이전트의 _생명주기(lifecycle)_를 관리해요.
개발자는 라우티드 에이전트(routed agent), AI 모델 클라이언트, AI 모델용 도구, 코드 실행 샌드박스, 모델 컨텍스트 저장소 같은 제공 컴포넌트를 사용해 에이전트를 빠르게 만들 수 있어요. 처음부터 자신만의 에이전트를 구현하거나, 다른 라이브러리를 쓸 수도 있습니다.
Distributed Agent Runtime
Distributed 런타임은 에이전트가 서로 다른 프로그래밍 언어로 구현되고 서로 다른 머신에서 실행될 수 있는 다중 프로세스 애플리케이션에 적합해요.
분산 런타임은 _호스트 서비서(host servicer)_와 여러 _워커(worker)_로 구성됩니다. 호스트 서비서는 워커 간 에이전트 통신을 돕고 연결 상태를 유지해요. 워커는 에이전트를 실행하고 _게이트웨이(gateway)_를 통해 호스트 서비서와 통신합니다. 워커는 실행하는 에이전트를 호스트 서비서에 알리고 에이전트의 생명주기를 관리해요.
에이전트는 standalone 런타임과 같은 방식으로 동작해서, 개발자는 에이전트 구현을 바꾸지 않고도 두 런타임 타입 사이를 전환할 수 있어요.