Skip to content

結果

當你呼叫 Runner.run 方法時,你會獲得以下其中之一:

  • [RunResult][agents.result.RunResult](如果你呼叫 runrun_sync
  • [RunResultStreaming][agents.result.RunResultStreaming](如果你呼叫 run_streamed

這兩者都繼承自 [RunResultBase][agents.result.RunResultBase],大部分有用的資訊都在這個類別中。

最終輸出

[final_output][agents.result.RunResultBase.final_output] 屬性包含最後執行的 Agent 的最終輸出。這個值可能是:

  • str,如果最後的 Agent 沒有定義 output_type
  • last_agent.output_type 型別的物件,如果該 Agent 有定義輸出型別

Note

final_output 的型別為 Any。由於 handoffs(交接),我們無法靜態地指定型別。如果發生 handoff,代表任何 Agent 都可能成為最後一個 Agent,因此我們無法靜態地得知所有可能的輸出型別集合。

下一輪的輸入

你可以使用 [result.to_input_list()][agents.result.RunResultBase.to_input_list] 方法,將結果轉換為輸入清單,該清單會將你原本提供的輸入與 Agent 執行期間產生的項目串接在一起。這讓你可以方便地將一個 Agent 執行的輸出作為下一次執行的輸入,或是在迴圈中運行,每次都附加新的使用者輸入。

最後一個 Agent

[last_agent][agents.result.RunResultBase.last_agent] 屬性包含了最後執行的 Agent。根據你的應用程式需求,這通常對於使用者下次輸入時很有用。例如,如果你有一個前線分流(triage)Agent,會將任務交接給語言專屬的 Agent,你可以儲存最後一個 Agent,並在下次使用者傳送訊息時重複使用它。

新產生的項目

[new_items][agents.result.RunResultBase.new_items] 屬性包含了此次執行期間新產生的項目。這些項目是 [RunItem][agents.items.RunItem]。Run item 會包裝由大型語言模型 (LLM) 產生的原始項目。

  • [MessageOutputItem][agents.items.MessageOutputItem] 代表來自 LLM 的訊息。原始項目即為產生的訊息。
  • [HandoffCallItem][agents.items.HandoffCallItem] 代表 LLM 呼叫了 handoff 工具。原始項目為 LLM 的工具呼叫項目。
  • [HandoffOutputItem][agents.items.HandoffOutputItem] 代表發生了 handoff。原始項目為 handoff 工具呼叫的工具回應。你也可以從該項目存取來源/目標 Agent。
  • [ToolCallItem][agents.items.ToolCallItem] 代表 LLM 呼叫了一個工具。
  • [ToolCallOutputItem][agents.items.ToolCallOutputItem] 代表工具被呼叫。原始項目為工具回應。你也可以從該項目存取工具輸出。
  • [ReasoningItem][agents.items.ReasoningItem] 代表來自 LLM 的推理項目。原始項目為產生的推理內容。

其他資訊

Guardrail 結果

[input_guardrail_results][agents.result.RunResultBase.input_guardrail_results] 和 [output_guardrail_results][agents.result.RunResultBase.output_guardrail_results] 屬性包含 guardrail(防護欄)結果(如果有的話)。guardrail 結果有時會包含你想記錄或儲存的有用資訊,因此我們將這些資訊提供給你。

原始回應

[raw_responses][agents.result.RunResultBase.raw_responses] 屬性包含由 LLM 產生的 [ModelResponse][agents.items.ModelResponse]。

原始輸入

[input][agents.result.RunResultBase.input] 屬性包含你傳遞給 run 方法的原始輸入。在大多數情況下你可能不需要這個資訊,但如果需要也可以取得。