结果
当你调用 Runner.run 方法时,你将获得一个
RunResult如果你调用run或run_syncRunResultStreaming如果你调用run_streamed
这两个都继承自 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_results 和 output_guardrail_results 属性包含 Guardrail 的结果(如果有的话)。 Guardrail 结果有时包含你想要记录或存储的有用信息,因此我们将其提供给你。
原始响应
raw_responses 属性包含 LLM 生成的 ModelResponse。
原始输入
input 属性包含你提供给 run 方法的原始输入。 在大多数情况下你不需要这个,但以防万一,它可用。