在 Agno 中了解代理运行和会话指标
当您在 Agno 中运行代理时,您收到的响应(RunResponse)会包含有关该运行的详细指标。这些指标可帮助您了解资源使用情况(例如令牌使用量和时间)、性能以及模型和工具调用的其他方面。
指标可在多个层面获取:
RunResponse
会聚合运行中所有消息的指标。指标的位置
RunResponse.metrics
: 整个运行的聚合指标,以字典形式表示。ToolExecution.metrics
: 每次工具调用的指标。Message.metrics
: 每条消息的指标(助手、工具等)。假设您有一个执行某些任务的代理,并且想在运行后分析指标。以下是如何访问和打印指标的方法:
您运行以下代码来创建一个代理并使用以下配置运行它:
您将看到包含以下信息的输出:
本节提供每次工具执行的指标。它包括有关各个工具调用资源使用情况和性能的详细信息。
在这里,您可以查看代理每条消息响应的指标。所有“assistant”响应都将具有此类指标,帮助您了解消息级别的性能和资源使用情况。
聚合指标提供了整个运行的全面视图。它包括所有消息和工具调用的摘要,让您对代理的整体性能和资源使用情况有一个总体了解。
同样对于会话指标,您可以查看会话中所有运行的聚合指标,从而深入了解代理在多次运行中的整体性能和资源使用情况。
RunResponse.metrics
是一个字典,其中每个键(例如,input_tokens
)映射到运行中所有助手消息的值列表。SessionMetrics
(请参阅 agent.session_metrics
)跨会话中的所有运行聚合指标。MessageMetrics
参数字段 | 描述 |
---|---|
input_tokens | 输入给模型的提示信息中的 token 数量。 |
output_tokens | 模型生成的输出中的 token 数量。 |
total_tokens | 使用的总 token 数量(输入 + 输出)。 |
prompt_tokens | 提示信息中的 token 数量(对于 OpenAI 来说,与 input_tokens 相同)。 |
completion_tokens | 完成信息中的 token 数量(对于 OpenAI 来说,与 output_tokens 相同)。 |
audio_tokens | 总音频 token 数量(如果使用了音频输入/输出)。 |
input_audio_tokens | 输入中的音频 token 数量。 |
output_audio_tokens | 输出中的音频 token 数量。 |
cached_tokens | 从缓存提供的 token 数量(如果使用了缓存)。 |
cache_write_tokens | 写入缓存的 token 数量。 |
reasoning_tokens | 用于推理步骤的 token 数量(如果已启用)。 |
prompt_tokens_details | 包含提示 token 详细细分的字典(由 OpenAI 使用)。 |
completion_tokens_details | 包含输出 token 详细细分的字典(由 OpenAI 使用)。 |
additional_metrics | 模型/工具提供的任何额外指标(例如,延迟、成本等)。 |
time | 生成消息所花费的时间(秒)。 |
time_to_first_token | 生成第一个 token 直到所需的时间(秒)。 |
注意:并非所有字段都始终存在;具体取决于模型/工具和运行情况。