OpenAI Agents SDK の Runner.run メソッドの戻り値 Results についての説明です。
OpenAI Agents SDK : Results
作成 : クラスキャット・セールスインフォメーション
作成日時 : 03/21/2025
* 本記事は openai.github.io/openai-agents-python の以下のページを独自に翻訳した上でまとめ直し、補足説明を加えています :
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
◆ お問合せ : 下記までお願いします。
- クラスキャット セールス・インフォメーション
- sales-info@classcat.com
- ClassCatJP
OpenAI Agents SDK : Results
Runner.run メソッドを呼び出す場合、次のいずれかを取得します :
- RunResult、run or run_sync を呼び出す場合
- RunResultStreaming、run_streamed を呼び出す場合
これらは両方とも RunResultBase から継承されます、これは最も有用な情報が存在する場所です。
最終的な出力 (Final output)
final_output プロパティは最後に実行されたエージェントの最終的な出力を含みます。これは次のいずれかです :
- str, 最後のエージェントが定義された output_type を持たない場合
- last_agent.output_type のオブジェクト、エージェントが定義された output type を持っていた場合
Note : final_output は Any 型です。ハンドオフがあるため、これを静的に型付けできません。ハンドオフが発生する場合、これはつまり任意の Agent が最後のエージェントとなる可能性があるため、可能な出力型のセットを静的に知ることができません。
次のターンへの入力
result.to_input_list() を使用して結果を (提供した元の入力をエージェント実行中に生成された項目に連結した) 入力リストに変換することができます。これは、一つのエージェント実行の出力を受け取りそれらを別の実行に渡したり、ループ中でそれを実行して毎回新しいユーザ入力を追加することを便利にします。
最後のエージェント
last_agent プロパティは実行された最後のエージェントを含みます。アプリケーションによっては、これはユーザが次に何かを入力するときに有用な場合が多いです。例えば、言語固有のエージェントにハンドオフするフロントラインのトリアージエージェントがある場合、最後のエージェントをストアして、ユーザが次にエージェントにメッセージを与えたときにそれを再利用できます。
新しい項目
new_items プロパティは実行中に生成された新しい項目を含みます。この項目は RunItems です。実行項目が LLM により生成された raw (生の) 項目をラップします。
- MessageOutputItem は LLM からのメッセージを示します。raw 項目は生成されたメッセージです。
- HandoffCallItem は LLM がハンドオフ・ツールを呼び出したことを示します。raw 項目は LLM からツール呼び出し項目です。
- HandoffOutputItem はハンドオフが発生したことを示します。raw 項目はハンドオフ・ツール呼び出しへのツール応答です。項目から source/target エージェントにアクセスすることもできます。
- ToolCallItem は LLM がツールを起動 (invoke) したことを示します。
- ToolCallOutputItem はツールが呼び出されたことを示します。raw 項目はツールの応答です。項目からツールの出力にアクセスすることもできます。
- ReasoningItem は LLM からの推論 (reasoning) 項目を示します。raw 項目は生成された推論です。
他の情報
ガードレールの結果
The input_guardrail_results と output_guardrail_results プロパティは (もしあれば) ガードレールの結果を含みます。ガードレールの結果はログ記録やストアしたい有用な情報を含む場合がありますので、これらを利用可能にしています。
Raw レスポンス
raw_responses は LLM により生成された ModelResponses を含みます。
元の入力
input プロパティは run メソッドに提供した元の入力を含みます。殆どの場合これは必要ありませんが、必要な場合には利用できます。
以上