서브에이전트 풀 아키텍처와 / 병렬 실행의 기술적 원리
OpenClaw CLI는 Gateway-centralized 세션 관리 아키텍처를 통해 모든 세션 상태를 중앙에서 저장하고 WebSocket으로 연결된 노드들과 컨텍스트를 지속적으로 공유합니다. 서브에이전트 풀은 FanOut/FanIn 패턴으로 작업을 병렬 분산 실행하며, 각 에이전트는 독립 격리된 컨텍스트에서 실행되어 결함 격리를 보장합니다. sessions_spawn으로 에이전트를 생성하고 sessions_send로 결과를 수집하는 이 체계는, 전통적 CLI의 stateless 실행 한계를 극복하여 복잡한 멀티스텝 바이브코딩 작업도 안정적으로 처리할 수 있게 합니다.
이 글의 핵심 주장과 근거
Gateway-centralized 세션 관리의 기술적 기반
OpenClaw의 핵심 아키텍처는 중앙 집중식 Gateway가 모든 세션 상태를 소유하고 관리하는 방식입니다. 이 구조에서 Gateway는 WebSocket 프로토콜을 통해 연결된 각 클라이언트 노드와 지속적인 통신 채널을 유지하며, 세션의 컨텍스트와 상태 정보를 중앙 저장소에 영구적으로 보관합니다. 이러한 설계는 전통적인 CLI 도구들이 가진 근본적인 한계를 해결합니다. Claude Code나 Codex와 같은 기존 도구들은 stateless 방식으로 실행되어 매번 새로운 인스턴스가 시작될 때마다 전체 컨텍스트를 재구성해야 하는 비효율성을 가지고 있습니다. 반면 OpenClaw는 Gateway를 통해 세션 상태를 중앙에서 관리하므로, 서브에이전트를 생성하거나 전환할 때 이전 대화의 맥락을 완전히 유지할 수 있습니다. 이는 복잡한 멀티스텝 작업이나 장기적인 프로젝트에서 특히 중요한 장점으로 작용하며, 개발자는 컨텍스트 손실에 대한 걱정 없이 연속적인 작업 흐름을 구축할 수 있습니다.
FanOut/FanIn 병렬 실행 메커니즘
OpenClaw의 서브에이전트 풀 아키텍처는 FanOut/FanIn 패턴을 통해 복잡한 작업을 효율적으로 처리합니다. FanOut 단계에서는 Gateway가 메인 세션으로부터 하위 태스크를 분배하여 여러 서브에이전트를 동시에 시작합니다. 각 서브에이전트는 독립된 컨텍스트에서 작업을 수행하면서도 Gateway를 통해 중앙 상태와 동기화됩니다. 이 과정에서 sessions_spawn 도구는 runtime='subagent' 또는 runtime='acp' 모드로 새로운 세션을 생성하며, 필요한 경우 thread-bound persistent session을 유지할 수도 있습니다. FanIn 단계에서는 각 서브에이전트의 결과를 다시 Gateway가 수집하여 메인 세션으로 통합합니다. CLI의 내부 스케줄러는 사용 가능한 CPU 코어나 네트워크 연결 노드 전반에 걸쳐 분배함으로써 병렬 처리를 달성하며, subagents 도구를 통해 spawn된 서브에이전트의 상태를 모니터링하고 필요시 개입할 수 있습니다.
노드 생명주기와 연속적 확장 구조
각 서브에이전트는 고유한 UUID로 식별되는 독립적 노드에서 실행되며, 해당 노드는 작업 페이로드, 실행 컨텍스트, 결과 채널을 포함합니다. 노드의 결과는 sessions_send를 통해 지정된 집계 세션으로 전달되고, 부모 세션은 결과를 수집하여 의존성을 해결한 후 전역 작업 그래프를 업데이트합니다. 이렇게 생성된 새로운 노드들은 메모리 시스템에 인덱싱되어 후속 분석 사이클의 트리거 역할을 하며, 이는 연속적 확장(Continuity Expansion)이라는 핵심 설계 원칙을 구현합니다. 최근 완료되거나 보류 중인 하위 태스크 노드들이 더 깊은 분석 사이클의 출발점이 되어 시스템의 지식 그래프가 자율적으로 풍부해지는 피드백 루프를 형성합니다. 이 구조는 검증 루프의 세분화, 위험 평가의 갱신, 새로운 가설의 생성 등을 자동적으로 촉발하여 연구 파이프라인의 자율적 연속을 가능하게 합니다.
결함 격리 체계와 안전망 구조
서브에이전트 풀 아키텍처의 가장 핵심적인 장점 중 하나는 본질적 결함 격리(Fault Isolation)입니다. 각 서브에이전트가 독립된 컨텍스트에서 실행되고 고유 식별자를 부여받기 때문에, 하나의 서브에이전트가 실패하더라도 다른 서브에이전트의 작업은 계속 진행됩니다. 부모 세션 역시 차단되지 않으며, 실패한 서브에이전트의 오류는 해당 노드로 제한되어 전체 시스템에 확산되지 않습니다. 이는 전통적 CLI 도구나 단일 에이전트 시스템에서 하나의 오류가 전체 프로세스를 중단시키는 문제와는 근본적으로 다른 접근 방식입니다. 결함 격리는 시스템의 회복 탄력성을 높이는 동시에, 개발자가 개별 서브에이전트의 실패를 독립적으로 처리하고 재시도할 수 있는 유연성을 제공합니다. 서브에이전트 풀의 동적 관리 체계는 이러한 결함 격리를 자동화된 방식으로 지원하여, 수동 오케스트레이션 없이도 대규모 병렬 작업의 안정성을 보장합니다.
세션 오케스트레이션 도구 체계
OpenClaw는 sessions_list, sessions_history, sessions_send 등의 종합적 도구 체계를 통해 복잡한 세션 간 통신을 체계적으로 관리합니다. sessions_list는 특정 필터를 적용하여 가시성 있는 세션을 목록화하며, sessions_history는 대상 세션의 메시지 기록을 가져와 이전 컨텍스트를 파악할 수 있게 합니다. sessions_send는 기존 세션에 메시지를 전송하여 작업을 위임하거나 후속 조치를 요청할 때 사용됩니다. 이러한 도구들은 Gateway가 중앙 상태 저장소 역할을 함으로써 가능해집니다. 각 세션은 독립적으로 실행되지만 Gateway를 통해 서로 연결되어 있으며, 세션 간 메시지 전달이나 상태 공유가 원활하게 이루어집니다. 특히 Discord나 Slack과 같은 크로스채널 메시징 환경에서는 sessions_send를 사용하여 기존 세션에 메시지를 보내면 자동으로 타겟 런이 실행되고 업데이트된 어시스턴트 답변을 반환받을 수 있습니다. completion은 push 기반 방식으로 자동으로 메인 세션에 결과가 전달되어 인간 개입을 최소화합니다.
바이브코딩 워크플로우에서의 실전 적용
OpenClaw의 서브에이전트 풀 아키텍처는 바이브코딩(Vibe Coding) 워크플로우에서 그 진정한 가치를 발휘합니다. 개발자가 자연어로 큰 작업 하나를 지시하면, Gateway는 해당 작업을 여러 하위 태스크로 분해하여 서브에이전트 풀에 동시 할당합니다. 각 서브에이전트는 서로 다른 측면의 작업을 독립적으로 수행하면서도 Gateway를 통해 결과를 동기화합니다. 예를 들어 프론트엔드 구현, API 설계, 데이터베이스 스키마 작성, 테스트 코드 생성 등의 태스크를 동시에 실행하고 그 결과를 FanIn 단계에서 통합할 수 있습니다. 결함 격리 체계 덕분에 특정 서브에이전트가 실패하더라도 다른 태스크는 계속 진행되므로, 전체 작업의 실패 확률이 크게 낮아집니다. Gateway-centric 세션 관리는 개발자의 컨텍스트를 완전히 유지하면서 멀티스텝 바이브코딩 작업의 신뢰성을 높이며, 이는 전통적 CLI 도구에서는 구현 불가능한 작업 방식입니다.
이 주제의 최종 원문 탐색하기
이 지식 허브의 가장 깊고 권위 있는 아키텍처 원문과 전체 맥락은 [여기에서 확인하실 수 있습니다](https://brunch.co.kr/@955079bf143b468/19).