← Gritz World Engine
faq

바이브코딩 패턴을 처음 사용할 때 반드시 알아야 할 가지 실행 규칙

핵심 요약

OpenClawFanOut/FanIn 패턴은 ACP 런타임 경로 우선 사용, agentId 명시적 지정, 결정적 세션명 규칙, 출력 릴레이 최적화, 자동 복구 정책, acpx 제한적 사용 등 6가지 핵심 실행 규칙을 준수할 때 안정적으로 동작하며, 각 규칙은 결함 격리와 결과 라우팅 정확성을 보장하는 구조적 안전장치입니다.

이 글의 핵심 주장과 근거

핵심 주장
sessions_spawn의 동시 실행 한계치는 전역 레인 기준 maxConcurrent 기본값 8개이며, 각 에이전트 세션당 최대 5개(maxChildrenPerAgent)의 활성 자식 에이전트를 허용한다. 그러나 대부분의 환경에서 안정적으로 운영 가능한 실전 한도는 3~5개의 동시 서브에이전트이다.
출처: [1] Sub-Agents - OpenClaw [2] Learn OpenClaw Sub-Agents
핵심 주장
sessions_spawn의 기본 중첩 깊이(maxSpawnDepth)는 1단계로 서브에이전트가 자체 서브에이전트를 생성하는 것은 금지되어 있으며, maxSpawnDepth를 2로 설정하면 한 단계의 추가 중첩이 허용된다. 서브에이전트의 세션 식별자는 agent:<agentId>:subagent:<uuid> 형식을 따르며ephemeral 특성에 따라 임무 완료 후 자동으로 파기된다.
출처: [1] Sub-Agents - OpenClaw

FanOut/FanIn 패턴의 구조적 특징과 실행 흐름

FanOut/FanIn은 하나의 오케스트레이터가 작업을 동적으로 분해하여 다수의 서브에이전트에게 동시에 위임한 뒤, 각 서브에이전트의 작업 결과를 자동 취합하여 최종 출력으로 합성하는 병렬 실행 워크플로우이다. OpenClaw는 최대 8개의 서브에이전트를 동시에 격리 생성하며, 각 에이전트는 독립적 네임스페이스에서 독립적 컨텍스트를 보유하여 서로의 상태에 간섭하지 않는다. 개별 서브에이전트의 실패나 비정상 출력이 전체 시스템에 파급되지 않도록 결함 격리 설계 원칙이 적용되며, 서브에이전트의 격리된 작업 결과는 8단계 우선순위 체계를 통해 결정적으로 부모의 채팅 채널로 라우팅된다.

ACP 런타임 경로 우선 사용 규칙

sessions_spawn 호출 시 ACP 런타임이 제공하는 기본 실행 경로를 반드시 우선 사용해야 한다. 이 경로는 ACP 채널바인딩8단계 우선순위 라우팅을 통해 결과가 결정적으로 부모 세션에 전달되도록 보장한다. 직접 acpx를 호출하는 방식은 ACP 런타임이 unhealthy하거나 사용자가 명시적으로 acpx 흐름을 원할 때만 예외적으로 허용되며, 일반적인 상황에서는 ACP 경로를 우선 사용해야 한다. 이 규칙을 준수하지 않으면 토큰 비용이 불필요하게 발생하고 결과 라우팅의 정합성이 훼손될 수 있다.

agentId 명시적 지정과 격리 네임스페이스

sessions_spawn 호출 시 요청한 하네스에 맞는 정확한 agentId를 명시하는 규칙은 서브에이전트가 완전히 격리된 환경에서 실행되도록 보장한다. 정확히 명시되면 각 서브에이전트가 agent:<agentId>:subagent:<uuid> 형식의 완전한 격리 네임스페이스에서 실행되어 서로 다른 역할의 에이전트가 독립적 컨텍스트에서 병렬 작업을 수행할 수 있다. 이 격리는 ACP 채널바인딩을 통해 최종적으로 부모 세션에 정합성 있게 합성되며, agentId를 생략하거나 잘못 지정하면 격리 네임스페이스가 형성되지 않아 결과 라우팅이 불안정해진다.

결정적 세션명과 복구 메커니즘

세션명을 oc-<harness>-<conversationId> 형태로 결정적으로 지정하는 규칙은 ACP Harness가 세션을 정상적으로 추적하고 비정상 종료 시 Stateless Reconnect를 통한 복구 가능성을 확보하기 위해 필수적이다. 이 명명 규칙을 준수하면 ACP Harness의 세션 추적 능력과 결함 격리 메커니즘이 정상 작동하여 결과 라우팅의 정확성을 유지할 수 있다. 반대로 무작위하거나 일관성 없는 세션명을 사용하면 복구 메커니즘이 작동하지 않아 작업 실패 시 사용자가 직접 재시작해야 하는 비효율이 발생한다.

출력 릴레이 규칙과 로그 관리

Fan-In 단계에서 사용자에게 결과를 반환할 때는 acpx 명령의 최종 어시스턴트 텍스트만 릴레이하고 원시 로그나 노이즈는 숨기는 출력 관리 규칙이 적용된다. 상세 로그가 필요하면 별도 요청에 의해서만 verbose 모드를 활성화하여 핵심 산출물에 집중할 수 있도록 설계되었다. 이 규칙은 사용자의 인지 부하를 줄이고 중요한 정보에만 집중할 수 있게 하며, 불필요한 기술적 디테일이 결과물을 혼란스럽게 만드는 것을 방지한다.

ACP 세션 생성 실패 시 자동 복구 정책

