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.
"""
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/activateInstall dependencies
uv pip install -U agno google-genaiExport 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.pyFull source: cookbook/90_models/google/gemini_interactions/deep_research_streaming.py