2026 OpenClaw マルチチャネル(Feishu/LINE/Telegram):アップグレード後のセッションルーティング検収と切断修復 Runbook(Mac VPS)
Mac VPS で OpenClaw を常時ゲートウェイとして運用すると、Slack 単体では足りず Feishu のワークフロー、LINE の通知、Telegram の DM を同時に載せたくなります。ルーティングテーブルやプラグイン、セッション永続化がアップグレードで変わると、全チャネルが緑でもスレッドが食い違う、まれな切断のあと再接続しない、といった症状が先に出ます。本稿では Gateway/永続化のプリフライト、単一→二重→全量の三フェーズ検収、channels プローブと健全性判定、チャネル側・ゲートウェイ側・Provider 側の層別表、ダイジェスト固定のロールバックまでを実務順にまとめます。関連:接続はあるが無返信の切り分け、Docker 上のトークンと pairing。
目次
1. 痛みの分解:ルーティング漂移、切断、アップグレード結合
マルチプロバイダは webhook を増やすだけではありません。各 IM のレート制限、署名、識別子をゲートウェイ内で正規化し単一のエージェントセッション図に写像する必要があり、messaging profile やプラグインパスが破壊的に変わると、最初に現れるのはオフラインより交差ルーティングです。
- セッションキー衝突:Feishu の chat_id、LINE の userId、Telegram の chat id を揃えないと、チャネル A が B の履歴を引き当て、モデルクォータ疑いに誤誘導されます。
- 再接続状態の穴:出口 TLS や中間装置の方針変更時に指数バックオフと再接続ログが無いと、一日沈黙に見えます。
- 設定漂移:Docker と launchd で環境変数注入順が違うと同一版でも秘密鍵パスが食い違い、週次でランダム多死に見えます。
- 段階検収の欠如:三チャネル同時投入は失敗面を広げ、コールバック遅延と secret ローテとキュー背圧の切り分けができません。
2. フェーズ表:単一/二重負荷/全量観測
各フェーズ終了時に JSONL スライスとプローブ出力を保管します。
| フェーズ | 目的 | 主リスク | 合格基準 |
|---|---|---|---|
| 単一チャネル | ペアリング完了、DM/グループ最小権限、エコー再現 | allowlist、requireMention、メンション規則の不一致 | 連続十往復でスレッド混線なし、プローブ三回 healthy |
| 二重負荷 | 交互負荷でもセッション分離と遅延が許容内 | 単一プロセス内 HOL で他チャネル飢餓 | 合意 P95 未満、エラー型がクラスタ可能 |
| 全量観測 | 三チャネル常時とアップグレード窓、ログサンプリング | ディスク満杯やローテで必須フィールド喪失 | サンプル窓で任意メッセージの相関 ID を復元可能 |
3. プリフライト:Gateway・トークン・永続化・launchd
ゲートウェイをステートフルサービスとして扱い、トークン権限、永続ボリューム、ThrottleInterval とクラッシュ再起動を変更票に明記します。最小環境変数一覧を plist にも反映し、対話シェルの export だけに依存しないようにします。コンテナではマウントと uid を再確認し、プラグインディレクトリが読み取り専用の半起動を避けます。
openclaw doctor
openclaw gateway status --deep
openclaw channels status --probe
プローブには時刻とビルド ID を付与し、IP 許可や channel secret 変更時は同一スクリプトで再測定して UI クリック依存を排除します。
4. 五ステップ:エコーからロールバック訓練まで
- ベースライン凍結:messaging profile・プラグイン・資格情報のフィンガープリントを記録し、タグまたはダイジェスト固定で latest 禁止。
- 単一エコー:負荷の低いチャネルからペアリングし、定型文で DM/グループを検証、ログで accountId/thread を確認。
- 二重負荷:スクリプトまたは人手で交互送信し HOL を観察。片系のみ遅延ならまず受信レート制限。
- 全量とサンプリング:JSONL は messageId・channelId・latencyMs を残し、ディスクは約二割の余裕をログ急増に。
- ロールバック訓練:メンテ窓で前ダイジェストへ降級し再ペアリング不要を確認、所要時間と欠損面を記録。
5. 三つの引用指標:プローブ周期、再接続、ルーティング抜き取り
- プローブ周期:本番は三分〜五分の軽量プローブをハートビートと分離し、連続三失敗で P1。
- 再接続カウンタ:長寿命接続は時間あたり再接続を追跡し、桁が跳ねたら TLS/証明書を先に疑う。
- ルーティング抜き取り:日次でユーザー所在チャネルとゲートウェイ session の整合を確認し、messageId リプレイ可能にする。
6. レイヤー別故障とログ運用
一部遅延・一部沈黙では webhook 応答コードと署名、ゲートウェイのプロセス/キュー/プラグイン panic、Provider 429/コンテキストの順に見ます。三層とも緑ならペアリングと mention に戻り、上記リンクのチェックリストで突き合わせます。Mac VPS なら固定グローバル IP で Feishu 許可が簡潔になり、再起動頼みのノート PCより再現性が出ます。
ノート PC の家庭回線やスリープは長接続統計を歪めます。永続ボリュームのない Docker 実験環境はアップグレードのたびにペアリング喪失で QR 往復に時間を浪費します。Feishu・LINE・Telegram を本番フローに載せつつ SSH と launchd で統制したいチームには、VPSMAC の Apple Silicon Mac クラウドを専用ゲートウェイ宿主にし、出口・ディスク・24/7 再起動方針を監査可能な一枚チェックに収める方が、不安定なエッジ機器にチャネルを積むより本質に近いことが多いです。
7. FAQ
Feishu と Telegram で bot トークンを同一ディレクトリに置ける? チャネル別パスと Unix 権限で分離し、chmod ミスで両方死ぬのを防ぎます。
二重負荷のメッセージ量は? キュー頭が詰まる程度で十分で、分あたり数十件の交互でも背圧は見えます。絶対 QPS より再現テンプレが重要です。
いつ一チャネルを止める? 第三者障害で SLA が取れないクラスタが明確なら、読み取り専用通知に落としてメインループを止めないようにします。
8. まとめ
マルチチャネルの成功は「送れた」ではなく、アップグレード後もルーティングとペアリングが追跡・逆転可能であることです。三フェーズを変更テンプレに埋め込み、プローブを既存アラートに接続し、四半期ごとに十五分以内で本 Runbook 前半を完了する訓練を入れると運用が安定します。