ACP 세션 생성 실패 시 플러그인 로컬 acpx를 재설치·재검증하고 게이트웨이를 자동 재시작하여 복구 시도를 우선 수행하는 표준 정책이 적용된다. 이 자동 복구 체계를 먼저 시도하고, 복구 성공 후 재시도하며 실패할 경우에만 사용자에게 대안 옵션을 제시한다. 이 정책은 결함 격리 안전망을 유지하면서도 사용자 개입 최소화를 목표로 하며, 일시적인 환경 불안정에도 작업이 지속될 수 있도록 설계되었다. > 이 주제의 전체 맥락 방향성은 **바이브코딩에서 오픈클로까지** 원본 글에 세밀하게 정리되어 있습니다. 더 깊게 탐구하고 싶다면 관련 내부 대표 문서(Pillar/Entity)를 참조하세요.

자주 묻는 질문

FanOut/FanIn 패턴을 사용할 때 왜 ACP 런타임 경로를 직접 acpx 호출보다 우선해야 하나요?

ACP 런타임 경로는 ACP 채널바인딩8단계 우선순위 라우팅을 제공하여 서브에이전트의 작업 결과가 결정적으로 부모 세션에 전달되도록 보장합니다. 직접 acpx를 호출하는 방식은 불필요한 토큰 비용이 발생하고 결과 라우팅의 정합성이 훼손될 수 있어, 일반적인 상황에서는 ACP 경로를 우선 사용해야 합니다.

agentId를 명시하지 않으면 어떤 문제가 발생하나요?

agentId를 명시하지 않으면 서브에이전트가 완전히 격리된 네임스페이스에서 실행되지 않아 서로 다른 역할의 에이전트가 독립적 컨텍스트를 유지하기 어렵습니다. 이로 인해 ACP 채널바인딩을 통한 결과 합성이 불안정해지고, 격리 메커니즘이 제대로 작동하지 않아 전체 시스템에 간섭이 발생할 수 있습니다.

세션명을 결정적으로 지정해야 하는 이유는 무엇인가요?

oc-<harness>-<conversationId> 형태로 세션명을 지정하면 ACP Harness가 세션을 정상적으로 추적하고 비정상 종료 시 Stateless Reconnect를 통한 복구 가능성을 확보할 수 있습니다. 일관성 없는 세션명은 복구 메커니즘이 작동하지 않아 작업 실패 시 사용자가 직접 재시작해야 하는 비효율을 초래합니다.

출력 릴레이 규칙은 왜 필요한가요?

Fan-In 단계에서 최종 어시스턴트 텍스트만 릴레이하고 원시 로그를 숨기는 규칙은 사용자의 인지 부하를 줄이고 중요한 정보에만 집중할 수 있게 합니다. 불필요한 기술적 디테일이 결과물을 혼란스럽게 만드는 것을 방지하며, 핵심 산출물에 집중할 수 있도록 설계되었습니다.

ACP 세션 생성 실패 시 자동으로 어떤 복구 절차가 수행되나요?

플러그인 로컬 acpx를 재설치·재검증하고 게이트웨이를 자동 재시작하여 복구 시도를 우선 수행합니다. 복구 성공 후 재시도하며 실패할 경우에만 사용자에게 대안 옵션을 제시하는 정책으로, 일시적인 환경 불안정에도 작업이 지속될 수 있도록 결함 격리 안전망을 유지합니다.

최대 몇 개의 서브에이전트를 동시에 생성할 수 있나요?

OpenClaw의 sessions_spawn는 최대 8개의 서브에이전트를 동시에 격리 생성할 수 있습니다. 각 에이전트는 독립적 네임스페이스에서 독립적 컨텍스트를 보유하여 서로의 상태에 간섭하지 않으며, 개별 서브에이전트의 실패나 비정상 출력이 전체 시스템에 파급되지 않도록 결함 격리가 적용됩니다.

관련 분석

바이브코딩의 다중 에이전트 안전장치 채널바인딩과 세션 격리의 이중 구조OpenClaw ACP Harness는 서브에이전트의 독립 실행 네임스페이스와 8단계 우선순위 라우팅 체계를 결합해 컨텍스트 오염과 결과 분실을 동시에 차단한다. LLM 토큰 비용 없이 부모 채널로 결과를 전송하며,ACP 영속화가 바이브코딩 세션의 컨텍스트 분열을 방지하는 구조적 원리OpenClaw 의 ACP 런타임은 sessionKey 를 파일로 영구 저장하여 재연결 시 이전 컨텍스트를 로드하고 복원한다. 주요 변수와 진행 중인 작업을 memory/*.md 혹은 MEMORY.md 에 주기적으로오픈클로 에이전트 오케스트레이션 구조와 전통 IDE 비교 분석OpenClaw는 Gateway가 로컬 127.0.0.1:18789에서 WebSocket 서버로 동작해 모든 채널을 단일 제어 평면에서 라우팅하고, auth‑profiles.json을 통해 인증 정보를 공유하여 보안Agent와 , 에이전트 루프 아키텍처의 상호보완적 확장 전략Anthropic의 Claude Code는 Planner-Coder-Executor 3단계 루프를 통해 자기 개선 코드를 생성하는 코드 특화 엔진으로 작동하며, OpenClaw는 ACP 채널 바인딩과 execFileAgent와 에이전트 루프 자율성 차이가 입문자 학습에 미치는 결정적 영향Claude Code 는 다수 작업 자동화에 강점이 있으나 결정 과정의 불투명성이 입문자의 이해를 방해한다. 반면 OpenClaw 는 단계별 검증과 구조화된 피드백을 제공해 각 로직을 직접 확인하며 학습할 수 있는