跳过内容

结果

当你调用 Runner.run 方法时,你将获得一个

这两个都继承自 RunResultBase,其中包含大部分有用的信息。

最终输出

final_output 属性包含运行的最后一个 Agent 的最终输出。 这可以是

  • 一个 str,如果最后一个 Agent 没有定义 output_type
  • 一个类型为 last_agent.output_type 的对象,如果 Agent 定义了输出类型。

注意

final_output 的类型是 Any。 我们无法静态地对其进行类型标注,因为存在交接。 如果发生交接,这意味着任何 Agent 都可能是最后一个 Agent,因此我们无法静态地知道可能的输出类型集合。

下一轮的输入

你可以使用 result.to_input_list() 将结果转换为输入列表,该列表将你提供的原始输入与 Agent 运行期间生成的内容连接起来。 这使得将一个 Agent 运行的输出传递到另一个运行,或在循环中运行并每次追加新的用户输入变得方便。

最后一个 Agent

last_agent 属性包含运行的最后一个 Agent。 根据你的应用程序,这通常对下一次用户输入内容很有用。 例如,如果你有一个前线分诊 Agent,它会交接给特定语言的 Agent,你可以存储最后一个 Agent,并在用户下次向 Agent 发送消息时重用它。

新项目

new_items 属性包含在运行期间生成的新项目。 这些项目是 RunItem。 Run Item 封装了 LLM 生成的原始项目。

  • MessageOutputItem 表示来自 LLM 的消息。 原始项目是生成的消息。
  • HandoffCallItem 表示 LLM 调用了交接工具。 原始项目是来自 LLM 的工具调用项目。
  • HandoffOutputItem 表示发生了交接。 原始项目是对交接工具调用的工具响应。 你还可以从项目中访问源/目标 Agent。
  • ToolCallItem 表示 LLM 调用了一个工具。
  • ToolCallOutputItem 表示调用了一个工具。 原始项目是工具响应。 你还可以从项目中访问工具输出。
  • ReasoningItem 表示来自 LLM 的推理项目。 原始项目是生成的推理。

其他信息

Guardrail 结果

input_guardrail_resultsoutput_guardrail_results 属性包含 Guardrail 的结果(如果有的话)。 Guardrail 结果有时包含你想要记录或存储的有用信息,因此我们将其提供给你。

原始响应

raw_responses 属性包含 LLM 生成的 ModelResponse

原始输入

input 属性包含你提供给 run 方法的原始输入。 在大多数情况下你不需要这个,但以防万一,它可用。