Skip to main content

概要

Shannonはリアルタイムイベントストリーミングを提供し、タスク実行をリアルタイムで監視できます。これは以下に不可欠です:
  • ユーザーへのライブフィードバック提供
  • Workflow実行のデバッグ
  • インタラクティブUIの構築
  • 長時間実行タスクの監視

ストリーミング技術

Shannonは2つのストリーミングプロトコルをサポート:
ほとんどのユースケースでは、シンプルさと組み込みの再接続処理のためSSEが推奨されます。

Server-Sent Events (SSE)

cURLの使用

出力:

Python SDKの使用

イベントタイプ

Shannonは異なるカテゴリにわたって33のイベントタイプを発行します。最も一般的に使用されるものは以下です:

コアWorkflowイベント

LLM & ツールイベント

進捗 & ステータスイベント

マルチAgentイベント(機能ゲートが必要)

全27イベントタイプの完全なリストについては、Event Types Referenceを参照してください。

WebSocketストリーミング

WebSocket経由で接続

WebSocketストリーミングは現在サーバーからクライアントへの一方向のみです。タスクをキャンセルするにはREST API /api/v1/tasks/{id}/cancelを使用してください。

イベントのフィルタリング

ノイズを減らすためにタイプでイベントをフィルタリング:

進捗追跡

イベントからタスクの進捗を計算:
出力:

リアルタイムUI例

Reactコンポーネント

重要な実装詳細:
  • Shannonは名前付きSSEイベントを発行します(例: event: AGENT_STARTED)。各イベントタイプに対してaddEventListener()を使用する必要があります
  • ブラウザのEventSource APIはカスタムヘッダーをサポートしていません。クエリパラメータ経由でAPIキーを渡さないでください。ヘッダーを注入するバックエンドプロキシを使用するか、開発環境で認証を無効にしてください
  • メモリリークを防ぐため、クリーンアップ関数で常にイベントリスナーをクリーンアップしてください

エラーハンドリング

接続障害を適切に処理:

ストリーミングでの認証

認証が有効な場合、APIキーを提供:

APIキー付きSSE

APIキー付きPython SDK

パフォーマンスの考慮事項

イベントバッファリング

Shannonはクライアントを圧倒しないようにイベントをバッファリングします:

キープアライブ

SSEはタイムアウトを防ぐために15秒ごとにキープアライブコメントを送信:

リソースクリーンアップ

完了時には常にストリームを閉じる:

ベストプラクティス

1. シンプルな監視にはSSEを使用

2. 切断を処理

3. 不要なイベントをフィルタリング

4. タイムアウトを設定

次のステップ

Python SDK

SDKでの非同期ストリーミング

APIリファレンス

ストリーミングAPI詳細

監視

タスク監視ガイド

WebSocket API

WebSocketドキュメント