Mistral Image File Input Agent

Analyze sample.jpeg with Ministral 14B and search for related news.

The source-fidelity code uses deprecated pixtral-12b-2409. Replace it with ministral-14b-2512 and add sample.jpeg before running the example.

image_file_input_agent.py
"""
Mistral Image File Input Agent
==============================

Cookbook example for `mistral/image_file_input_agent.py`.
"""

from pathlib import Path

from agno.agent import Agent
from agno.media import Image
from agno.models.mistral.mistral import MistralChat
from agno.tools.websearch import WebSearchTools

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

agent = Agent(
    model=MistralChat(id="pixtral-12b-2409"),
    tools=[
        WebSearchTools()
    ],  # pixtral-12b-2409 is not so great at tool calls, but it might work.
    markdown=True,
)

image_path = Path(__file__).parent.joinpath("sample.jpeg")

agent.print_response(
    "Tell me about this image and give me the latest news about it from duckduckgo.",
    images=[
        Image(filepath=image_path),
    ],
    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 mistralai

Export your Mistral API key

export MISTRAL_API_KEY="your_mistral_api_key_here"

Add the sample image

Place a JPEG named sample.jpeg in the same directory as the code file.

Update the model

When saving the code, replace pixtral-12b-2409 with ministral-14b-2512.

Run the example

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

python image_file_input_agent.py

Full source: cookbook/90_models/mistral/image_file_input_agent.py