Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.agno.com/llms.txt

Use this file to discover all available pages before exploring further.

Code

cookbook/90_models/google/gemini_interactions/structured_output.py
from agno.agent import Agent
from agno.models.google import GeminiInteractions
from pydantic import BaseModel, Field


class MovieReview(BaseModel):
    title: str = Field(description="The movie title")
    year: int = Field(description="Release year")
    genre: str = Field(description="Primary genre")
    rating: float = Field(description="Rating out of 10")
    summary: str = Field(description="Brief review summary")


agent = Agent(
    model=GeminiInteractions(id="gemini-3-flash-preview"),
    output_schema=MovieReview,
    markdown=True,
)

if __name__ == "__main__":
    response = agent.run("Write a review of The Matrix (1999)")

    if response.content:
        review = response.content
        if isinstance(review, MovieReview):
            print(f"Title: {review.title}")
            print(f"Year: {review.year}")
            print(f"Genre: {review.genre}")
            print(f"Rating: {review.rating}/10")
            print(f"Summary: {review.summary}")
        else:
            print(f"Raw response: {review}")

Usage

1

Set up your virtual environment

uv venv --python 3.12
source .venv/bin/activate
2

Set your API key

export GOOGLE_API_KEY=xxx
3

Install dependencies

uv pip install -U "google-genai>=2.0" agno
4

Run Agent

python cookbook/90_models/google/gemini_interactions/structured_output.py