Agno : コンセプト : エージェント – メトリクス

Agno でエージェントを実行する場合、取得するレスポンス (RunResponse) は実行に関する詳細なメトリクスを含みます。これらのメトリクスは (トークン使用量や時間のような) リソース使用量、パフォーマンス、そしてモデルやツール呼び出しのその他の側面を理解するのに役立ちます。

Agno : ユーザガイド : コンセプト : エージェント – メトリクス

作成 : クラスキャット・セールスインフォメーション
作成日時 : 07/16/2025
バージョン : Agno 1.7.3

* 本記事は docs.agno.com の以下のページを独自に翻訳した上で、補足説明を加えてまとめ直しています :

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

 

Agno ユーザガイド : コンセプト : エージェント – メトリクス

Agno におけるエージェント実行とセッション・メトリクスの理解。

 

概要

Agno でエージェントを実行する場合、取得するレスポンス (RunResponse) は実行に関する詳細なメトリクスを含みます。これらのメトリクスは (トークン使用量や時間のような) リソース使用量、パフォーマンス、そしてモデルやツール呼び出しのその他の側面を理解するのに役立ちます。

メトリクスは複数のレベルで利用可能です :

  • メッセージ毎 : 各メッセージ (アシスタント、ツール 等) は独自のメトリクスを持ちます。

  • ツール呼び出し毎 : 各ツール実行は独自のメトリクスを持ちます。

  • 集計 (Aggregated) : RunResponse は実行中のすべてのメッセージにわたるメトリクスを集計します。

Note : メトリクスの存在位置

  • RunResponse.metrics: 辞書として、実行全体の集計メトリクス
  • ToolExecution.metrics: 各ツール呼び出しに対するメトリクス
  • Message.metrics: 各メッセージ (アシスタント、ツール 等) に対するメトリクス

 

使用例

幾つかのタスクを遂行するエージェントがあり、実行後にメトリクスを分析したいとしましょう。メトリクスにアクセスしてプリントする方法を以下に示します :

以下のコードを実行しましょう、エージェントを作成してそれを以下の設定で実行します :

from typing import Iterator

from agno.agent import Agent, RunResponse
from agno.models.google import Gemini
from agno.tools.yfinance import YFinanceTools
from rich.pretty import pprint

agent = Agent(
    model=Gemini(id="gemini-2.0-flash-001"),
    tools=[YFinanceTools(stock_price=True)],
    markdown=True,
    show_tool_calls=True,
)

agent.print_response(
    "What is the stock price of NVDA", stream=True
)

# Print metrics per message
if agent.run_response.messages:
    for message in agent.run_response.messages:
        if message.role == "assistant":
            if message.content:
                print(f"Message: {message.content}")
            elif message.tool_calls:
                print(f"Tool calls: {message.tool_calls}")
            print("---" * 5, "Metrics", "---" * 5)
            pprint(message.metrics)
            print("---" * 20)

# Print the aggregated metrics for the whole run
print("---" * 5, "Collected Metrics", "---" * 5)
pprint(agent.run_response.metrics)
# Print the aggregated metrics for the whole session
print("---" * 5, "Session Metrics", "---" * 5)
pprint(agent.session_metrics)

以下の情報を含む出力を確認できるはずです :

 

ツール実行メトリクス

このセクションは各ツール実行に関するメトリクスを提供します。個々のツール呼び出しのリソース使用量とパフォーマンスについての詳細を含みます。

 

メッセージ・メトリクス

ここでは、エージェントからの各メッセージ応答のメトリクスを確認できます。すべての「アシスタント」応答はこのようなメッセージを持ちますので、メッセージレベルでのパフォーマンスとリソース使用量を把握するのに役立ちます。

 

集計された (Aggregated) 実行メトリクス

集計されたメトリクスは実行全体の包括的なビューを提供します。これはすべてのメッセージとツール呼び出しの要約を含み、エージェントのパフォーマンスとリソース使用量の全体像を与えます。

同様に、セッションメトリクスについては、セッション内のすべての実行にわたり集計されたメトリクスを確認することができて、複数の実行に渡るエージェントの全体的なパフォーマンスとリソース使用量への洞察を提供します。

 

メトリクスの集計方法

  • メッセージ毎 : 各メッセージ (アシスタント、ツール 等) は独自のメトリクスオブジェクトを持ちます。

  • 実行レベル : RunResponse.metrics は辞書で、各キー (e.g., input_tokens) は、実行内のすべてのアシスタント・メッセージからの値のリストにマップされます。

  • セッション・レベル : SessionMetrics (see agent.session_metrics 参照) はセッション内のすべての実行にわたるメトリクスを集計します。

 

以上