WhatsApp Image Generation Agent (Tool-based)
WhatsApp agent that generates images using OpenAI's image generation tools
Code
from agno.agent import Agent
from agno.db.sqlite import SqliteDb
from agno.models.openai import OpenAIChat
from agno.os.app import AgentOS
from agno.os.interfaces.whatsapp import Whatsapp
from agno.tools.openai import OpenAITools
agent_db = SqliteDb(db_file="tmp/persistent_memory.db")
image_agent = Agent(
id="image_generation_tools",
db=agent_db,
model=OpenAIChat(id="gpt-4o"),
tools=[OpenAITools(image_model="gpt-image-2")],
markdown=True,
add_history_to_context=True,
)
agent_os = AgentOS(
agents=[image_agent],
interfaces=[Whatsapp(agent=image_agent)],
)
app = agent_os.get_app()
if __name__ == "__main__":
agent_os.serve(app="image_generation_tools:app", reload=True)Usage
Set up your virtual environment
uv venv --python 3.12
source .venv/bin/activateSet Environment Variables
export WHATSAPP_ACCESS_TOKEN=your_access_token
export WHATSAPP_PHONE_NUMBER_ID=your_phone_number_id
export WHATSAPP_VERIFY_TOKEN=your_verify_token
export WHATSAPP_APP_SECRET=your_app_secret
export OPENAI_API_KEY=your_openai_api_keySee the WhatsApp setup guide for how to get these values from the Meta Developer Dashboard.
Install dependencies
uv pip install -U "agno[os]" openaiRun Example
python image_generation_tools.pyKey Features
- Tool-based Generation: OpenAI's GPT Image 2 model via external tools
- Conversational Interface: Natural language interaction for image requests
- History Context: Remembers previous images and conversations
- GPT-4o Orchestration: Manages the conversation and decides when to call the image tool