from agno.agent import Agent
from agno.models.openai import OpenAIResponses
from agno.team import Team
from agno.tools.yfinance import YFinanceTools
from agno.utils.pprint import pprint_run_response
from rich.pretty import pprint
# Create team members
stock_agent = Agent(
name="Stock Agent",
model=OpenAIResponses(id="gpt-5.2"),
role="Get stock prices and financial data.",
tools=[YFinanceTools()],
)
# Create the team
team = Team(
name="Finance Team",
model=OpenAIResponses(id="gpt-5.2"),
members=[stock_agent],
markdown=True,
store_member_responses=True,
)
# Run the team
run_response = team.run(
"What is the stock price of NVDA?"
)
pprint_run_response(run_response, markdown=True)
# Print team leader message metrics
print("---" * 5, "Team Leader Message Metrics", "---" * 5)
if run_response.messages:
for message in 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 aggregated team leader metrics
print("---" * 5, "Aggregated Metrics of Team", "---" * 5)
pprint(run_response.metrics)
# Print team leader session metrics
print("---" * 5, "Session Metrics", "---" * 5)
pprint(team.get_session_metrics().to_dict())
# Print team member message metrics
print("---" * 5, "Team Member Message Metrics", "---" * 5)
if run_response.member_responses:
for member_response in run_response.member_responses:
if member_response.messages:
for message in member_response.messages:
if message.role == "assistant":
if message.content:
print(f"Member Message: {message.content}")
elif message.tool_calls:
print(f"Member Tool calls: {message.tool_calls}")
print("---" * 5, "Member Metrics", "---" * 5)
pprint(message.metrics)
print("---" * 20)