from agno.agent import Agent
from agno.db.sqlite import SqliteDb
from agno.models.openai import OpenAIResponses
from agno.team import Team
from agno.tools.yfinance import YFinanceTools
from rich.pretty import pprint
stock_agent = Agent(
name="Stock Agent",
model=OpenAIResponses(id="gpt-5.2"),
role="Get stock prices and financial data.",
tools=[YFinanceTools()],
)
team = Team(
name="Finance Team",
model=OpenAIResponses(id="gpt-5.2"),
members=[stock_agent],
db=SqliteDb(db_file="tmp/teams.db"),
markdown=True,
store_member_responses=True,
)
run_response = team.run("What is the stock price of NVDA?")
# Team leader message metrics (MessageMetrics)
for message in run_response.messages:
if message.role == "assistant":
pprint(message.metrics.to_dict())
# Team leader run metrics (RunMetrics)
pprint(run_response.metrics.to_dict())
# Per-model breakdown (leader only)
if run_response.metrics.details:
for model_type, model_metrics_list in run_response.metrics.details.items():
for m in model_metrics_list:
print(f"{model_type}: {m.provider}/{m.id} - {m.total_tokens} tokens")
# Member run metrics (RunMetrics per member)
if run_response.member_responses:
for member_response in run_response.member_responses:
print(f"Member: {member_response.agent_name}")
pprint(member_response.metrics.to_dict())
# Session metrics (SessionMetrics) - aggregates leader + all members
pprint(team.get_session_metrics().to_dict())