Publication de l’API Gemini Deep Research Agent
(x.com/GoogleAIStudio)Google a publié Gemini Deep Research Agent sous forme d’API. Deep Research est une fonctionnalité dans laquelle l’IA élabore elle-même un plan de recherche à partir de la question posée par l’utilisateur, explore, compare et synthétise plusieurs pages web, puis génère automatiquement un rapport long avec citations des sources. Jusqu’ici, elle n’était disponible que dans l’interface web de Google AI Studio, mais grâce à une nouvelle interface asynchrone appelée Interactions API, les développeurs peuvent désormais l’intégrer directement dans leurs propres applications. Contrairement à un appel generate_content classique, la tâche s’exécute en arrière-plan pendant plusieurs minutes, ce qui implique d’envoyer la requête puis de vérifier périodiquement son état d’avancement (polling) ou de recevoir la progression en streaming.
Modèles proposés
deep-research-preview-04-2026: axé sur la vitesse et l’efficacité. Convient bien au streaming en temps réel vers une UI cliente.deep-research-max-preview-04-2026: vise une couverture maximale. Particulièrement fort pour la collecte automatisée de contexte et la synthèse.
Résumé des fonctionnalités clés
- Planification collaborative (Collaborative Planning) : au lieu de lancer immédiatement la recherche, l’agent propose d’abord un plan. L’utilisateur le relit, le modifie si besoin, puis l’approuve avant l’exécution proprement dite.
- Génération automatique de graphiques et d’infographies : en activant l’option
visualization="auto", l’agent crée lui-même des graphiques et des diagrammes, puis les renvoie sous forme d’images encodées en base64. - Connexion à des serveurs MCP : prise en charge de Model Context Protocol (une spécification ouverte pour connecter des outils externes à un LLM), ce qui permet d’attacher à l’agent des outils issus de services externes comme des données financières.
- Jeu d’outils étendu : recherche Google, lecture de contenu d’URL et exécution de code sont inclus par défaut. La recherche de fichiers (sur des documents téléversés) et les serveurs MCP peuvent être ajoutés en option.
- Entrées multimodales : en plus du texte, il est possible de fournir des images, PDF et fichiers audio comme contexte de recherche.
- Streaming en temps réel et résumés du raisonnement : il est possible de recevoir l’avancement de la recherche en streaming en temps réel et, en activant
thinking_summaries="auto", de consulter aussi un résumé des étapes intermédiaires du raisonnement de l’agent.
Principaux exemples de code
Voici l’usage le plus basique. On lance une tâche asynchrone avec background=True, puis on vérifie son état toutes les 10 secondes par polling.
import time
from google import genai
client = genai.Client()
interaction = client.interactions.create(
input="Research the history of Google TPUs.",
agent="deep-research-preview-04-2026",
background=True,
)
while True:
interaction = client.interactions.get(interaction.id)
if interaction.status == "completed":
print(interaction.outputs[-1].text)
break
elif interaction.status == "failed":
print(f"Research failed: {interaction.error}")
break
time.sleep(10)
Voici le flux de planification collaborative. On récupère d’abord uniquement le plan avec collaborative_planning=True, on donne un feedback, puis il faut impérativement passer à False à la fin pour lancer la recherche réelle. Attention : envoyer simplement le texte "go ahead" sans changer ce flag ne génère pas de rapport.
# Étape 1 : demander le plan
plan = client.interactions.create(
agent="deep-research-preview-04-2026",
input="Research Google TPUs vs competitor hardware.",
agent_config={"type": "deep-research", "collaborative_planning": True},
background=True,
)
while (result := client.interactions.get(id=plan.id)).status != "completed":
time.sleep(5)
print(result.outputs[-1].text) # affichage du plan
# Étape 2 : modifier le plan (poursuite de la conversation via previous_interaction_id)
refined = client.interactions.create(
agent="deep-research-preview-04-2026",
input="Add a section comparing power efficiency.",
agent_config={"type": "deep-research", "collaborative_planning": True},
previous_interaction_id=plan.id,
background=True,
)
while (result := client.interactions.get(id=refined.id)).status != "completed":
time.sleep(5)
print(result.outputs[-1].text) # plan modifié
# Étape 3 : approbation puis exécution (il faut impérativement passer collaborative_planning=False)
report = client.interactions.create(
agent="deep-research-preview-04-2026",
input="Plan looks good!",
agent_config={"type": "deep-research", "collaborative_planning": False},
previous_interaction_id=refined.id,
background=True,
)
while (result := client.interactions.get(id=report.id)).status != "completed":
time.sleep(5)
print(result.outputs[-1].text) # rapport final
Exemples de génération de graphiques et d’entrées multimodales. Il vaut mieux activer l’option de visualisation tout en précisant dans le prompt quel type de graphique est souhaité pour obtenir de meilleurs résultats.
# Recherche avec graphiques
interaction = client.interactions.create(
agent="deep-research-preview-04-2026",
input="Analyze global semiconductor market trends. Include charts showing market share changes.",
agent_config={"type": "deep-research", "visualization": "auto"},
background=True,
)
# Recherche multimodale en passant un article PDF comme contexte
interaction = client.interactions.create(
agent="deep-research-preview-04-2026",
input=[
{"type": "text", "text": "What has been the impact of this research paper?"},
{"type": "document", "uri": "https://arxiv.org/pdf/1706.03762", "mime_type": "application/pdf"},
],
background=True,
)
Exemple de connexion à un serveur MCP pour fournir à l’agent des données financières externes. allowed_tools peut aussi servir à limiter les outils que l’agent est autorisé à appeler.
interaction = client.interactions.create(
agent="deep-research-preview-04-2026",
input="Research how recent geopolitical events influenced USD interest rates",
tools=[
{
"type": "mcp_server",
"name": "Finance Data Provider",
"url": "https://finance.example.com/mcp",
"headers": {"Authorization": "Bearer my-token"},
}
],
background=True,
)
Différenciation
- Ce qui se remarque ici, c’est qu’il ne s’agit ni d’un simple RAG (génération augmentée par la recherche, consistant à récupérer des documents externes pour les fournir à un LLM) ni d’une session unique de questions-réponses, mais de l’automatisation via une seule API d’un workflow de recherche complet en plusieurs étapes : planification, recherche et synthèse. La planification collaborative illustre particulièrement bien la philosophie de conception : « l’agent exécute de manière autonome, mais c’est l’humain qui fixe la direction ».
- Comme il est possible de combiner recherche web publique et recherche dans des documents privés via un simple paramétrage des outils, cela ouvre aussi des perspectives pour des usages de recherche fondés sur des documents internes d’entreprise.
Implications
- Avec l’arrivée des agents de recherche IA au niveau de l’API, il devient possible d’intégrer directement une fonctionnalité de « deep research » dans une application sans recourir à un framework d’agents séparé. En revanche, la structure asynchrone de l’API fondée sur le polling impose un changement de pattern de conception pour les développeurs habitués aux appels LLM synchrones, et la manière de gérer côté UX des délais de réponse de plusieurs minutes devrait devenir un enjeu central lors d’une adoption réelle.
Aucun commentaire pour le moment.