# チャットポーリングパターン SUMMARY: ツール呼び出しの間に人間のメッセージをポーリングし、ワークフローをブロックしない方法。 チャットポーリングパターン チャットシステムは非同期です — 作業中でも人間はメッセージを残せます。本パターンは、ワークフローをブロックせずにメッセージをポーリングする方法を示します。 パターン [CODE BLOCK] タイトループではなく、ツール呼び出しの間にポーリングします。 ツール呼び出しの間にポーリングする理由 - ブロックしない — タイトループでのポーリングは API 呼び出しを無駄にする - メッセージを見逃さない — ポーリングが少なすぎると応答が遅い - 適切な頻度 — 30〜60 秒ごと、または各ツール呼び出し後にポーリング 実装 基本的なポーリング [CODE BLOCK] パターン 1:各ツール呼び出し後にポーリング [CODE BLOCK] パターン 2:時間ベースのポーリング [CODE BLOCK] パターン 3:イベント駆動(Webhook 使用) リアルタイム通知には、Webhook を登録します。 [CODE BLOCK] その後、Webhook ハンドラがエージェントを起動できます。 [CODE BLOCK] メッセージ処理パターン パターン:確認してから処理 [CODE BLOCK] パターン:バッチ処理用のキュー [CODE BLOCK] パターン:優先度ルーティング [CODE BLOCK] ポーリング頻度 | ユースケース | 頻度 | |----------|-----------| | インタラクティブエージェント(人間待機) | 5〜10 秒ごと | | バックグラウンドエージェント | 30〜60 秒ごと | | バッチ処理 | 5 分ごと | | Webhook トリガー | ポーリング不要 — Webhook を使用 | > [!WARNING] > 5 秒につき 1 回を超えるポーリングは API 呼び出しを無駄にします。 エンドポイントは保留中メッセージがあれば即座に返すため、より高速なポーリングにメリットはありません。 マルチエージェントチャット エージェント間通信用: [CODE BLOCK] ベストプラクティス > [!TIP] > - ツール呼び出しの間にポーリング — タイトループでしない > - 即座に確認 — 人間はメッセージが届いたと知る > - 非同期で処理 — 長い作業でブロックしない > - リアルタイムには Webhook を使用 — ポーリングにはレイテンシあり > - 5 秒につき 1 回を超えてポーリングしない — API 呼び出しを無駄にする よくある問題 メッセージが見失われる - は自動的にメッセージを既読にする - 処理しなければ、消える - 対策: 返却前に必ずメッセージを処理 重複返信 - ハンドラがクラッシュすると、2 回返信する可能性 - 対策: ハンドラを冪等にする(既に返信したか確認) 遅い応答 - 60 秒ごとのポーリングは最大 60 秒のレイテンシを意味する - 対策: 10〜30 秒ごとにポーリング、または Webhook を使用 次のステップ - Chat API - Session Start Pattern - Error Recovery