Gemini Interactions - Deep Research streaming

Stream real-time progress (thought summaries, text, generated images) from a Deep Research task instead of waiting for the final report.

The current Deep Research streaming adapter can repeat text when the initial stream ends early and a later status request returns the complete response. It can append that full response after text already emitted. For a clean final report, remove stream=True and use the non-streaming run/arun or print methods, which poll for completion. Treat streamed text as provisional while this upstream issue remains unresolved.

deep_research_streaming.py
"""
Gemini Interactions - Deep Research streaming
==============================================

Stream real-time progress (thought summaries, text, generated images) from
a Deep Research task instead of waiting for the final report.

`thinking_summaries="auto"` is required to receive intermediate reasoning
during streaming; without it the stream may only deliver the final result.
Background execution is required for agents and is enabled automatically.
"""

import asyncio

from agno.agent import Agent
from agno.models.google import GeminiInteractions

agent = Agent(
    model=GeminiInteractions(
        agent="deep-research-preview-04-2026",
        thinking_summaries="auto",
    ),
    markdown=True,
)

if __name__ == "__main__":
    # --- Sync streaming ---
    agent.print_response(
        "Research the history and impact of Google TPUs.",
        stream=True,
    )

    # --- Async streaming ---
    asyncio.run(
        agent.aprint_response(
            "Research the current state of open-source LLM inference engines.",
            stream=True,
        )
    )

Run the Example

Set up your virtual environment

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

Install dependencies

uv pip install -U agno google-genai

Export your Google API key

export GOOGLE_API_KEY="your_google_api_key_here"

Run the example

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

python deep_research_streaming.py

Full source: cookbook/90_models/google/gemini_interactions/deep_research_streaming.py