2026 OpenClaw 멀티 Agent 스케줄링 실무: `sessions_spawn` runtime=acp vs subagent 결정 매트릭스, streamTo 오설정 트리아지와 ACP 1008 핸드셰이크 Runbook

약 18분 · MACCOME

메인 Agent에서 sessions_spawn으로 서브 작업을 띄웠는데 ACP_TURN_FAILED, invalid handshake 1008 또는 queue owner unavailable이 나고, 같은 Gateway 직접 채팅은 정상일 때——본문은 runtime=acp vs runtime=subagent 선택 시점;② streamTo/resumeSessionId가 acp 전용인 이유와 subagent 오설정 트리아지;③ ACP 핸드셰이크 실패 시 subagent 폴백·Windows OPENCLAW_ACPX_RUNTIME_STARTUP_PROBE;④ Completions vs Responses streamTo 자동 채움 차이를 답합니다. 업그레이드 호위 ACP 트리아지, Docker 서브에이전트 1008 페어링과 보완——본문은 멀티 Agent runtime 선택만 다룹니다.

멀티 Agent 스케줄링에서 가장 많은 여섯 가지 오판 (runtime 변경 전에 정리)

  1. 기본 runtime=acp인데 ACP bridge 미구비: 메인 채널은 대화되나 spawn 즉시 ACP_TURN_FAILED——원인은 acpx 미등록·queue owner 오프라인이며 모델 쿼터가 아닙니다.
  2. runtime=subagentstreamTo/resumeSessionId 입력: ACP 세션 연속 전용 필드입니다. subagent는 Gateway 내장 RPC 경로로, 오설정 시 파라미터 무효 또는 필드 조용히 폐기——「서브 Agent가 컨텍스트를 못 받음」처럼 보입니다.
  3. 1008을 모두 Docker 페어링으로 단정: Compose는 trustedProxies 전문 참조;로컬 acp 1008은 handshake 버전·bridge 경합이 더 흔합니다.
  4. 업그레이드 후 reload 없이 spawn 테스트: CLI는 신버전·Gateway는 구 프로세스——acp·subagent 스택 분열. 먼저 수락 사다리 정렬 후 스케줄링 검증하십시오.
  5. Windows에서 acpx 기동 프로브 무시: provider 확장이 기동을 지연하면 bridge 준비 전 ACP 핸드셰이크——invalid handshake 로그. OPENCLAW_ACPX_RUNTIME_STARTUP_PROBE로 연장·재시도하십시오.
  6. Completions·Responses API 혼용 후 streamTo 자동 채움 미확인: 2026 라우팅은 Responses에서 streamTo 추론, Completions는 안 함——spawn 고장으로 오인하기 쉬우며 API 형태·runtime 불일치입니다.

2026 upstream은 sessions_spawn을 두 상호 배타 runtime으로 분리합니다: runtime=acp는 ACP bridge로 외부 acpx와 통신·streamTo로 서브 출력을 메인 UI에 환류;runtime=subagent는 Gateway 프로세스 내 경량 서브에이전트——지연 낮고 acpx 비의존, ACP 연속 필드는 미지원. runtime 오선택+잘못된 필드는 on-call 최악의 「가짜 복잡성」——경로 정렬 후 모델·allowlist(tools.profile 트리아지)를 논의하십시오.

실무에서는 매 spawn 호출을 스케줄링 계약으로 기록하십시오: runtime, UI 환류 의존, 메인 세션 Completions/Responses, 실패 시 폴백(subagent/롤백). 계약 없이는 「어제 spawn 됐는데 오늘 안 됨」 설명이 어렵습니다——변경은 Gateway 프로세스보다 템플릿 필드·API 형태에 있습니다.

사이트 기존 장문 본문 범위 본문에서 반복 안 함
업그레이드 호위 ACP 트리아지 spawn 시 acp vs subagent 선택·폴백 backup create, gateway probe 전 사다리
Docker 서브에이전트 1008 subagent 경로와 pairing 1008 경계 Compose trustedProxies 단계 명령
tools.profile 트리아지 spawn 성공 후 「서브 Agent 도구 없음」 2차 조사 allowlist 3층 전문
SSH 상시 Gateway 원격 Mac acpx·subagent 공존 토폴로지 포트 포워딩·launchd 세부

runtime=acp vs runtime=subagent: 언제 어느 스택

선택 구호: UI 환류·기존 ACP 세션 연속·Cursor/IDE acpx 정렬 → acpGateway 내 폐루프·저의존·acp 불가 → subagent. 아래는 프로덕션 네 가지 작업 형태(80% 티켓 커버):

