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