← Gritz World Engine
faq

OpenClaw ACP 프로토콜의 서브에이전트 세션 격리가 실현하는 기술적 아키텍처

핵심 요약

OpenClawACP 프로토콜은 서브에이전트의 독립성을 보장하기 위해 채널-바인딩 기반 세션 격리 체계를 구현합니다. ACP는 (channel, accountId, peer) 튜플로 인바운드 메시지를 에이전트 ID로 매핑하며 8단계 우선순위 체계를 적용하여 다중 에이전트 간 메시지 흐름을 체계적으로 관리합니다. 각 서브에이전트는 agent:<agentId>:subagent:<uuid> 세션 식별 포맷을 사용하여 독립 세션 공간에서 실행되고, Fan-Out/Fan-In 패턴을 통해 독립 태스크를 병렬 분산 실행한 후 결과를 부모 채팅 채널로 취합합니다. 결함 격리 체계로 하나의 서브에이전트 실패가 다른 에이전트나 부모 세션에 영향을 주지 않으며, /subagents 엔드포인트로 실시간 추적이 가능합니다.

이 글의 핵심 주장과 근거

핵심 주장
서브에이전트 풀이 적용되면 단일 에이전트 컨텍스트에 집중되던 작업을 3~5개 Worker 병렬 실행으로 분산하여 처리량이 비례적으로 증가하며, 각 작업자는 고유 세션 네임스페이스(agent:<agentId>:subagent:<uuid>)에서 백그라운드로 실행되어 메인 에이전트의 컨텍스트 창 과부하를 구조적으로 방지한다.
출처: [1] Dong-seop Kim의 Claude Code 에이전트 루프 연구 [2] Kim Hoon-jun의 AI ERP 웨이브코딩 전략 보고서
핵심 주장
OpenClaw 서브에이전트 풀은 Fan-Out 단계에서Orchestrator가 다수의 서브에이전트에 동시에 태스크를 분배하고, Fan-In 단계에서 wd_Linker가 결과를 취합하는 2단계 실행 체계를 지원한다.
출처: [1] Claude Code GAV Feedback Loop [2] OpenClaw Session Recovery Mechanisms
핵심 주장
서브에이전트 풀의 독립 네임스페이스 격리는 각 에이전트의 인증 프로파일과 세션 저장소를 기본적으로 분리하여 에이전트 간 크로스 태킹을 원천 차단하며, 장애 발생 시 영향 범위가 해당 에이전트의 독립 네임스페이스로 한정된다.
출처: [1] DevCom [2] HRMSoft
각 Worker Agents가 프로세스 수준에서 격리된 ACP 세션으로 실행되므로 하나의 Worker 크래시나 무한 루프가 다른 Worker나 메인 프로세스에 영향을 주지 않으며 실패 발생 시 해당 Worker만 격리하고 풀 전체를 재구성하지 않는다
출처: [1] OpenClaw Documentation [2] Claude Code GAV Feedback Loop
OpenClaw의 멀티에이전트 라우팅 체계는 하나의 게이트웨이 내에서 복수의 격리된 에이전트와 복수의 채널 계정을 동시에 바인딩하며, 인바운드는 에이전트별 바인딩 규칙에 따라 자동 분배된다.
출처: [1] OpenClaw Documentation
에이전트 협업에서 가장 큰 병목은 순차 실행으로 인한 전체 대화 차단이며, 복수의 독립 태스크를 동시 실행하는 병렬 처리 구조로 전환할 때 협업 효율성이 근본적으로 변화한다.
출처: [1] OpenClaw Session Recovery Mechanisms
DM isolation에 의해 각 서브에이전트가 독립 네임스페이스에서 격리 실행되고, Sandbox isolation에 의해 각 에이전트가 별도 샌드박스 프로세스에서 동작하므로 서로 다른 서브에이전트가 동일한 파일을 동시에 수정하는 Race Condition이 원천 차단된다.
출처: [1] Spawning sub-agents [2] DM isolation [3] Sandbox isolation
서브에이전트는 실행 완료 후 고유 세션 네임스페이스에서 결과를 부모 에이전트의 채팅 채널에 직접 알리며, 이 메커니즘을 통해 부모 세션은 각 서브에이전트의 결과를 실시간으로 수신하고 통합 처리할 수 있다.
출처: [1] Claude Code GAV Feedback Loop