작업 형태 권장 runtime 핵심 파라미터 피할 것
서브 Agent 출력을 메인 채팅에 스트리밍 환류 acp streamTo→메인 session;선택 resumeSessionId subagent+streamTo(무효 조합)
백그라운드 배치, UI 환류 불필요 subagent task+타임아웃;streamTo 없음 억지 acp로 bridge 장애면 확대
ACP bridge queue owner unavailable 임시 subagent 티켓에 폴백 기록;병행 acpx 등록 수리 acp 반복 재시도로 MTTR 상승
멀티 컨테이너 Docker, RPC healthy·spawn 1008 페어링/네트워크 수리 후 subagent trustedProxies 대조;Docker 전문 bind 미수리 상태 runtime 전환

streamTo / resumeSessionId: acp 전용 오설정 트리아지

「spawn 파라미터는 맞는데 서브 Agent 빈 응답」 다수는 필드·runtime 교차 오염입니다. Gateway는 subagent 경로에서 ACP 전용 필드를 제거·거부합니다. Completions 예시에서 streamTo:"main"을 복사했는데 실제가 runtime=subagent면 로그는 일반 RPC error만——호출 JSON 대조가 필요합니다.

runtime=acp에서 resumeSessionId는 기존 acpx 세션 연속(동일 스레드 다중 spawn), streamTo는 서브 토큰 스트림을 Control UI·지정 channel로 보냅니다. 2026 Responses 라우팅은 일부 설정에서 streamTo 자동 추론(메인이 Responses·미명시 시);Completions는 자동 채움 없음——Responses→Completions 이전 후 spawn 템플릿 미수정 시 「예전엔 환류, 지금은 백그라운드 완료」 회귀. upgrade 무관, API+runtime 조합 문제입니다.

필드 박리 실험: 실패 JSON 복제→streamTo·resumeSessionId 제거→runtime=subagent 재시도. 즉시 성공이면 ACP 경로·오설정 거의 확정;실패 시 pairing·Token·도구면. Runbook 4단계에 기록해 acp 로그 공회전을 막으십시오.

json
// ✅ acp: UI 환류 + 선택적 연속
{
  "tool": "sessions_spawn",
  "runtime": "acp",
  "task": "경쟁사 가격 조사 후 표 출력",
  "streamTo": "main",
  "resumeSessionId": "acp-sess-abc123"
}

// ✅ subagent: Gateway 내 폐루프, streamTo 금지
{
  "tool": "sessions_spawn",
  "runtime": "subagent",
  "task": "logs 디렉터리 파일 일괄 이름 변경"
}

// ❌ 흔한 오설정: subagent에 ACP 필드
{
  "runtime": "subagent",
  "streamTo": "main"
}

ACP 핸드셰이크 실패 트리아지: ACP_TURN_FAILED, 1008, queue owner

runtime=acp 실패·메인 채팅 정상 시 로그 지문으로 분류——「Gateway 완전 무응답」과 혼조사 금지(후자는 채널/모델 전문).

로그/증상 우선 의심 1차 조치
ACP_TURN_FAILED acpx 미준비;turn 타임아웃 Windows OPENCLAW_ACPX_RUNTIME_STARTUP_PROBE=1;bridge 등록 확인
invalid handshake / WebSocket 1008 CLI/Gateway/acpx 버전 분열;헤더 불일치 동일 버전 정렬;단일 reload;핀 매트릭스
queue owner unavailable ACP bridge 등록 소실(2026.3.x 회귀 구간) host acpx 확인;임시 runtime=subagent SLA
subagent도 1008 페어링/Token/네트워크(ACP 비전용) Docker 1008 Runbook
spawn 성공·서브 Agent 도구 없음 tools.profile / agent 오버라이드 tools.profile 트리아지
warning

폴백 전략: acp가 변경 창에서 연속 2회 실패(reload 후 재검 포함)하고 subagent 단독 최소 작업 프로브 통과 시, 티켓에 「임시 runtime=subagent」 명시·UI 환류 작업 제한——acpx 수리 후 acp 복귀. 불량 digest 롤백과 직교: 폴백=SLA, 롤백=알려진 regression 수리.

Windows와 OPENCLAW_ACPX_RUNTIME_STARTUP_PROBE

Windows에서 provider 확장·Defender가 acpx 콜드스타트를 수 초 지연——bridge 준비 전 spawn은 ACP_TURN_FAILED 또는 invalid handshake로 보입니다. OPENCLAW_ACPX_RUNTIME_STARTUP_PROBE=1(의미는 설치 버전 문서 기준)로 첫 spawn 전 acpx 헬스 프로브 추가 대기. 계속 실패 시 동일 머신 subagent 최소 작업으로 Gateway 스케줄링 스택 자체 검증 후 acpx 설치/권한 격리——Windows 기동 지연을 「OpenClaw 버전 롤백 필수」로 오판하지 마십시오.

업그레이드 호위와 분업: 호위=버전 이전 후 probe/ACP 전역 회귀;본문=버전 안정 후 spawn 스케줄링 오선택·핸드셰이크 간헐 실패. 연계 시 upgrade 사다리 통과 먼저——아니면 split-brain을 streamTo 오설정으로 오판합니다.

