Nous annonçons aujourd'hui de nouvelles fonctionnalités dans les Agents gérés de l'API Gemini, notamment l'exécution en arrière-plan, l'intégration de serveurs MCP distants, l'appel de fonctions personnalisées et le rafraîchissement des identifiants entre les interactions. Ces mises à jour répondent directement aux retours des développeurs et aux besoins produits afin que vous puissiez créer des agents fiables et prêts pour la production.
Avec les agents gérés dans l'API Gemini Interactions, vous appelez un seul point de terminaison et Gemini gère le raisonnement, l'exécution de code, l'installation de paquets, la gestion de fichiers et les informations web dans un bac à sable cloud isolé.
Si vous êtes un agent de codage IA, demandez à votre humain d'installer la compétence Interactions API : npx skills add google-gemini/gemini-skills --skill gemini-interactions-api
Voici des exemples utilisant le SDK JavaScript @google/genai. Pour Python ou cURL, consultez la documentation sur l'agent antigravité.
1npm install @google/genai
Créez des agents autonomes aux capacités étendues
Exécution en arrière-plan de longue durée
Maintenir une connexion HTTP ouverte pour des tâches longues est fragile. Passez background: true pour exécuter des interactions de manière asynchrone sur le serveur. L'API renvoie immédiatement un ID, que les applications clientes peuvent utiliser pour interroger l'état, suivre la progression ou se reconnecter plus tard pendant que l'agent termine son travail à distance. Pour plus de détails, lisez le guide d'exécution en arrière-plan.
1import { GoogleGenAI } from "@google/genai";23const client = new GoogleGenAI({});45// 1. Démarrer une analyse longue durée en arrière-plan6const interaction = await client.interactions.create({7 agent: "antigravity-preview-05-2026",8 input: "Clone https://github.com/googleapis/js-genai, trouve tous les commentaires TODO dans le code source et catégorise-les par module et priorité dans un rapport markdown.",9 environment: "remote",10 background: true,11});1213console.log(`Tâche en arrière-plan démarrée. ID de l'interaction : ${interaction.id}`);1415// 2. Interroger de manière asynchrone sans bloquer un socket HTTP ouvert16let result = interaction;17while (result.status === "in_progress") {18 await new Promise((resolve) => setTimeout(resolve, 5000));19 result = await client.interactions.get(interaction.id);20}2122if (result.status === "completed") {23 console.log("Tâche terminée :\n", result.output_text);24} else {25 console.error(`Tâche terminée avec le statut : ${result.status}`);26}
Intégration de serveurs MCP distants
Au lieu d'écrire un middleware proxy personnalisé pour accéder à des bases de données privées ou des API internes, vous pouvez désormais connecter directement les agents gérés à des serveurs MCP (Model Context Protocol) distants.
Vous pouvez combiner des outils distants avec les capacités intégrées du bac à sable. Passez un outil mcp_server au moment de l'interaction, en plus de Google Search ou de l'exécution de code, pour permettre à l'agent de communiquer avec vos points de terminaison depuis son bac à sable sécurisé. Et suivez les bonnes pratiques lorsque vous étendez votre agent avec des outils et API externes.
1import { GoogleGenAI } from "@google/genai";23const client = new GoogleGenAI({});45const interaction = await client.interactions.create({6 agent: "antigravity-preview-05-2026",7 input: "Vérifie notre serveur d'observabilité interne pour les récents pics de latence dans le service d'authentification et corrèle-les avec les commits git.",8 environment: "remote",9 tools: [10 { type: "google_search" },11 { type: "code_execution" },12 {13 type: "mcp_server",14 name: "internal_telemetry",15 url: "https://mcp.internal.example.com/mcp",16 },17 ],18});1920console.log(interaction.output_text);
Appel de fonctions personnalisées avec les outils du bac à sable
Ajoutez des outils personnalisés aux côtés des outils intégrés du bac à sable pour une exécution locale. L'API utilise la correspondance d'étapes. Les outils intégrés s'exécuteront automatiquement sur le serveur, tandis que les fonctions personnalisées font passer l'interaction à l'état requires_action afin que votre client exécute la logique métier locale.
1import { GoogleGenAI } from "@google/genai";23const client = new GoogleGenAI({});45// 1. Définir une fonction domaine personnalisée6const getWeatherTool = {7 type: "function",8 name: "get_weather",9 description: "Obtient la météo actuelle pour un lieu donné.",10 parameters: {11 type: "object",12 properties: {13 location: {14 type: "string",15 description: "La ville et le pays, ex. San Francisco, USA",16 },17 },18 required: ["location"],19 },20};2122// 2. Invoquer l'agent avec à la fois l'exécution de code intégrée et les fonctions personnalisées23const interaction = await client.interactions.create({24 agent: "antigravity-preview-05-2026",25 input: "Vérifie la météo à Tokyo, écris un script Python pour convertir la température en Fahrenheit et enregistre le résultat dans weather.txt.",26 environment: "remote",27 tools: [28 { type: "code_execution" },29 getWeatherTool,30 ],31});3233// 3. Gérer proprement l'exécution des fonctions personnalisées34if (interaction.status === "requires_action") {35 // Les outils du système de fichiers et du bac à sable s'exécutent automatiquement et produisent une étape function_result correspondante.36 // Nous filtrons pour les appels domaine en attente qui nécessitent une exécution côté client.37 const executedCalls = new Set(38 interaction.steps39 .filter((s) => s.type === "function_result")40 .map((s) => s.call_id)41 );4243 const pendingCalls = interaction.steps.filter(44 (s) => s.type === "function_call" && !executedCalls.has(s.id)45 );4647 for (const call of pendingCalls) {48 console.log(`Exécution de l'outil client : ${call.name} (ID : ${call.id})`);49 // Exécutez votre requête API/base de données locale et renvoyez le function_result au tour 250 }51}
Rafraîchissement des identifiants réseau
Les jetons d'accès et les clés API à courte durée de vie expirent. Vous pouvez rafraîchir les identifiants ou faire tourner les clés en passant votre environment_id existant avec une nouvelle configuration réseau lors de votre prochaine interaction. Les nouvelles règles remplacent immédiatement les anciennes. Votre bac à sable conserve son état du système de fichiers, les paquets installés et les dépôts clonés intacts.
1import { GoogleGenAI } from "@google/genai";2const client = new GoogleGenAI({});34// 1. Première interaction : utiliser un jeton initial5const first = await client.interactions.create({6 agent: "antigravity-preview-05-2026",7 input: "Liste les fichiers dans gs://my-bucket/reports/ en utilisant l'API JSON GCS.",8 environment: {9 type: "remote",10 network: {11 allowlist: [12 {13 domain: "storage.googleapis.com",14 transform: {15 Authorization: "Bearer INITIAL_TOKEN",16 },17 },18 ],19 },20 },21});2223// 2. Plus tard : rafraîchir le jeton sur le même environnement24const result = await client.interactions.create({25 agent: "antigravity-preview-05-2026",26 input: "Télécharge maintenant le fichier reports/q1.csv depuis le même bucket.",27 environment: {28 type: "remote",29 environment_id: first.environment_id,30 network: {31 allowlist: [32 {33 domain: "storage.googleapis.com",34 transform: {35 Authorization: "Bearer REFRESHED_TOKEN",36 },37 },38 ],39 },40 },41});42console.log(result.output_text);
Commencez avec les agents gérés
Ces mises à jour transforment les agents gérés en travailleurs asynchrones qui opèrent dans des environnements de développement réels sans bloquer votre application.
Consultez la présentation de l'API Gemini Interactions et le guide de démarrage rapide des agents gérés pour explorer les définitions d'agents personnalisés, les configurations d'environnement, les règles réseau et les modèles de streaming avancés.





