조직 전체에 적용 중인 단순한 멀티 에이전트 (Multi-Agent) 아키텍처: 모든 것을 루프 (Loop) 안에 유지하기
요약
조직 규모의 에이전트 운영을 위해 설계된 단순화된 멀티 에이전트 아키텍처를 소개합니다. LangGraph, CrewAI, Harbor를 활용하여 목표 설정, 작업 조정, 보안 및 추적 문제를 해결하며, 링 기반 프로토콜을 통해 에이전트의 계층적 역할과 메시지 라우팅을 관리합니다.
핵심 포인트
- LangGraph를 활용하여 상태 유지 그래프 구조를 통한 목표 에이전트(Goal agents)의 계획 및 재수립 로직 구현
- CrewAI를 통해 역할 기반 에이전트 할당 및 태스크 조정 기능 활용
- Harbor를 사용하여 에이전트의 권한 관리(Least privilege)와 실행 추적(Traceability)을 통한 디버깅 효율화
- 링 기반 프로토콜(Ring-based protocol)을 통한 커널부터 옵저버까지의 계층적 에이전트 관리 체계 구축
현재 저희는 조직 규모 (org scale)로 에이전트를 운영하고 있습니다. 초기 단계에서는 자격 증명 (credential) 문제, 상태 (state) 문제, 그리고 실행 추적 (execution trace) 문제와 같은 여러 문제에 직면했으나, 이를 극복했으며 저희의 단순화된 아키텍처를 소개합니다.
저희의 설정은 **공유 컨텍스트 레이어 (shared context layer)**를 대상으로 세 가지 에이전트 클래스를 실행합니다. 옵저버 에이전트 (Observer agents)는 가장자리 (edge)에 위치하여 외부 신호를 가져오고 구조화된 이벤트를 기록합니다. 태스크 에이전트 (Task agents)는 해당 스트림에서 작업을 가져와 제한된 동작을 실행하고 결과를 다시 기록합니다. 골 에이전트 (Goal agents)는 전체 실행 이력을 읽고, 계획을 수립하며, 태스크 에이전트의 순서를 정하고, 조건이 변할 때 계획을 재수립합니다.
LangGraph는 골 에이전트 레이어를 처리합니다. 상태 유지 그래프 (stateful graph) 구조는 골 에이전트가 작동하는 방식, 즉 조건부 분기 (conditional branching), 체크포인트가 설정된 상태 (checkpointed state), 그리고 태스크 에이전트가 실패하거나 부분적인 결과를 반환할 때 계획 중간에 재개할 수 있는 능력과 일치합니다. 이러한 로직을 직접 구현(Hand-rolling)하다 보면 6개월 뒤에는 아무도 건드리고 싶어 하지 않는 오케스트레이션 (orchestration) 코드를 만들게 됩니다.
CrewAI는 태스크 조정 (task coordination)을 담당합니다. 공유된 단기 및 장기 메모리를 가진 역할 기반 에이전트 할당 (Role-based agent assignment)과 실행 시작 전 태스크의 순서를 정하는 플래닝 에이전트 (planning agent)를 제공합니다. Crew 모델은 저희가 사용하는 태스크 지향적 에이전트 클래스와 매우 밀접하게 매핑되어 별도의 커스텀 스캐폴딩 (custom scaffolding) 없이도 사용할 수 있습니다.
Harbor는 이 모든 것의 하단에 위치합니다. 플릿 (fleet) 내의 모든 에이전트는 Harbor의 워크스페이스 (workspace) 모델을 통해 도구, 파일 및 워크플로우에 대한 범위가 지정된 액세스 권한을 가집니다. 자격 증명 (Credentials)은 모델 컨텍스트 (model context)가 아닌 Harbor에 유지됩니다. 모든 도구 호출은 추적 (trace)을 생성합니다. 에이전트가 데이터베이스를 호출하거나, 외부 API를 호출하거나, 다운스트림 워크플로우 (downstream workflow)를 트리거할 때, 해당 동작은 전체 출처 (provenance)와 함께 기록됩니다. 플릿 규모에서 이 추적 레이어 덕분에 실패를 디버깅하는 데 하루가 아닌 한 시간 이내로 걸릴 수 있습니다.
이 위에는 링 기반 프로토콜 (Ring-based protocol)이 메시지 라우팅 (Message routing)을 제어합니다. Ring 0의 커널 에이전트 (Kernel agents)는 에이전트의 생명주기 (Lifecycle)를 관리합니다. Ring 1의 오케스트레이터 (Orchestrators)는 에이전트의 메타데이터 (Metadata)와 분류 (Classification)를 통해 메시지를 라우팅합니다. Ring 2의 목표 에이전트 (Goal agents)는 의도 (Intents)를 작업 계획 (Task plans)으로 분해합니다. Ring 3의 작업 에이전트 (Task agents)는 최소 권한 (Least privilege) 원칙에 따라 실행됩니다. Ring 4의 옵저버 에이전트 (Observer agents)는 지속적으로 실행되며, 의사결정을 내리지 않고 이벤트 (Events)를 게시합니다.
공유된 대화 (Shared conversation)가 깊어짐에 따라, 새로 생성된 에이전트들은 이전 에이전트들보다 더 풍부한 운영 이력 (Operational history)을 가지고 시작하게 됩니다. 우리의 가장 큰 장점은 이력이 쌓일수록 에이전트당 조정 오버헤드 (Coordination overhead)가 감소한다는 점입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Reddit AI Engineering의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기