powershell
# Windows: acpx 기동 프로브 연장(예)
$env:OPENCLAW_ACPX_RUNTIME_STARTUP_PROBE = "1"
openclaw gateway status
openclaw gateway probe

# 최소 subagent 프로브(streamTo 없음)
# Control UI 또는 CLI에서 동등 sessions_spawn, runtime=subagent

acp 장애 시 subagent 우선: 수리 지속 vs 핀 vs 폴백 결정 매트릭스

영향면 acp 수리 지속(설정/bridge) 임시 runtime=subagent 핀/롤백
spawn/acp만 적색, 메인·subagent 프로브 정상 acpx 등록·startup probe 권장: UI 환류 불필요 작업 subagent 알려진 regression 구간에서만
acp+subagent 동시 실패, probe도 적색 backup 복원 후 단계 시도만 1순위 아님 우선 backup 또는 digest 롤백
UI 환류 필수, acp 불가 bridge 수리 전 업무 피해 streamTo 대체 불가 롤백 평가 또는 원격 Mac 상시 Gateway

7단계 「선택—프로브—spawn—트리아지—폴백—기록」Runbook

  1. 호출 JSON 고정: runtime, streamTo/resumeSessionId 유무, 메인 API(Completions/Responses).
  2. Gateway 기선: openclaw gateway status+gateway probe;업그레이드 후 단일 reload(업그레이드 호위).
  3. 선택 자가점검: UI 환류→acp+streamTo;백그라운드→subagent, ACP 필드 제거.
  4. 최소 spawn 프로브: subagent 읽기 전용 한 문장 선행;통과=스케줄링 OK, 실패=pairing/Token.
  5. acp 전담: acpx·bridge;Windows OPENCLAW_ACPX_RUNTIME_STARTUP_PROBE;1008/queue owner 로그.
  6. 폴백/롤백: acp 2회 연속 실패→subagent 폴백 티켓;양 경로 단절→digest 롤백.
  7. 종료 지표: spawn 성공률·폴백 비율·MTTR;내부 runtime 메모 갱신.

변경 티켓에 쓸 세 가지 정량 지표

  • spawn 성공률(runtime 버킷): sessions_spawn 성공/총 호출;acp <95%·subagent 정상→모델 교체보다 bridge 수리.
  • acp→subagent 폴백 비율: UI 환류 작업 장기 폴백 부적;1주 >30% subagent 대체→버전 핀·토폴로지 이전.
  • streamTo 오설정 이벤트: runtime=subagent 호출에 streamTo/resumeSessionId 잔존 감사;목표 0(lint·템플릿 검토).

노트북 Gateway에 acpx·절전·다중 provider 플러그인 혼재 시 spawn 실패가 「OpenClaw 불안정」으로 오기록됩니다. 권위 Gateway·acpx를 상시 전원 원격 Mac에 공존, 로컬은 SSH Control UI 포워딩만——spawn·probe 동일 노드 수락·로그 타임라인 정렬.

정리: runtime 선택은 스케줄링 계약, 튜닝 미신 아님

prompt만 반복하고 runtime·streamTo 정합 미확인 시 ACP 핸드셰이크가 「멀티 Agent 불가」 착시로 확대됩니다. acp/subagent 매트릭스·오설정 트리아지·subagent 폴백을 runbook에 쓰면 on-call을 밤샘 맹시도에서 프로브·폴백·지표 있는 분 단위 사건으로 압축합니다.

Windows 노트북·Docker 분리 컨테이너에서 acp bridge를 억지로 유지하면 세 가지 숨은 비용(기동 경합 가짜 1008, Completions/Responses streamTo 불일치, 장애면 중첩)을 감수해야 합니다. 7×24·spawn 티켓화·acp/subagent 전환 프로덕션 Gateway는 MACCOME Mac mini(M4/M4 Pro)·6개 지역 유연 리스가 덮개 닫힌 노트북 queue owner 싸움보다 총비용 유리한 경우가 많습니다. 다중 지역 노드·리스 가이드SSH 상시 Runbook으로 토폴로지 연결하십시오.

자주 묻는 질문

streamToresumeSessionIdruntime=subagent에서 쓸 수 있습니까?

없습니다. runtime=acp ACP 연속·UI 환류 전용입니다. subagent는 task 등 Gateway 내장 필드만. 템플릿 검토는 임대 요금 프로덕션 노드 티켓화를 참고하십시오.

ACP 1008 또는 queue owner unavailable 시 반드시 버전 롤백합니까?

반드시 그렇지 않습니다. 증상표로 bridge 등록·Docker 1008 구분;메인 정상 시 임시 runtime=subagent·Windows startup probe. 양 경로 연속 실패 시 digest 롤백;접속은 고객 센터.