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

cv usk
@cv_usk
AI / Software Research Notes AI Agent, LLMOps, MLOps, Software Architecture 投稿は個人の意見です。
参加 May 2026
279 フォロー中    409 ファン
# OpenAI Agent SDKの便利で実践的な使い方 🌍 エージェントの実行結果から、次のターン、UI表示、デバッグに必要な情報を正確に取り出せていますか? RunResultの各プロパティを理解して、実行結果を最大限に活用しましょう。 📌 タイトル:Results 🔗 URL: 🧩 概要 `RunResult`はエージェント実行の全成果を保持するオブジェクトです。ユーザーへの最終回答(`final_output`)、次ターンの入力構築(`to_input_list()`)、UI/監査用の全アイテム(`new_items`)、handoff後のエージェント(`last_agent`)、中断と再開(`interruptions`/`to_state()`)、デバッグ用の生レスポンス(`raw_responses`)など、多面的なサーフェスを提供します。 🛠 使い方 `Agent(name="assistant", instructions="You are a helpful assistant.")` を定義し、`result = await input="Pythonのasync/awaitについて教えてください")` で実行します。` で最終回答を取得し、` + [{"role": "user", "content": "具体的な例も教えてください"}]` で次のターンの入力を構築して再度 ` に渡します。` をイテレートして各アイテムの `item.type` と ` を確認できます。`result.last_agent` でhandoff後のエージェントを取得し、次のターンで使用します。`result.interruptions` がある場合は ` で状態を保存し、承認後に ` state=state)` で再開します。`result.raw_responses` でモデル名やトークン使用量を確認でき、`result.last_response_id` でResponses APIのチェーンが可能です。 🏗 実践的な使い方 **final_output — ユーザー向けレスポンス** `final_output`はエージェントの最終回答です。`output_type`を指定している場合はPydanticモデルのインスタンスが返り、指定していない場合は文字列が返ります。APIレスポンスやUI表示に直接使えます。 **to_input_list() — マルチターン会話の構築** `to_input_list()`は実行結果を次のターンの入力形式に変換します。ユーザーの新しいメッセージを追加して再度` **new_items — UI表示と監査ログ** `new_items`には今回の実行で生成された全アイテム(メッセージ、ツール呼び出し、handoff等)がメタデータ付きで格納されています。チャットUIでのステップバイステップ表示や、監査ログの記録に活用できます。どのエージェントがどのツールを呼んだかまで追跡できます。 **last_agent — handoff後の継続** handoffが発生した場合、`last_agent`は最後に処理を行ったエージェントを返します。次のターンでは`last_agent`を使って` **interruptions + to_state() — 中断と再開** human-in-the-loopのワークフローで、エージェントが中断された場合に`to_state()`で実行状態をスナップショットとして保存できます。人間の承認後、保存した状態から再開することで、実行の途中からやり直せます。 **raw_responses — プロバイダレベルのデバッグ** `raw_responses`にはプロバイダからの生のレスポンスが格納されています。モデル名、トークン使用量、レイテンシなどの情報にアクセスでき、コスト分析やパフォーマンスチューニングに役立ちます。 **last_response_id — Responses APIチェーン** OpenAIのResponses APIを使用している場合、`last_response_id`を次の実行の`previous_response_id`に渡すことで、サーバー側で会話を継続できます。最も軽量な会話継続方法です。 💡 ユースケース 💬 `final_output`: APIレスポンスやチャットUIへの最終回答表示 🔄 `to_input_list()`: マルチターン会話の履歴管理 📋 `new_items`: ステップバイステップのUI表示、監査ログ記録 🤖 `last_agent`: handoff後のエージェント継続 📸 `to_state()`: human-in-the-loop ワークフローの中断・再開 🔍 `raw_responses`: トークン使用量の監視、コスト分析 ⚠️ 注意点 - `final_output`が`None`になることがあります(handoffのみで終了した場合など)。必ずNullチェックをしてください。 - `to_input_list()`の結果にはツール呼び出しの履歴も含まれます。不要な場合は手動でフィルタリングしてください。 - `new_items`のアイテム数は実行の複雑さに比例して増加します。大量のツール呼び出しがある場合、メモリ使用量に注意してください。 - `to_state()`で保存した状態はシリアライズ可能ですが、長期保存する場合はSDKのバージョン互換性に注意してください。 - `last_response_id`はOpenAI固有の機能です。他のプロバイダでは利用できません。 ✨ RunResultの各サーフェスを使いこなして、エージェントの実行結果を余すことなく活用しましょう! #OpenAIAgentSDK# #AIAgent#
もっと見る