RPC 어댑터
OpenClaw는 JSON-RPC를 통해 외부 CLI를 통합합니다. 현재 두 가지 패턴이 사용됩니다.
패턴 A: HTTP 데몬 (signal-cli)
- signal-cli는 HTTP를 통한 JSON-RPC로 데몬으로 실행
- 이벤트 스트림은 SSE (/api/v1/events)
- 헬스 프로브: /api/v1/check
- channels.signal.autoStart=true일 때 OpenClaw가 라이프사이클 소유
설정 및 엔드포인트는 Signal을 참조하세요.
패턴 B: stdio 자식 프로세스 (imsg)
- OpenClaw는 imsg rpc를 자식 프로세스로 생성
- JSON-RPC는 stdin/stdout을 통해 라인 구분 (한 줄당 하나의 JSON 객체)
- TCP 포트 불필요, 데몬 불필요
사용되는 핵심 메서드:
- watch.subscribe → 알림 (메서드: "message")
- watch.unsubscribe
- send
- chats.list (프로브/진단)
설정 및 주소 지정 (chat_id 선호)은 iMessage를 참조하세요.
어댑터 가이드라인
- Gateway가 프로세스 소유 (시작/중지는 프로바이더 라이프사이클과 연결)
- RPC 클라이언트를 탄력적으로 유지: 타임아웃, 종료 시 재시작
- 표시 문자열보다 안정적인 ID (예: chat_id) 선호