登録して招待リンクを共有すると、動画再生報酬と紹介報酬を獲得できます。

cv usk
@cv_usk
AI / Software Research Notes AI Agent, LLMOps, MLOps, Software Architecture 投稿は個人の意見です。
参加 May 2026
279 フォロー中    408 ファン
# OpenAI Agent SDKの便利で実践的な使い方 🌍 エージェントの応答をリアルタイムに届けましょう! Streamingイベントを使い分けることで、タイプライターUIからツール実行通知まで、ユーザー体験を劇的に向上させることができます。 📌 タイトル:Streaming 🔗 URL: 🧩 概要 OpenAI Agent SDKのStreamingは3種類のイベントを提供します。RawResponsesStreamEventはLLMの生トークンをリアルタイムに流し、RunItemStreamEventはメッセージ作成やツール呼び出しなどの粗い粒度のイベントを通知し、AgentUpdatedStreamEventはエージェント切り替えを検知します。cancel()による即時中断やターン単位のキャンセルも可能です。 🛠 使い方 `Agent(name="assistant", instructions="丁寧に回答してください")` を定義し、` "AIの最新動向を教えて")` でストリーミング実行します。`async for event in でイベントをイテレートし、`isinstance(event, RawResponsesStreamEvent)` の場合は ` でトークンをリアルタイム表示します。`isinstance(event, RunItemStreamEvent)` の場合は `event.item.type` が `"tool_called"` でツール呼び出し通知、`"tool_output"` で完了通知、`"message_output_created"` でメッセージ生成開始を表示します。`isinstance(event, AgentUpdatedStreamEvent)` では ` でエージェント切り替えを通知します。最後に `await で最終結果を取得します。 キャンセルは ` "長い分析をして")` で開始した後、ストリームイベントのループ内で `result.cancel()` を呼ぶと即座に中断、`result.cancel(mode="after_turn")` を呼ぶと現在のターン完了後に停止します。キャンセル後は `async for _ in pass` でイテレータを消費してリソースをクリーンアップします。 🏗 実践的な使い方 チャットUIでは、`RawResponsesStreamEvent`の`output_text.delta`を使ったタイプライター表示が基本です。しかし、ツール呼び出し中はトークンが流れないため、`RunItemStreamEvent`の`tool_called`イベントで「検索中...」のようなプログレス表示を挟むのがベストプラクティスです。 マルチエージェント構成では、`AgentUpdatedStreamEvent`で「リサーチャーからライターに切り替わりました」のような表示ができます。これにより、ユーザーは処理の流れを理解しやすくなります。 キャンセルは2モードあります。`cancel()`は即座に中断しますが、`cancel(mode="after_turn")`は現在のLLMターンが完了してからクリーンに停止します。どちらの場合も、キャンセル後にストリームイテレータを最後まで消費してリソースをクリーンアップすることが重要です。 💡 ユースケース ⌨️ チャットアプリでのタイプライター風リアルタイム表示 🔧 ツール実行中の「検索中...」「計算中...」プログレス表示 🔄 マルチエージェント切り替えのリアルタイム通知UI 🛑 ユーザーの「停止」ボタンによる安全なキャンセル処理 ⚠️ 注意点 - `cancel()`後もイテレータを消費しないとリソースリークが発生する可能性があります - `RawResponsesStreamEvent`はトークン単位のため高頻度です。UIの再描画頻度に注意してください - Streaming中のエラーはイベントとして流れてくるため、適切にハンドリングしてください ✨ Streamingイベントを適切に使い分けることで、エージェントが「考えている」「調べている」「書いている」をユーザーに伝える、応答性の高いUIが実現できます! #OpenAIAgentSDK# #AIAgent#
もっと見る