OPENCLAW MULTI
CHANNELS_
JSONL_
BOOTSTRAP.
Telegram·기업 메신저·사내 봇을 하나의 OpenClaw Gateway 뒤에 두면 효율적이지만, HTTP 는 200 인데 모든 채널만 침묵하는 상황이 2026.4.x 에서 반복 보고됩니다. 구조화 RPC 인 channels.start 로 이름 있는 채널 계정을 올릴 수 있지만, ~/.openclaw/agents/main/sessions/*.jsonl 이 cron 과 장시간 에이전트로 수십 MB 까지 불어나면 Gateway 는 로그에 Bootstrap: Session Queue Acquired QueueKey=agent:main:main 한 줄을 남긴 뒤 파싱에서 멈춰 Node 이벤트 루프를 점유합니다. CPU 고정·새 trace 없음·핸들러 기아가 전형적입니다. 별개로, 역사적인 announce 큐 라우팅 결함도 멀티 채널에서 무음과 비슷하게 보입니다. JSONL Bootstrap 정체와 배달 경로 버그는 구분해야 합니다. 교차 링크: WebSocket·Ed25519 Runbook, sessions·OAuth·cron jsonl 복구, Gateway systemd·launchd 상주.
1. 문제 분해 — RPC 성공이 곧 루프 건강은 아님
1) RPC 성공 ≠ 메인 루프 정상. channels.start 가 started:true 를 줘도 Supervisor 스레드가 굶으면 플러그인은 진행하지 않습니다. 2) Bootstrap 파싱은 동기 핫패스입니다. 소켓이 살아 있어도 거대 JSONL 의 동기 처리만으로 스케줄러가 멈춥니다. 3) 멀티채널은 증상 표류를 키웁니다. announce 큐 오경로는 무음과 닮았지만 수정은 릴리스·큐 쪽입니다. 4) 원격 launchd 드리프트. 대화형 셸의 HOME 과 plist 환경이 다르면 운영이 건드리는 파일과 Gateway 가 읽는 파일이 달라집니다.
2. 증상 매트릭스
| 신호 | 먼저 의심 | 증거 |
|---|---|---|
| Bootstrap 줄 이후 로그 정지 | 거대 jsonl | ls -lhS ~/.openclaw/agents/main/sessions/*.jsonl |
| CPU 높음·메모리 평탄 | JSON 파싱 busy loop | 채널 tic 없는 perf·trace |
| announce·서브에이전트만 이상 | 과거 큐 라우팅 버그 | 릴리스 노트와 전체 무음 패턴 비교 |
| 원격 Mac 에서만 재현 | plist·환경 drift | launchctl print env 블록 |
3. 5단계 구조 — 구조화된 복구
01 영향 범위 고정
동시 재시작과 설정 변경을 멈추고 Gateway 해시와 OS 패치 수준을 기록합니다.
02 channels.start 의도적 호출
channel 과 필요 시 accountId 를 넘깁니다. Bootstrap 이 막혀 있을 때 단발 프로브 성공만 믿지 마세요.
03 최대 jsonl 식별·백업
파괴적 조작 전에 거대 파일을 타임스탬프와 함께 복사합니다.
04 중지 → 이동 → lock 제거 → 콜드 스타트
monster JSONL 을 핫패스 밖으로 옮기고 오래된 *.lock 을 지운 뒤 재시작하여 Bootstrap 을 넘어 로그가 이어지는지 확인합니다.
05 단계적 검증
openclaw gateway status, 단일 채널 스모크, 그다음 cron. 원격 Mac 에서는 plist 환경과 셸 경로를 launchd 가이드에 맞춥니다.
4. 결정 매트릭스
| 증거 | 우선 | 차선 | 피하기 |
|---|---|---|---|
| Bootstrap 정체 + 단일 파일 >50MB | jsonl 아카이브·cron 예산 | 에이전트 분리 | 무한 재시작 룰렛 |
| announce 경로만 이상 | 큐 수정 포함 업그레이드 | 소음 큰 외부 배달 일시 중단 | 감사 로그 무분별 비활성 |
| 원격 plist 만 해당 | HOME·볼륨 정렬 | 전용 서비스 UID | 동일성 확인 없이 복사 |
수치 게이트: 단일 jsonl 이40MB를 감사에서 연속 세 번 초과하면 아카이브 정책 필수; Bootstrap 후120초 무로그면 P0; 원격 Mac 에서 주당 두 번 무음 프리즈면 데이터 볼륨 이전과 jsonl 증가 Grafana 등을 검토하세요.
5. FAQ
JSONL 을 옮기면 대화 기록은? 백업에서 복구하지 않으면 임베디드 트랜스크립트 세부가 줄어듭니다. 가용성을 우선하고 스테이징에서 복구를 리허설하세요.
channels.start 와 gateway 재시작은 같은가? 서로 다른 층입니다. 거대 파일을 옮기지 않은 재시작은 Bootstrap 정체를 거의 고치지 못합니다.
Windows 와 Mac 이 다른 이유는? 백신·스케줄러 실행 계정·경로 의미가 다릅니다. 라벨이 아니라 메트릭으로 보세요.
6. 사례 노트
OAuth 가 깨졌다고 보였지만 실제로는 main.jsonl 80MB. 아카이브 후 수 초 만에 Gateway 가 깨어났다.
팀은 제공자 장애로 오인했으나 파일시스템 성장률이 CPU 를 지배했다는 것이 드러났고, 이후 OAuth 대시보드와 별도로 시간당 바이트 증가를 차트화했다.
7. 정리 — MACGPU
RPC 가 갖춰진 다음 SLA 는세션 스토리지 속도입니다. VPS 만으로는 검증이 빠르지만 Apple 툴체인 디버깅이 겹치면 디스크 모니터링이 된 안정 원격 Mac 에 Gateway 를 두는 편이 낫습니다. MACGPU 시간 과금 노드는 무음 인시던트 빈도와 설비 비용을 맞추기 쉽습니다.
무음의 상당수는 모델 장애가 아니라 이벤트 루프의 스토리지 기아입니다. 핸드셰이크 설정을 건드리기 전에 JSONL 을 확인하세요. 원격 Mac 용량은 노트북 발열·카페 Wi‑Fi SLA 에서 운영 가동 시간을 분리합니다.