조직 전체에서 돌아가는 간단한 멀티 에이전트 아키텍처. 모든 것을 루프 안에 유지하기.
Simple Multi-Agent Architecture Running Across Our Entire Org. Keeping everything in Loop.
핵심 요약
조직 규모에서 에이전트 간의 역할 분담과 상태 관리를 효율적으로 처리하는 멀티 에이전트 아키텍처 소개.
- 멀티 에이전트 구조 — 관찰자, 작업자, 목표 에이전트로 역할을 분리하여 시스템 유지보수성을 높임.
- 기술 스택 활용 — LangGraph, CrewAI, Harbor를 조합해 상태 관리와 작업 조율을 자동화함.
- 링 프로토콜 — 에이전트 간 메시지 라우팅과 생명주기를 링 기반 프로토콜로 체계적으로 관리함.
- 운영 효율성 — 에이전트 간 공유되는 운영 이력이 쌓일수록 조율 비용이 감소하는 구조를 갖춤.
현재 조직 규모에서 에이전트를 운영 중입니다. 초기에는 자격 증명, 상태, 실행 추적 문제 등 여러 난관이 있었지만, 이를 극복하고 간소화된 아키텍처를 구축했습니다.
우리 시스템은 공유 컨텍스트 레이어를 기반으로 세 가지 에이전트 클래스를 실행합니다. 관찰자 에이전트는 외부 신호를 수집해 구조화된 이벤트를 작성하고, 작업 에이전트는 스트림에서 작업을 가져와 실행하며, 목표 에이전트는 전체 실행 이력을 읽고 계획을 세우며 상황 변화에 따라 재계획합니다.
LangGraph가 목표 에이전트 레이어를 담당합니다. 상태 기반 그래프 구조는 목표 에이전트의 작동 방식(조건부 분기, 체크포인트 상태, 작업 에이전트 실패 시 재개 등)과 일치합니다. 이런 로직을 직접 구현하면 6개월 뒤 아무도 건드리기 싫은 오케스트레이션 코드가 됩니다.
CrewAI가 작업 조율을 담당합니다. 역할 기반 에이전트 할당과 공유 메모리, 그리고 실행 전 작업을 순서화하는 계획 에이전트를 활용합니다. 크루 모델은 작업 지향적 에이전트 클래스와 잘 맞아 별도의 커스텀 스캐폴딩 없이 사용합니다.
Harbor가 이 모든 것의 기반이 됩니다. 모든 에이전트는 Harbor의 워크스페이스 모델을 통해 도구, 파일, 워크플로우에 대한 권한을 부여받습니다. 자격 증명은 모델 컨텍스트가 아닌 Harbor에 보관됩니다. 모든 도구 호출은 추적되며, 데이터베이스 조회나 외부 API 호출 시 전체 출처가 기록됩니다. 이 추적 레이어 덕분에 대규모 환경에서도 장애 디버깅을 하루가 아닌 한 시간 내에 끝낼 수 있습니다.
링 기반 프로토콜이 메시지 라우팅을 제어합니다. 0링의 커널 에이전트는 생명주기를 관리하고, 1링의 오케스트레이터는 메타데이터에 따라 메시지를 라우팅합니다. 2링의 목표 에이전트는 의도를 작업 계획으로 분해하며, 3링의 작업 에이전트는 최소 권한으로 실행됩니다. 4링의 관찰자 에이전트는 결정을 내리지 않고 지속적으로 이벤트를 게시합니다.
공유 대화가 깊어질수록 새로운 에이전트들은 이전보다 더 풍부한 운영 이력을 가지고 시작합니다. 가장 큰 장점은 이력이 쌓일수록 에이전트당 조율 오버헤드가 줄어든다는 점입니다.


