from agno.agent import Agent from agno.models.openai import OpenAIChat from agno.team import Team from agno.tools.duckduckgo import DuckDuckGoTools from agno.utils.pprint import pprint_run_response from pydantic import BaseModel class StockAnalysis(BaseModel): symbol: str company_name: str analysis: str class CompanyAnalysis(BaseModel): company_name: str analysis: str stock_searcher = Agent( name="Stock Searcher", model=OpenAIChat("gpt-5-mini"), output_schema=StockAnalysis, role="Searches for information on stocks and provides price analysis.", tools=[DuckDuckGoTools()], ) company_info_agent = Agent( name="Company Info Searcher", model=OpenAIChat("gpt-5-mini"), role="Searches for information about companies and recent news.", output_schema=CompanyAnalysis, tools=[DuckDuckGoTools()], ) class StockReport(BaseModel): symbol: str company_name: str analysis: str team = Team( name="Stock Research Team", model=OpenAIChat("gpt-5-mini"), members=[stock_searcher, company_info_agent], output_schema=StockReport, markdown=True, ) # This should route to the stock_searcher response = team.run("What is the current stock price of NVDA?") assert isinstance(response.content, StockReport) pprint_run_response(response)
Create a virtual environment
Terminal
python3 -m venv .venv source .venv/bin/activate
Install required libraries
pip install agno openai ddgs
Set environment variables
export OPENAI_API_KEY=****
Run the agent
python cookbook/examples/teams/structured_input_output/00_pydantic_model_output.py