Image Agent Bytes
Pass an image to a Grok vision model as raw bytes.
Code
from pathlib import Path
from agno.agent import Agent
from agno.media import Image
from agno.models.xai import xAI
from agno.tools.websearch import WebSearchTools
from agno.utils.media import download_image
agent = Agent(
model=xAI(id="grok-4.5"),
tools=[WebSearchTools()],
markdown=True,
)
image_path = Path(__file__).parent.joinpath("sample.jpg")
download_image(
url="https://upload.wikimedia.org/wikipedia/commons/0/0c/GoldenGateBridge-001.jpg",
output_path=str(image_path),
)
# Read the image file content as bytes
image_bytes = image_path.read_bytes()
agent.print_response(
"Tell me about this image and give me the latest news about it.",
images=[
Image(content=image_bytes),
],
stream=True,
)
Usage
Set up your virtual environment
uv venv --python 3.12
source .venv/bin/activateSet your API key
export XAI_API_KEY=xxxInstall dependencies
uv pip install -U openai ddgs agnoRun Agent
Save the code above as image_agent_bytes.py, then run:
python image_agent_bytes.py