ACP 프로토콜의 채널-바인딩 기반 라우팅 구조

ACP 프로토콜OpenClaw의 다중 에이전트 간 메시지 라우팅을 관리하는 추상화 레이어로, (channel, accountId, peer) 튜플 기반의 채널-바인딩 메커니즘을 통해 인바운드 메시지를 해당 agentId로 체계적으로 분배합니다. 이 라우팅 체계는 8단계 우선순위 체계를 적용하여 peer 정확한 일치, 부모 peer 일치, 길드Id+역할, 길드Id, 팀Id, 계정Id 일치, 채널 수준 일치, 기본 에이전트 폴백 순서대로 우선순위를 판단합니다. 이러한 다단계 우선순위 체계 덕분에 여러 채널과 에이전트가 공존하는 복잡한 환경에서도 메시지가 정확하게 의도된 수신자에게 전달됩니다.

서브에이전트의 독립 세션 네임스페이스와 최대 5단계 중첩 보장

서브에이전트는 agent:<agentId>:subagent:<uuid> 포맷의 고유 세션 식별자를 부여받아 상위 에이전트와 완전히 독립적인 세션 공간에서 실행됩니다. 이 세션 네임스페이스 구조는 부모 에이전트의 대화 스레드와 격리된 환경에서 별도로 동작하므로, 서브에이전트의 작업이 부모 세션의 대화를 차단하지 않습니다. 중첩 depth는 최대 5단계까지 보장되어 지나친 중첩으로 인한 컨텍스트 분열과 메모리 누수를 사전에 방지합니다. 각 서브에이전트는 독립적인 에이전트 디렉터리와 작업 공간을 소유하며, 파일 시스템 수준에서도 완전한 격리를 경험하게 됩니다.

Fan-Out/Fan-In 패턴에 따른 2단계 병렬 실행 체계

Fan-Out 단계에서는 부모 에이전트가 하나의 큰 태스크를 복수의 독립 서브에이전트로 동시에 분산 실행합니다. 각 서브에이전트는 독립 세션에서 개별적으로 동작하므로 서로를 기다리지 않고 병렬로 작업을 완료합니다. Fan-In 단계에서는 각 서브에이전트가 자신의 작업 결과를 부모 에이전트의 채팅 채널에 직접 포스트백하며, 부모 세션은 실시간으로 각 결과를 수신하여 통합 처리합니다. 이 2단계 실행 체계의 핵심 가치는 순차 실행의 한계를 극복한다는 데 있습니다. 여러 개의 독립 태스크를 완전히 동시에 처리함으로써 전체 처리 속도가 획기적으로 개선되며, 에이전트 협업이 답답한 기다림의 게임에서 생산적인 병렬 처리의 영역으로 전환됩니다.

결함 격리 메커니즘과 백그라운드 태스크 추적 구조

OpenClaw결함 격리 체계는 각 서브에이전트를 완전한 격리 실행 단위로 분리하여, 하나의 에이전트가 예기치 않게 실패하더라도 다른 에이전트나 부모 세션 전체에 영향이 전파되지 않도록 설계되어 있습니다. 각 서브에이전트는 자체 에이전트 디렉터리와 고유 세션 저장소를 보유하므로, 실패한 에이전트의 상태가 정상 동작 중인 에이전트에 영향을 미치지 않습니다. 서브에이전트의 실행 상태는 /subagents 엔드포인트를 통해 실시간으로 검사하거나 제어할 수 있으며, 백그라운드에서 실행 중인 작업의 진행 상황을 부모 세션이 투명하게 확인할 수 있습니다. 이 백그라운드 추적 구조는 복잡한 다중 에이전트 작업에서도 안정적인 운영을 가능하게 하는 핵심 기반입니다. > 이 주제의 전체 맥락 방향성은 **바이브코딩에서 오픈클로까지** 원본 글에 세밀하게 정리되어 있습니다. 더 깊게 탐구하고 싶다면 관련 내부 대표 문서(Pillar/Entity)를 참조하세요.

