跳至内容

结果

当您调用Runner.run方法时,您会得到以下两种结果之一:

这两者都继承自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_resultsoutput_guardrail_results 属性包含防护栏(如果有)的结果。防护栏结果有时可能包含您想要记录或存储的有用信息,因此我们向您提供这些信息。

原始响应

raw_responses属性包含由LLM生成的ModelResponse响应。

原始输入

input属性包含您提供给run方法的原始输入。在大多数情况下您不需要使用它,但需要时仍可获取。