LLM エージェントに push 通知チャネルを組み込む際の落とし穴#
Claude Code 等の対話型 LLM エージェントに Telegram などの外部チャネルを連携する際、MCP サーバーの設定だけでは不十分という教訓。
観察された問題#
- 受信が無音で止まる: 送信は正常だが受信だけ止まる現象。長時間セッション中に、ポーリング型ボット(grammy 等)がメッセージを消費する一方で、本体プロセスへの stdio 配信が詰まるケースがある。セッション再起動が最短の回復手段。
- キープアライブでは解決しない: Cron で定期的にセッションを起こしても、stdio パイプの詰まりはアイドルが原因ではないので直らない。
- MCP 定義だけでは割り込みが発生しない:
.mcp.jsonでツールを登録しても、リアルタイム push 通知にはチャネル登録(harness ごとの別フラグ)が必要。2層の設定が必要と理解しないと同じ問題を繰り返す。
学び#
- 双方向チャネルは「送信経路」と「受信経路」を別々に検証する
- アイドル対策とパイプ詰まり対策は別問題として扱う
- MCP のツール登録と push 購読は設定レイヤが違うことを前提にする
- チャネル変更で再起動する前に、セッションログを外部ファイルに残すルールを決めておく(記憶消失による議論のやり直しを防ぐ)