자주 묻는 질문

ACP 프로토콜의 채널-바인딩 메커니즘은 어떻게 작동합니까?

ACP 프로토콜은 (channel, accountId, peer) 튜플 기반의 채널-바인딩 구조를 통해 인바운드 메시지를 해당 agentId로 라우팅합니다. 이때 8단계 우선순위 체계, 즉 peer 정확한 일치부터 기본 에이전트 폴백까지의 순서로 우선순위를 판단하여 메시지를 정확하게 분배합니다.

서브에이전트의 세션 격리는 어떤 형식으로 보장됩니다?

각 서브에이전트는 agent:<agentId>:subagent:<uuid> 세션 식별 포맷을 사용하여 고유한 세션 네임스페이스를 부여받으며, 독립적인 에이전트 디렉터리와 작업 공간을 배정받아 파일 시스템 수준에서도 완전히 격리된 환경에서 실행됩니다.

Fan-Out/Fan-In 패턴의 2단계 실행 체계는 구체적으로 어떻게 동작합니까?

Fan-Out 단계에서 부모 에이전트가 독립 태스크를 여러 서브에이전트로 동시에 분산 실행하고, Fan-In 단계에서 각 서브에이전트가 작업 결과를 부모 채팅 채널에 직접 포스트백하여 부모 세션이 결과를 실시간으로 수신하고 통합 처리합니다.

서브에이전트 하나가 실패하면 다른 에이전트에 영향이 있습니까?

결함 격리 체계 덕분에 각 서브에이전트가 독립 실행 단위로 분리되어 있어, 하나의 에이전트가 실패해도 다른 에이전트나 부모 세션 전체에는 영향이 전파되지 않습니다. 실패한 에이전트의 상태는 정상 동작 중인 에이전트에 영향을 미치지 않으며, /subagents 엔드포인트로 상태를 실시간 검사할 수 있습니다.

관련 분석

ACP 영속화가 바이브코딩 세션의 컨텍스트 분열을 방지하는 구조적 원리OpenClaw 의 ACP 런타임은 sessionKey 를 파일로 영구 저장하여 재연결 시 이전 컨텍스트를 로드하고 복원한다. 주요 변수와 진행 중인 작업을 memory/*.md 혹은 MEMORY.md 에 주기적으로오픈클로 에이전트 오케스트레이션 구조와 전통 IDE 비교 분석OpenClaw는 Gateway가 로컬 127.0.0.1:18789에서 WebSocket 서버로 동작해 모든 채널을 단일 제어 평면에서 라우팅하고, auth‑profiles.json을 통해 인증 정보를 공유하여 보안바이브코딩의 컨텍스트 분열을 막는 OpenClaw 의 6 대 기술 원리와 ACP 영속화 아키텍처OpenClaw 는 ContextEngine 의 4 단계 라이프사이클 훅과 ACP SQLite 제어면을 통해 바이브코딩 세션의 컨텍스트 분열을 구조적으로 방지한다. 서브에이전트 종료 시 부모 컨텍스트를 자동 복원하는OpenClaw ContextEngine 라이프사이클 훅이 바이브코딩 세션의 컨텍스트 분열을 방지하는 원리OpenClaw ContextEngine은 라이프사이클 훅 프레임워크를 통해 서브에이전트 간 컨텍스트 생성·병합·복원·스냅샷 시점을 중앙 조율하여, 바이브코딩 세션에서 발생하는 컨텍스트 분열을 자동으로 감지하고 롤백execFileAsync와 spawn의 이중 실행 모드가 바이브코딩 피드백 루프를 어떻게 형성하는가Node.js에서 execFileAsync는 Promise 기반 비동기 실행, spawn은 스트림 기반 실시간 출력을 제공한다. 두 API를 병행하면 병렬 검증을 가능하고, stdout·stderr를 독립 수집해 피