结果
调用 Runner.run
方法时,会得到以下两种结果之一:
- 调用 run
或 run_sync
时,得到RunResult
。
- 调用 run_streamed
时,得到RunResultStreaming
。
这两种结果都继承自RunResultBase
,大部分有用信息都在这个基类中。
最终输出
final_output
属性包含最后运行的智能体的最终输出。可能是以下两种情况之一:
- 如果最后一个智能体未定义 output_type
,则为 str
类型。
- 如果智能体定义了输出类型,则为 last_agent.output_type
类型的对象。
注意
final_output
的类型为 Any
。由于交接/切换的存在,我们无法对其进行静态类型标注。如果发生交接/切换,意味着任何智能体都可能是最后一个智能体,因此我们无法静态确定可能的输出类型集合。
下一回合的输入
可以使用result.to_input_list()
将结果转换为输入列表,该列表将你提供的原始输入与智能体运行期间生成的项目连接起来。这样就可以方便地将一次智能体运行的输出传递到另一次运行中,或者在循环中运行并每次追加新的用户输入。
最后一个智能体
last_agent
属性包含最后运行的智能体。根据你的应用场景,这通常对用户下次输入内容很有用。例如,如果你有一个一线分诊智能体,它会交接给特定语言的智能体,你可以存储最后一个智能体,并在用户下次向智能体发送消息时重复使用它。
新项
new_items
属性包含运行期间生成的新项。这些项是RunItem
。运行项封装了大语言模型(LLM)生成的原始项。
- MessageOutputItem
表示来自大语言模型的消息。原始项是生成的消息。
- HandoffCallItem
表示大语言模型调用了交接工具。原始项是大语言模型的工具调用项。
- HandoffOutputItem
表示发生了交接。原始项是对交接工具调用的工具响应。你还可以从该项访问源/目标代理。
- ToolCallItem
表示大语言模型调用了一个工具。
- ToolCallOutputItem
表示调用了一个工具。原始项是工具响应。你还可以从该项访问工具输出。
- ReasoningItem
表示来自大语言模型的推理项。原始项是生成的推理内容。
其他信息
安全护栏结果
input_guardrail_results
和output_guardrail_results
属性包含安全护栏的结果(如果有)。安全护栏结果有时可能包含你想要记录或存储的有用信息,因此我们将这些结果提供给你。
原始响应
raw_responses
属性包含大语言模型生成的ModelResponse
。
原始输入
input
属性包含你提供给 run
方法的原始输入。在大多数情况下,你不需要这个,但如果需要,它是可用的。