Image Generation Agent
Generate and save an image with OpenAITools and GPT Image 2.
The source-fidelity code uses OpenAIChat and gpt-image-1 despite its Responses category. Replace them with OpenAIResponses and gpt-image-2 before running the example.
"""Example: Using the OpenAITools Toolkit for Image Generation
This script demonstrates how to use the `OpenAITools` toolkit, which includes a tool for generating images using OpenAI's DALL-E within an Agno Agent.
Example prompts to try:
- "Create a surreal painting of a floating city in the clouds at sunset"
- "Generate a photorealistic image of a cozy coffee shop interior"
- "Design a cute cartoon mascot for a tech startup"
- "Create an artistic portrait of a cyberpunk samurai"
Run `uv pip install openai agno` to install the necessary dependencies.
"""
from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.tools.openai import OpenAITools
from agno.utils.media import save_base64_data
# ---------------------------------------------------------------------------
# Create Agent
# ---------------------------------------------------------------------------
agent = Agent(
model=OpenAIChat(id="gpt-5.6-luna"),
tools=[OpenAITools(image_model="gpt-image-1")],
markdown=True,
)
response = agent.run(
"Generate a photorealistic image of a cozy coffee shop interior",
)
if response.images and response.images[0].content:
save_base64_data(str(response.images[0].content), "tmp/coffee_shop.png")
# ---------------------------------------------------------------------------
# Run Agent
# ---------------------------------------------------------------------------
if __name__ == "__main__":
passRun the Example
Set up your virtual environment
uv venv --python 3.12
source .venv/bin/activateInstall dependencies
uv pip install -U agno openaiExport your OpenAI API key
export OPENAI_API_KEY="your_openai_api_key_here"Use the Responses API
Replace the OpenAIChat import and constructor with OpenAIResponses(id="gpt-5.2").
Encode the image bytes
Add import base64. Encode response.images[0].content with base64.b64encode(...).decode("utf-8"), then pass that string to save_base64_data.
Update the image model
When saving the code, replace gpt-image-1 with gpt-image-2.
Run the example
Save the code above as image_generation_agent.py, then run:
python image_generation_agent.pyFull source: cookbook/90_models/openai/responses/image_generation_agent.py