Llama Image Input Bytes

Pass a downloaded image as bytes to Llama 4 Maverick and search the web for related news.

The linked byte-image source imports the compatible adapter. Use the native adapter edit below to match this page and avoid the compatible formatter failure at this revision.

image_input_bytes.py
"""
Meta Image Input Bytes
======================

Cookbook example for `meta/llama/image_input_bytes.py`.
"""

from pathlib import Path

from agno.agent import Agent
from agno.media import Image
from agno.models.meta import LlamaOpenAI
from agno.tools.websearch import WebSearchTools
from agno.utils.media import download_image

# ---------------------------------------------------------------------------
# Create Agent
# ---------------------------------------------------------------------------

agent = Agent(
    model=LlamaOpenAI(id="Llama-4-Maverick-17B-128E-Instruct-FP8"),
    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,
)

# ---------------------------------------------------------------------------
# Run Agent
# ---------------------------------------------------------------------------

if __name__ == "__main__":
    pass

Run the Example

Set up your virtual environment

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

Install dependencies

uv pip install -U agno ddgs llama-api-client openai

Export your Meta Llama API key

export LLAMA_API_KEY="your_llama_api_key_here"

Use the native Llama adapter

Replace from agno.models.meta import LlamaOpenAI with from agno.models.meta import Llama, then replace LlamaOpenAI(...) with Llama(...). Keep the existing model ID and image input.

Run the example

Save the code above as image_input_bytes.py, then run:

python image_input_bytes.py

Full source: cookbook/90_models/meta/llama/image_input_bytes.py