개인 PoC에서 팀이 운영 가능한 형태로 올릴 때, 어려운 지점은 종종 「OpenClaw가 설치되나」가 아니라 하나의 Gateway가 Telegram·Discord·Slack·Web Chat을 동시에 유지하고, 트래픽을 Agent마다 확정적으로 라우팅하며, 동료 스마트폰·노트북을 디바이스 명령용 Node로 안전하게 붙이는 일입니다. 본문은 임대한 Vuncloud M4 Mac 클라우드 호스트를 상시 Gateway 앵커로 두고, 다중 Agent 라우팅, Gateway 소유 node 페어링, 채널 라우팅을 미동·미서·아태 배치, M4 16GB/24GB, 1TB/2TB, 병렬 분할과 연결합니다. 사실은 docs.openclaw.ai에 고정합니다. 설치 베이스라인은 Mac 클라우드 호스트 OpenClaw 설치·SSH/VNC 검증 FAQ, 원격 접근은 SSH 터널 vs Direct(wss)(Web Chat·페어링 검수에서만 인용—링크 전체 재서술 없음).
검색 의도: 여섯 질문 → 의사결정 매트릭스
「다중 채널·다중 Agent·node 페어링·리전·구성·임대 기간」을 한 표로 모은 뒤 openclaw.json을 편집하세요.
| 질문 | 먼저 확인 | 다음 단계 |
|---|---|---|
| Telegram·Discord에 다른 「페르소나」 | agents.list + bindings |
채널/봇마다 accountId 하나, 서로 다른 agentId 바인딩 |
| 동료 폰에서 카메라·시스템 명령 | openclaw nodes pending |
Gateway 페어링 승인 완료(2026.3.31+ 필수) |
| 항상 main으로만 간다—「라우팅 고장」 | agents list --bindings |
peer 규칙 순서·accountId 누락 |
| Gateway를 미동에 둘지 아태에? | 채널 API 이그레스·당번 타임존 | 핫 봇 경로와 Gateway 동권; 아태는 Node/VNC 폴백 |
| 네 채널에 16GB로 충분? | 동시 세션·workspace 크기 | 다중 Agent+플러그인 병행 시 24GB 권장 |
| 임대·머신 교체 시 state 이전 | OPENCLAW_STATE_DIR |
openclaw backup create --verify 후 공식 migrating |
아키텍처: Gateway 제어 면 vs Node 실행 면 vs 채널 회신
세 문장으로 모델을 고정합니다.
- Gateway(상시 Mac 클라우드 호스트): 유일한 제어 면;
~/.openclaw/openclaw.json, 채널 자격 증명,bindings, 페어링 저장소(nodes/paired.json) 보유. - Agent: 격리된 「두뇌」—별도
agentDir, workspace, 세션 저장; 모델이 채널을 고르지 않음, 인바운드는bindings. - Node: 폰·노트북·헤드리스 Mac을 Gateway WS 주변기기로,
node.invoke제공; 두 번째 Gateway 아님.
인바운드: 채널 → Gateway 라우트 → 선택 Agent 세션 → 모델 → 같은 채널 계정으로 회신. 아웃바운드 디바이스 명령: agent/도구 → Gateway → 페어링된 Node.
원격 Mac 환경 체크리스트
채널을 건드리기 전에 「Gateway가 state를 안정적으로 쓸 수 있는지」를 만족시키세요.
- Node.js 22+와 예측 가능한 비대화
PATH(launchd=SSH, exit 127 방지). OPENCLAW_STATE_DIR을 로컬 데이터 디스크(특히 1TB/2TB 마운트)에—시스템 루트 볼륨 피하기.- 상시 구동:
openclaw onboard --install-daemon+pmset절전 방지; 재부팅 직후openclaw gateway status. - SSH: 자동화·백업·승인 CLI; VNC: GUI 채널 로그인·시스템 권한 프롬프트.
- 권한: 실행 사용자가 state·workspace·
credentials/쓰기 가능;paired.json은 기밀 취급.
미동 vs 미서 vs 아태: Gateway 배치
| 차원 | 미동 Gateway | 미서 Gateway | 아태 Gateway / Node |
|---|---|---|---|
| 채널 API 이그레스 | 미동 업스트림에 가깝다 | 미서 업스트림에 가깝다 | 아태 업스트림; 국경 넘는 봇은 실측 필수 |
| WebSocket·운영 SSH | 미동 팀 RTT 낮음 | 미서 팀 RTT 낮음 | 아태 당번에 유리; 북미 Gateway는 태평양 왕복 |
| 병렬 역할 힌트 | 주 Gateway + 공개 Discord | 중량 Node / 빌드 | VNC 수동 폴백, 리전 Node |
| 선택 메모 | 아티팩트·모델 API가 미동 핫 | 미국 해안은 하나만—한 state dir에 Gateway 둘 금지 | 사람은 아태·두뇌는 북미: 북미 Gateway + 아태 Node |
리전·임대 상세는 리전 선택 핸드북; 여기서는 프로덕션 Gateway 하나 → state 디렉터리 하나를 강조합니다.
M4 16GB vs 24GB: 다중 채널 + 다중 Agent 경계
| 부하 프로필 | 16GB | 24GB |
|---|---|---|
| 단일 Agent + 채널 1~2 PoC | 대개 충분 | 여유·Health 안정 |
| Agent workspace 3개 이상 + 플러그인/skills | 스왑 위험—「채널 멈춤」 체감 | 프로덕션 기본값 권장 |
| 다중 채널 동시 세션·인덱스 | 로그·세션 보존 타이트 | 7×24 Gateway에 유리 |
1TB/2TB·state 디렉터리: 백업·이전
state 기본값은 ~/.openclaw(OPENCLAW_STATE_DIR로 재정의); 페어링은 nodes/paired.json, pending.json. 머신·임대 교체 전:
openclaw gateway stop
openclaw backup create --verify --output ~/Backups
# 새 인스턴스에서 OPENCLAW_STATE_DIR 통일 후 gateway restart
backup CLI·migrating 참고. 큰 workspace는 --no-include-workspace로 아카이브 축소—이후 workspace 트리는 직접 동기화.
따라하기: Gateway → 채널 → Agent bindings → node 페어링
단계는 페이지 HowTo JSON-LD와 맞춥니다. 포트·필드는 openclaw doctor 출력을 따르세요.
- Gateway 설치: Install 의존성;
openclaw onboard --install-daemon. - 채널 구성:
channels.telegram.accounts/channels.discord.accounts에 봇마다accountId;openclaw channels status --probe. - 다중 Agent:
openclaw agents add alerts,openclaw agents add social; 같은agentDir재사용 금지. - bindings 예(Telegram + Discord 분리):
{
agents: {
list: [
{ id: "main", workspace: "~/.openclaw/workspace-main" },
{ id: "alerts", workspace: "~/.openclaw/workspace-alerts" },
],
},
bindings: [
{ agentId: "main", match: { channel: "discord", accountId: "default" } },
{ agentId: "alerts", match: { channel: "telegram", accountId: "alerts" } },
],
channels: {
telegram: {
accounts: {
alerts: { botToken: "…", dmPolicy: "pairing" },
},
},
discord: {
accounts: {
default: { token: "…" },
},
},
},
}
- Node 페어링: 기기가 Gateway에 연결된 뒤 운영 머신에서:
openclaw nodes pending openclaw nodes approve <requestId> openclaw nodes status
2026.3.31부터 node 페어링 승인 전에는 node 명령이 실행되지 않음(큐 명령은 폐기). 승인 후에도 gateway.nodes.allowCommands 등 정책이 적용됩니다.
- 검수:
openclaw gateway restart→agents list --bindings→ 채널별 테스트 메시지 → Web Chat 스팟 체크.
병렬 토폴로지: 미동 Gateway + 미서 Node + 아태 VNC
| 인스턴스 | 역할 | 담당 |
|---|---|---|
| 미동 M4 24GB / 1TB | 유일 Gateway | Telegram+Discord+Web Chat; 모든 bindings |
| 미서 M4 16GB | 중량 Node | 컴파일·배치—두 번째 Gateway 없음 |
| 아태 M4 + VNC | 수동 폴백 Node | GUI 로그인·권한; 짧은 당번 |
병렬의 가치는 경합 감소이지 제어 면 복제가 아닙니다. 토큰·OPENCLAW_STATE_DIR·채널 자격 증명의 쓰기 주체는 하나여야 합니다.
채널 × Agent × 리전 매트릭스
| 채널 | account 전략 | 전형적 Agent binding | Gateway 배치 힌트 |
|---|---|---|---|
| Telegram | BotFather: 봇 하나 → accountId 하나 |
알림·당번 → alerts |
북미 API 핫 패스와 동권 |
| Discord | 페르소나마다 봇 토큰 하나 | 커뮤니티·엔지니어링 → main / coding |
Message Content Intent 확인 |
| Slack | teamId 수준 binding |
워크스페이스별 Agent | 기업 이그레스 정책과 동권 |
| Web Chat | Gateway와 동일 origin | 기본 main 또는 전용 Agent |
브라우저 origin=Gateway 일치 |
FAQ: 페어링·라우팅·채널 로그인
형식: 증상 → 진단 → 조치(상단 FAQPage와 동일).
- 채널 로그아웃·probe 실패 → 토큰 로테이션·Gateway 재시작 →
channels status --probe; 필요 시 해당accountId재로그인. - 잘못된 Agent(binding) → binding 순서·
accountId누락 →agents list --bindings; peer 규칙을 앞에. - 페어링 만료 → pending 5분 타임아웃 → Node 재연결 +
nodes approve재실행. - node 명령 미승인 → 2026.3.31+ 정책 → 페어링 완료; 디바이스 페어링만으로는 부족.
- state_dir 충돌 → 한 dir에 Gateway 둘 → 쓰기 주체 하나; backup으로 이전.
- 디스크 가득 → 세션·로그 팽창 → 데이터 디스크 확장·주기 backup;
df감시. - exit 127 → launchd PATH → 절대 경로; 설치 글 참고.
- Health 실패 → gateway/config/리소스 → doctor + 네 가지 status.
- Web Chat 무응답 → origin/WS → 링크 경로 글; wss 전체는 본문 생략.
- 임대 이전 → 중지·backup → 새 인스턴스
OPENCLAW_STATE_DIR복원 → bindings·페어링 재검증.
paired.json에 node 토큰이 있습니다—Git에 커밋하지 마세요. autoApproveCidrs는 공식 페어링 문서대로 명시적으로 신뢰한 네트워크에서만.
Mac 구매 vs 임대
채널 수·Agent 수·Node 규모가 장기 안정이고 하드웨어 운영이 가능할 때 구매를 검토하세요. 다중 채널 자동화를 반복하는 팀은 일·주·월 임대와 병렬 역할 분할이 맞는 경우가 많습니다. SLA·절대 성능 수치는 만들지 않습니다.
마무리·추가 읽기
권장 순서: Gateway 리전·상시 구동 확정 → 채널·Agent bindings → node 페어링 검수 → M4/디스크/임대·병렬 토폴로지. 요금: https://vuncloud.com/ko/mac-mini-daeyeo.html; 리전: https://vuncloud.com/ko/index.html; 도움말: https://vuncloud.com/ko/mac-jiwon.html; 블로그: https://vuncloud.com/ko/blog/index.html.