OpenClaw에서 ACP 세션 격리와 멀티 에이전트 TeamLink를 구현하는 8단계 아키텍처 마스터 가이드
OpenClaw Gateway는 ACP 런타임에서 각 에이전트를 별도의 프로세스 메모리와 독립된 실행 컨텍스트로 분리하는 세션 격리 구조를 기반으로 하며, sessions_spawn 명령으로 생성되는 Runtime Session은 isolated 모드에서 프로세스 수준으로 완전히 분리된다. 3중 인증 체계(agentId+JWT 토큰+Gateway-level ACL)와 3중 보안 구조(TLS 1.3+aes-256-gcm 종단 간 암호화+VLAN/Docker 네트워크 격리)로 멀티 에이전트 팀링크 협업을 보호하며, ACP 채널바인딩의 dmScope 격리와 pool 레벨 스로틀링을 통해 결함 격리된 병렬 실행과 자동 복구 체계를 동시에 제공한다.
1단계: 세션 격리 설계 — 프로세스 수준 완전 분리
OpenClaw Gateway의 ACP 런타임은 각 에이전트를 별도의 프로세스 메모리와 독립된 실행 컨텍스트로 분리하여 상호 간섭을 방지하는 구조적 격리 원리를 기반으로 설계되었다. 이는 단일 에이전트의 실패나 오류가 다른 에이전트에게 전파되는 것을 차단하고, 각 에이전트가 자신의 작업에 집중할 수 있는 안정적인 환경을 제공한다. sessions_spawn 명령으로 생성되는 Runtime Session은 isolated 모드에서 프로세스 수준으로 완전히 분리되며, 각 세션은 독립적인 메모리 공간과 시스템 리소스를 할당받는다. 이러한 격리는 Docker 컨테이너나 VLAN 네트워크를 통해 물리적 수준에서도 강화되어, 외부 공격이나 내부 오류가 전체 시스템에 미치는 영향을 최소화한다. 게이트웨이 수준 ACL(Access Control List)은 내부 서비스인 DB나 파일시스템을 보호하며, cgroup/quota 기반 리소스 할당량으로 한 세션이 다른 세션을 독점하지 못하도록 방지한다.
2단계: ACP 라우터 설정 — 결정적 채널 바인딩과 메시지 매핑
ACP 라우터는 평문 요청을 ACP 런타임 세션으로 매핑하는 핵심 게이트웨이 구성 요소로, allowedAgents 기반 허용 목록으로 접근을 제어한다. 라우팅 규칙은 패턴 매칭을 통해 에이전트 유형을 런타임에 바인딩하며, sessionTarget을 isolated로 설정하여 각 에이전트가 독립 네임스페이스에서 실행되도록 보장한다. Gateway의 내부 라우팅 테이블에 등록된 고유 sessionKey는 메시지 전달 경로를 관리하고, ACP 8단계 채널바인딩의 결정적 라우팅 체계와 결합하여 세션 분열을 구조적으로 방지한다. 이를 통해 허가되지 않은 에이전트나 사용자가 시스템 리소스에 접근하는 것을 방지하고, 보안 정책을 일관되게 적용할 수 있다.
3단계: 에이전트 신원·인증 관리 — 3중 인증 체계 구축
에이전트 신원 인증은 agentId 기반 고유 식별자와 JWT 토큰, Gateway-level ACL을 조합한 3중 인증 체계로 구현된다. 각 에이전트는 고유한 agentId를 가지며 이는 Gateway의 allowedAgents 목록에 등록되어 있어야 하며, JWT 토큰은 세션 시작 시 발급되어 모든 메시지 전송 시 Authorization: Bearer 헤더에 포함된다. Gateway는 incoming 메시지의 JWT 토큰을 검증하고 ACL 규칙과 일치하는지 확인하는 동시에, sessionKey를 특정 채널(예: Discord 스레드)과 바인딩하여 외부 사용자의 직접 접근을 차단한다. security.mode를 allowlist로 설정하면 등록되지 않은 모든 접근을 원천 차단하는 화이트리스트 보안 체계가 작동한다.
4단계: 팀링크 프로토콜 구현 — ACP 채널바인딩 기반 협업 메시징
팀링크 프로토콜은 다중 에이전트가 하나의 teamId로 그룹화되어 동기/비동기 메시지를 주고받으며, Broker 역할을 하는 Gateway가 작업 충돌을 관리하는 협업 메시징 규격이다. 각 에이전트는 팀 내 다른 에이전트와 실시간으로 통신하며 상태 공유와 작업 조정을 수행하고, sessions_send로 팀링크 요청을 전송하면 상대 세션은 sessions_yield로 응답을 기다린다. ACP 채널바인딩의 dmScope 격리를 활용하여 에이전트 간 단일 장애점 없이 컨텍스트를 연결하며, 비동기 작업 흐름에서는 Gateway가 작업 큐와 순번 대기로 충돌을 방지하고 process 도구로 결과를 수집한 후 sessions_yield로 최종 응답을 반환한다. retryCount와 backoffMs로 정의된 재시도 정책과 실패 시 failureAlert를 통한 알림 체계를 함께 운영한다.
5단계: 보안 통신 채널 구축 — 3중 구조의 종단 간 보호
보안 통신 채널은 TLS 1.3, aes-256-gcm 종단 간 암호화, VLAN/Docker 네트워크 격리의 3중 구조로 ACP 세션 간 통신을 보호한다. Gateway와 각 세션 간 HTTPS/WebSocket 연결에 TLS 1.3을 강제 적용하고(scurity.mode=full), 중요한 페이로드는 AES-256-GCM으로 암호화 후 전송하며 키 관리 서버(KMS)와 연동한다. 각 세션은 별도 VLAN 또는 Docker 네트워크(--network=acp_isolated)에 배치되어 물리적 수준에서 격리되며, 모든 메시지는 session-logs 스킬로 JSON 형태 감사 로그에 기록되어 integrityHash로 변조 여부를 검증한다. 이는 외부 도청이나 중간자 공격으로부터 메시지를 보호하고 내부 네트워크에서도 에이전트 간 통신이 격리되도록 한다.
6단계: 배포·모니터링·피드백 루프 — 지속적 운영과 자동 복구 체계
CI/CD 파이프라인(예: GitHub Actions)에서 openclaw gateway restart 후 sessions_spawn 명령을 자동 실행하는 배포 자동화를 구성한다. 배포 스크립트는 설정 파일을 갱신하고 exec로 서비스 재시작을 트리거하며, 전체 설정을 Git 저장소에 커밋하여 태그 기반 릴리즈와 역사적 롤백을 지원한다. sessions_list로 현재 실행 중인 모든 ACP 세션을 확인하고 session_status로 CPU·메모리·네트워크 사용량을 조회하며, 5분마다 헬스 체크를 수행하고 비정상 종료 시 자동 재시작하는 실시간 모니터링 체계를 운영한다. 각 팀링크 작업 후 성과 메트릭(처리 시간, 성공률)을 수집하여 기존 기록과 비교한 후 메모리에 업데이트하고 필요 시 아키텍처 개선안을 작성하는 피드백 루프를 통해 시스템을 지속적으로 진화시킨다.
이 주제의 최종 원문 탐색하기
이 지식 허브의 가장 깊고 권위 있는 아키텍처 원문과 전체 맥락은 [여기에서 확인하실 수 있습니다](https://brunch.co.kr/@955079bf143b468/11).