OPENCLAW MULTI
CHANNELS_
JSONL_
BOOTSTRAP.

マルチチャネルゲートウェイ運用

Telegram と業務 IM、社内ボットをひとつの OpenClaw Gateway に載せるのは効率的ですが、ある日HTTP は 200 のまま全チャネルだけ無音になることがあります。2026.4.x では channels.start のような構造化 RPC で名前付きチャネルアカウントを起動できますが、~/.openclaw/agents/main/sessions/*.jsonl が cron と長時間エージェントで数十 MB に膨らむと、Gateway は Bootstrap: Session Queue Acquired QueueKey=agent:main:main をログに出した直後、巨大ファイルの同期パースにブロックされ Node のイベントループを占有します。結果は CPU 張り付き・トレース停止・ハンドラ飢餓です。別件として、マルチチャネル時の歴史的な announce キュー不具合も「無音」に似た見え方をします——JSONL の Bootstrap 停滞と配送経路バグは切り分けが必要です。あわせて読む:WebSocket 握手 / Ed25519 Runbooksessions + OAuth + cron の jsonl 復旧Gateway systemd / launchd の恒久化

1. 課題の分解 —「RPC が通った」の意味しないとき

1) RPC 成功 ≠ メインループ健全channels.startstarted:true を返しても、Supervisor 側が詰まっていればプラグインは進みません。2) Bootstrap のパースはホットパス。ソケットが生きていても、巨大 JSONL の同期的処理だけでスケジューラが止まります。3) マルチチャネルは症状を増幅。announce キューの誤ルーティングは「全チャネル無音」に似ますが、対処はリリースノートやキュー修正が中心です。4) リモート launchd のズレ。対話シェルの HOME と plist の環境が違うと、運用が触っているファイルと Gateway が読んでいるファイルが別物になります。

2. 症状マトリクス

兆候最初に疑うもの証拠の取り方
Bootstrap 行のあとログが進まない巨大な jsonlls -lhS ~/.openclaw/agents/main/sessions/*.jsonl
CPU は高いがメモリは平坦JSON パースの busy loopチャネル tic が出ない perf / trace
announce / サブエージェントのみ異常過去のキュー経路バグリリースノートと「全滅」パターンの diff
リモート Mac だけ再現plist と環境変数の driftlaunchctl print の env ブロック

3. 五段階レスキュー

Step 01 影響範囲の固定

同時再起動や設定変更を止め、Gateway のビルドハッシュと OS パッチレベルを記録します。

Step 02 channels.start を意図して使う

channel と必要なら accountId を明示します。Bootstrap が詰まっているときに単発プローブの緑だけを信用しないでください。

Step 03 最大 jsonl の特定とバックアップ

破壊的操作の前に、巨大ファイルをタイムスタンプ付きでコピーします。

ls -lhS ~/.openclaw/agents/main/sessions/*.jsonl | head -5

Step 04 停止 → 退避 → lock 削除 → コールドスタート

ホットパスから monster JSONL を外し、古い *.lock を削除して再起動し、Bootstrap を超えてログが進むことを確認します。

Step 05 段階的検証

openclaw gateway status、単一チャネルのスモーク、その後 cron。リモート Mac では plist の環境と対話シェルのパスを launchd ガイドに沿って揃えます。

4. 決定マトリクス

証拠第一選択次善避けること
Bootstrap 停滞 + 単一ファイル >50MBjsonl のアーカイブと cron 予算エージェント分割無限再起動ルーレット
announce 系のみの異常キュー修正入りのアップグレードノイズの大きい外向き配送の一時停止監査ログを理由なく無効化
リモート plist のみHOME とボリュームの整合専用サービス UID同一性を確認せずコピー

数値ゲート:単一 jsonl が40MBを監査で連続 3 回超過 → アーカイブ方針を義務化;Bootstrap 後120 秒ログなし → P0;リモート Mac で週 2 回の無音フリーズ → データボリューム移行と jsonl 増加率の Grafana などを検討してください。

5. FAQ

JSONL を動かすとチャット履歴は失われる? バックアップから戻さない限り埋め込みトランスクリプトの細部は失われます。可用性を優先し、ステージングでリストアをリハーサルしてください。

channels.start と gateway 再起動は同じ? 別レイヤーです。巨大ファイルを退避せず再起動しても Bootstrap 停滞は直りにくいです。

Windows と Mac で挙動が違う理由は? AV、スケジューラの実行ユーザー、パス解釈が異なります。ラベルではなくメトリクスで見てください。

6. 事例メモ

「OAuth が壊れた」と見えたが、実際は main.jsonl が 80MB。アーカイブ後、数秒で Gateway が復帰した。

チームはプロバイダ障害と誤認していたが、ファイルシステムの増加率が CPU を支配していたことが判明。その後、OAuth ダッシュボードとは別に時間あたりのバイト増をグラフ化した。

7. まとめ — MACGPU

RPC が揃ったあとの次の SLA はセッションストレージの増加速度です。VPS だけの構成は検証には速い一方、Apple ツールチェーンでのデバッグが絡むなら、ディスク監視の効いた安定したリモート Mac に Gateway を載せる——MACGPU の時間課金ノードは、無音インシデントの頻度と設備投資を揃えやすくします。

無音の多くはモデル障害ではなく、イベントループへのストレージ飢餓です。ハンドシェイク設定を触る前に JSONL を確認してください。リモート Mac のキャパシティは、ノート PC の熱と Wi‑Fi から本番稼働を切り離すのに有効です。