Agent.run()
函数运行 agent 并生成响应,响应可以是一个 RunResponse
对象,也可以是 RunResponse
对象流。
我们的许多示例都使用了 agent.print_response()
,这是一个用于在终端中打印响应的辅助工具。它底层调用的是 agent.run()
。
运行你的 Agent
以下是运行 agent 的方法。响应会捕获在response
变量中。
RunResponse
在不使用流式传输时,Agent.run()
函数会返回一个 RunResponse
对象。它具有以下属性:
理解指标有关指标如何收集和使用的详细说明,请参阅 指标文档。
流式响应
要启用流式传输,请在调用run()
时设置 stream=True
。这将返回一个 RunResponseEvent
对象迭代器,而不是单个响应。
从
agno
版本 1.6.0
开始,Agent.run()
函数返回的是 RunResponseEvent
的迭代器,而不是 RunResponse
对象。流式传输中间步骤
为了获得更详细的流式输出,可以通过设置stream_intermediate_steps=True
来启用中间步骤。这将提供关于 agent 内部过程的实时更新。
处理事件
您可以通过迭代响应流来处理即将到来的事件:存储事件
您可以将运行过程中发生的所有事件存储在RunResponse
对象上。
RunResponseContentEvent
事件。您可以通过设置 events_to_skip
参数来修改要跳过的事件。
例如:
事件类型
根据 agent 的配置,以下事件会由Agent.run()
和 Agent.arun()
函数生成:
核心事件
事件类型 | 描述 |
---|---|
RunStarted | 表示运行开始 |
RunResponseContent | 包含模型响应文本的各个块 |
RunCompleted | 标志着运行成功完成 |
RunError | 表示运行期间发生错误 |
RunCancelled | 标志着运行已被取消 |
控制流事件
事件类型 | 描述 |
---|---|
RunPaused | 表示运行已暂停 |
RunContinued | 标志着暂停的运行已继续 |
工具事件
事件类型 | 描述 |
---|---|
ToolCallStarted | 表示工具调用开始 |
ToolCallCompleted | 标志着工具调用完成,包括工具调用结果 |
推理事件
事件类型 | 描述 |
---|---|
ReasoningStarted | 表示 agent 推理过程开始 |
ReasoningStep | 包含推理过程的单个步骤 |
ReasoningCompleted | 标志着推理过程完成 |
记忆事件
事件类型 | 描述 |
---|---|
MemoryUpdateStarted | 表示 agent 正在更新其记忆 |
MemoryUpdateCompleted | 标志着记忆更新完成 |