<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: TechTown</title>
    <description>The latest articles on DEV Community by TechTown (techtown-fr).</description>
    <link>https://dev.to/techtown-fr</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F12453%2F5ee5dead-26ed-49a6-9f18-deabc299ff06.png</url>
      <title>DEV Community: TechTown</title>
      <link>https://dev.to/techtown-fr</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/techtown-fr"/>
    <language>en</language>
    <item>
      <title>Cloud Run instances : héberger un agent IA qui tourne en continu</title>
      <dc:creator>Nicolas BOURON</dc:creator>
      <pubDate>Fri, 02 Oct 2026 15:23:48 +0000</pubDate>
      <link>https://dev.to/techtown-fr/cloud-run-instances-heberger-un-agent-ia-qui-tourne-en-continu-1ai4</link>
      <guid>https://dev.to/techtown-fr/cloud-run-instances-heberger-un-agent-ia-qui-tourne-en-continu-1ai4</guid>
      <description>&lt;p&gt;Les agents IA ne se contentent plus de répondre à une question. Certains travaillent en fond: un digest de veille au réveil, le programme de la journée en podcast, les alertes de la nuit déjà triées, les issues Dependabot suivies dépôt par dépôt. Puis ils attendent la tâche suivante.&lt;/p&gt;

&lt;p&gt;C’est très pratique. Mais au moment de les héberger, une question arrive vite : &lt;strong&gt;où faire tourner un programme qui ne s’arrête jamais, sans administrer de serveur ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Dans cet article, je pars d’un cas concret : un agent open source que j’ai déployé sur Google Cloud. Je présente les trois besoins d’un agent permanent, puis les trois options d’hébergement possibles. J’ai testé la troisième, &lt;strong&gt;Cloud Run instances&lt;/strong&gt; , en Preview depuis fin août 2026.&lt;/p&gt;

&lt;h2&gt;
  
  
  📌 Les trois besoins d’un agent permanent
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;A. Tourner en continu.&lt;/strong&gt; L’agent planifie lui-même ses tâches et se réveille tout seul, sans planificateur externe.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;B. Se souvenir.&lt;/strong&gt; Sa mémoire, son historique et son planning doivent survivre à une mise à jour ou à un redémarrage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;C. Rester simple.&lt;/strong&gt; Une adresse web qui ne change pas, et aucun serveur à maintenir.&lt;/p&gt;

&lt;p&gt;Pris un par un, ces besoins sont bien outillés. &lt;strong&gt;Les trois ensemble, c’est le vrai problème.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  1️⃣ Option 1 : un service Cloud Run
&lt;/h2&gt;

&lt;p&gt;Première idée : déployer l’agent comme une application web classique. L’adresse, la sécurité et les logs sont fournis, sans rien administrer. Le besoin C est couvert.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pourquoi ça coince :&lt;/strong&gt; un service Cloud Run s’éteint quand personne ne l’appelle. C’est son grand intérêt pour un site web, et le défaut rédhibitoire pour un agent : sa boucle de travail et sa mémoire disparaissent avec lui.&lt;/p&gt;

&lt;h2&gt;
  
  
  2️⃣ Option 2 : une machine virtuelle
&lt;/h2&gt;

&lt;p&gt;Deuxième idée : une VM. Elle tourne en continu et garde tout en mémoire. Les besoins A et B sont couverts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pourquoi ça coince :&lt;/strong&gt; on récupère tout le travail d’administration (mises à jour, pare-feu, supervision, certificats). C’est beaucoup pour un programme qui passe l’essentiel de son temps à attendre.&lt;/p&gt;

&lt;h2&gt;
  
  
  3️⃣ Option 3 : une instance Cloud Run
&lt;/h2&gt;

&lt;p&gt;Troisième voie : &lt;strong&gt;Cloud Run instances&lt;/strong&gt; , un nouveau type de ressource. Un conteneur unique, toujours allumé, avec une adresse fixe et un espace de stockage qui survit à tout. On le démarre, on l’arrête, on le met à jour, et c’est tout. Le tout pour &lt;strong&gt;5,70 $ par mois&lt;/strong&gt; dans sa plus petite taille.&lt;/p&gt;

&lt;p&gt;J’ai testé cette approche avec &lt;a href="https://github.com/NousResearch/hermes-agent" rel="noopener noreferrer"&gt;Hermes Agent&lt;/a&gt;, un agent open source. Il s’appuie sur un modèle Gemma 4 hébergé à côté, sur un service Cloud Run équipé d’un GPU.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F508t4cdwgbl7v0vz4nm1.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F508t4cdwgbl7v0vz4nm1.webp" alt="Schéma : l’agent tourne dans une instance Cloud Run, garde son état sur un volume Cloud Storage et appelle son modèle sur un service Cloud Run avec GPU" width="800" height="580"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⚡️ Voici ce que j’ai constaté pendant le test :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;La mémoire tient.&lt;/strong&gt; Ce que l’agent écrit sur son stockage survit aux mises à jour, aux arrêts et aux redémarrages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;L’adresse ne bouge pas&lt;/strong&gt; , quoi qu’il arrive.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tout reste privé.&lt;/strong&gt; L’agent parle à son modèle sans passer par Internet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Une instance arrêtée ne coûte rien.&lt;/strong&gt; Ma première session de tests complète m’a coûté deux centimes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Le redémarrage hebdomadaire a bien lieu, et l’agent s’en remet seul.&lt;/strong&gt; Après une semaine pile sans interruption, Google a redémarré l’instance pour maintenance. Elle était de retour en une vingtaine de secondes, et l’agent avait repris son travail une minute et demie plus tard.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Pourquoi le prix est si bas
&lt;/h3&gt;

&lt;p&gt;L’instance ne réserve qu’une petite fraction de processeur en continu, mais elle peut accélérer à pleine puissance pendant quelques minutes quand elle en a besoin. En test, le plein régime tient environ trois minutes et demie, et deux minutes de calme suffisent à le retrouver.&lt;/p&gt;

&lt;p&gt;Un agent réfléchit, appelle un outil, attend, reprend. Il travaille par à-coups, et c’est exactement ce profil que ce modèle de prix récompense.&lt;/p&gt;

&lt;h3&gt;
  
  
  Les limites de l’instance
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;C’est une Preview.&lt;/strong&gt; Certaines régions ne la proposent pas encore.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pas de GPU sur l’instance.&lt;/strong&gt; Le modèle d’IA se place à côté, sur un service Cloud Run avec GPU. En Europe, une seule région propose aujourd’hui les deux.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Le stockage n’est pas un vrai disque.&lt;/strong&gt; Il convient très bien à des fichiers écrits d’un coup par un seul programme, moins à une base de données.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Un redémarrage par semaine.&lt;/strong&gt; L’agent doit savoir reprendre son planning au réveil, d’où l’intérêt de garder son état sur le stockage plutôt qu’en mémoire.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Une mise à jour coupe le service&lt;/strong&gt; pendant près de deux minutes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💪 ProTip : gardez la configuration qui change souvent hors du conteneur, dans un gestionnaire de secrets ou un fichier du stockage. Vous n’aurez presque plus de mises à jour, donc presque plus de coupures.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧪 Bonus : des bacs à sable pour le code généré
&lt;/h2&gt;

&lt;p&gt;Un agent qui écrit du code doit pouvoir l’exécuter sans risquer de casser son propre environnement. L’instance peut lancer ce code dans des bacs à sable isolés, en quelques dixièmes de seconde. Par défaut, ils n’ont accès ni à Internet, ni aux identifiants de l’agent, ni à sa mémoire : une ligne de code hallucinée ne peut rien abîmer.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚖️ Comparatif des trois options
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;1. Service Cloud Run&lt;/th&gt;
&lt;th&gt;2. Machine virtuelle&lt;/th&gt;
&lt;th&gt;3. Instance Cloud Run&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Tourne en continu (A)&lt;/td&gt;
&lt;td&gt;non&lt;/td&gt;
&lt;td&gt;oui&lt;/td&gt;
&lt;td&gt;oui&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Garde sa mémoire (B)&lt;/td&gt;
&lt;td&gt;non&lt;/td&gt;
&lt;td&gt;oui&lt;/td&gt;
&lt;td&gt;oui&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Adresse web fournie (C)&lt;/td&gt;
&lt;td&gt;oui&lt;/td&gt;
&lt;td&gt;à construire&lt;/td&gt;
&lt;td&gt;oui, et fixe&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Serveur à maintenir (C)&lt;/td&gt;
&lt;td&gt;non&lt;/td&gt;
&lt;td&gt;oui&lt;/td&gt;
&lt;td&gt;non&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Coût&lt;/td&gt;
&lt;td&gt;nul quand rien n’arrive&lt;/td&gt;
&lt;td&gt;non mesuré&lt;/td&gt;
&lt;td&gt;5,70 $ par mois allumée, 0 arrêtée&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  🎯 Conclusion : le serverless apprend à garder son état
&lt;/h2&gt;

&lt;p&gt;Pendant des années, il fallait choisir entre la simplicité du serverless et un serveur qui ne s’éteint jamais. &lt;strong&gt;L’instance Cloud Run est la seule des trois options qui couvre A, B et C à la fois&lt;/strong&gt;  : je pousse un conteneur, il tourne, il se souvient, et il coûte le prix d’un abonnement de streaming.&lt;/p&gt;

&lt;p&gt;Elle ne remplace pas tout : un traitement massif en parallèle, une API publique très sollicitée ou un modèle d’IA à servir ont chacun leur propre brique Cloud Run. Mais pour un agent qui travaille en fond, c’est exactement la brique qui manquait.&lt;/p&gt;

&lt;p&gt;C’est encore une Preview : pas de production dessus demain. Pour mes propres agents, en revanche, je continue à tester et explorer de nouveaux cas d’usage.&lt;/p&gt;

&lt;p&gt;Et surprise, prochainement, un nouveau service Cloud Run qui va plaire à beaucoup de monde ! 🤫😁&lt;/p&gt;

&lt;h2&gt;
  
  
  📚 Références
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.cloud.google.com/run/docs/instances/create-and-manage-instances" rel="noopener noreferrer"&gt;Gérer les instances Cloud Run&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cloud.google.com/run/pricing" rel="noopener noreferrer"&gt;Tarifs Cloud Run&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.cloud.google.com/run/quotas" rel="noopener noreferrer"&gt;Quotas et limites Cloud Run&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🎓 Aller plus loin avec les agents IA
&lt;/h2&gt;

&lt;p&gt;Vous voulez construire votre propre agent ? En une journée, la &lt;strong&gt;&lt;a href="https://techtown.fr/formations/developper-son-agent/" rel="noopener noreferrer"&gt;formation Développer son propre agent&lt;/a&gt; de TechTown&lt;/strong&gt; couvre :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;les cas d’usage ;&lt;/li&gt;
&lt;li&gt;l’architecture d’un agent ;&lt;/li&gt;
&lt;li&gt;trois ateliers pratiques, dont la construction d’un agent IA avec un serveur MCP sur Cloud Run.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>googlecloud</category>
      <category>cloudrun</category>
      <category>serverless</category>
      <category>ai</category>
    </item>
    <item>
      <title>Agents CLI : l'outil de Google pour piloter vos agents IA de bout en bout</title>
      <dc:creator>Benjamin Bourgeois</dc:creator>
      <pubDate>Mon, 04 May 2026 07:08:32 +0000</pubDate>
      <link>https://dev.to/techtown-fr/agents-cli-loutil-de-google-pour-piloter-vos-agents-ia-de-bout-en-bout-ibf</link>
      <guid>https://dev.to/techtown-fr/agents-cli-loutil-de-google-pour-piloter-vos-agents-ia-de-bout-en-bout-ibf</guid>
      <description>&lt;p&gt;Construire un agent IA est devenu accessible avec des frameworks agentiques comme &lt;a href="https://bbourgeois.dev/posts/2025/adk-core-concept/" rel="noopener noreferrer"&gt;Agent Development Kit (ADK)&lt;/a&gt; de Google. En revanche, tout ce qui l'entoure (l'évaluation, l'infrastructure, le déploiement, la publication) reste encore un processus artisanal, pas industrialisé. C'est précisément le problème que Google cherche à résoudre avec &lt;strong&gt;Agents CLI&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; : Agents CLI est un outil officiel Google qui orchestre l'ensemble du cycle de vie d'un agent ADK : création, test, évaluation, déploiement et publication. Il est conçu pour fonctionner aussi bien en terminal qu'en mode agent (Gemini CLI, Claude Code, Cursor).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  🤖 Qu'est-ce qu'Agents CLI ?
&lt;/h2&gt;

&lt;p&gt;Agents CLI est l'outillage officiel de Google pour le cycle de développement des agents construits avec &lt;a href="https://google.github.io/adk-docs/" rel="noopener noreferrer"&gt;Agent Development Kit (ADK)&lt;/a&gt;. L'idée centrale : vous ne devriez pas avoir à reconstruire l'outillage de zéro à chaque projet. L'outil injecte sept "skills" directement dans votre environnement de développement (ou dans votre assistant IA) pour couvrir chaque étape, du scaffolding initial jusqu'au déploiement en production.&lt;/p&gt;

&lt;p&gt;Il fonctionne en deux modes complémentaires :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Human mode&lt;/strong&gt; : vous tapez les commandes directement dans votre terminal, comme n'importe quel CLI&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agent mode&lt;/strong&gt; : votre assistant IA (Gemini CLI, Claude Code, Cursor…) exécute les commandes de façon autonome&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ce deuxième mode est le pari le plus intéressant de l'outil. Agents CLI expose des skills structurées pour que les agents puissent comprendre le contexte de votre projet sans se noyer dans la documentation. Moins de context overhead, plus d'autonomie réelle.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4b4577476r7sw8tq8ln0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4b4577476r7sw8tq8ln0.png" alt="Les 10 étapes du cycle de développement agentique automatisé avec Agents CLI, de la définition du persona jusqu'au CI/CD en production" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  💻 Installation et prérequis
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Prérequis&lt;/strong&gt; : Python 3, Node.js et &lt;code&gt;uv&lt;/code&gt; (le gestionnaire de packages Python rapide).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Installer et configurer Agents CLI&lt;/span&gt;
uvx google-agents-cli setup
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;L'authentification se fait automatiquement via vos credentials &lt;code&gt;gcloud&lt;/code&gt;. Si vous travaillez sans projet GCP, une variable d'environnement &lt;code&gt;GEMINI_API_KEY&lt;/code&gt; suffit pour démarrer en local.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔄 Le cycle de vie en commandes
&lt;/h2&gt;

&lt;p&gt;Voici le flow complet, de la création à la mise en production :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. Scaffolding du projet&lt;/span&gt;
agents-cli create mon-agent &lt;span class="nt"&gt;--deployment-target&lt;/span&gt; agent_runtime

&lt;span class="c"&gt;# 2. Installer les dépendances&lt;/span&gt;
agents-cli &lt;span class="nb"&gt;install&lt;/span&gt;

&lt;span class="c"&gt;# 3. Lancer le playground local (interface web de test)&lt;/span&gt;
agents-cli playground

&lt;span class="c"&gt;# 4. Évaluer les performances de l'agent&lt;/span&gt;
agents-cli &lt;span class="nb"&gt;eval &lt;/span&gt;run

&lt;span class="c"&gt;# 5. Comparer deux runs d'évaluation&lt;/span&gt;
agents-cli &lt;span class="nb"&gt;eval &lt;/span&gt;compare run1.json run2.json

&lt;span class="c"&gt;# 6. Provisionner l'infrastructure GCP (IaC automatisé)&lt;/span&gt;
agents-cli infra single-project

&lt;span class="c"&gt;# 7. Déployer sur Cloud Run ou Agent Runtime&lt;/span&gt;
agents-cli deploy

&lt;span class="c"&gt;# 8. Publier dans Gemini Enterprise&lt;/span&gt;
agents-cli publish gemini-enterprise
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;On note la cohérence du flow : chaque commande s'enchaîne naturellement dans la continuité de la précédente, sans jongler entre plusieurs outils ou consoles GCP.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa7tit5tjeckkb9eivgd5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa7tit5tjeckkb9eivgd5.png" alt="Interface du playground ADK : conversation avec l'agent logistician qui route la demande via transfer_to_agent avant de répondre" width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  💡 Un exemple concret : agent de support client multi-agents
&lt;/h2&gt;

&lt;p&gt;Pour illustrer ce qu'Agents CLI permet de mettre en production rapidement, voici la structure d'un système multi-agents de support client. Deux agents spécialisés, chacun avec un rôle précis :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;google.adk.agents&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;LlmAgent&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;google.adk.tools&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;FunctionTool&lt;/span&gt;

&lt;span class="c1"&gt;# Agent de tri : classe l'intention et route vers le bon spécialiste
&lt;/span&gt;&lt;span class="n"&gt;concierge&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;LlmAgent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;concierge&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gemini-2.0-flash&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;instruction&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Analyse la demande entrante et route vers l&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;agent approprié.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nc"&gt;FunctionTool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;route_to_specialist&lt;/span&gt;&lt;span class="p"&gt;)],&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Agent logistique : gère commandes et stocks
&lt;/span&gt;&lt;span class="n"&gt;logistician&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;LlmAgent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;logistician&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gemini-2.0-flash&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;instruction&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Réponds aux questions sur les commandes, livraisons et inventaires.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nc"&gt;FunctionTool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;get_order_status&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nc"&gt;FunctionTool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;check_inventory&lt;/span&gt;&lt;span class="p"&gt;)],&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agents CLI prend ensuite en charge la containerisation, le push vers Artifact Registry et la configuration IAM. Vous restez concentré sur la logique métier.&lt;/p&gt;

&lt;h2&gt;
  
  
  🤔 Les avantages et les améliorations d'Agents CLI
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Les points forts :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Un seul outil&lt;/strong&gt; pour tout le cycle de vie, fini les scripts de déploiement maison&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Playground intégré&lt;/strong&gt; : une interface web locale pour tester sans infrastructure&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Évaluation native&lt;/strong&gt; : &lt;code&gt;eval run&lt;/code&gt; et &lt;code&gt;eval compare&lt;/code&gt; donnent une vraie mesure de la qualité&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pensé pour les agents&lt;/strong&gt; : les skills réduisent le context overhead de Gemini CLI, Claude Code, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IaC automatisé&lt;/strong&gt; : l'infra GCP se provisionne sans toucher à Terraform ou à la console&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Les limites à connaître :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pas de support Windows natif&lt;/strong&gt; : WSL 2 obligatoire&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Couplé à GCP&lt;/strong&gt; : déploiement impossible sans projet Google Cloud avec facturation activée&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Encore en preview&lt;/strong&gt; : l'API des commandes peut évoluer, à éviter sur des projets critiques en prod&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Abstraction opaque&lt;/strong&gt; : si &lt;code&gt;infra&lt;/code&gt; ou &lt;code&gt;deploy&lt;/code&gt; plante, le debugging peut être difficile sans connaître les couches sous-jacentes (Cloud Run, IAM, Artifact Registry)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🤝 À retenir
&lt;/h2&gt;

&lt;p&gt;Agents CLI répond à un vrai manque : un cycle de développement unifié pour les agents ADK, de la création au déploiement sur Google Cloud. Pour les équipes qui gèrent plusieurs agents, c'est une standardisation bienvenue. Pour les profils solo, c'est surtout du temps récupéré sur tout ce qui n'est pas de la logique métier.&lt;/p&gt;

&lt;p&gt;L'outil étant encore en preview, c'est le bon moment pour l'expérimenter sur un projet non-critique et se positionner avant que ça devienne le standard de facto sur GCP. Si vous avez déjà des agents ADK qui tournent, la migration vers ce workflow devrait être naturelle.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://google.github.io/agents-cli/" rel="noopener noreferrer"&gt;Documentation officielle&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/google/agents-cli" rel="noopener noreferrer"&gt;Dépôt GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>adk</category>
      <category>gcp</category>
      <category>agents</category>
    </item>
    <item>
      <title>🤖 Comment structurer la mémoire de vos agents avec Google ADK</title>
      <dc:creator>Benjamin Bourgeois</dc:creator>
      <pubDate>Fri, 03 Apr 2026 13:09:58 +0000</pubDate>
      <link>https://dev.to/techtown-fr/comment-structurer-la-memoire-de-vos-agents-avec-google-adk-2o58</link>
      <guid>https://dev.to/techtown-fr/comment-structurer-la-memoire-de-vos-agents-avec-google-adk-2o58</guid>
      <description>&lt;p&gt;Le plus gros défi avec les LLMs, c'est qu'ils sont fondamentalement « stateless ». Sans une couche de gestion de session et de mémoire, chaque requête est une page blanche. Pour un développeur, la difficulté est de savoir &lt;strong&gt;quoi stocker&lt;/strong&gt;, &lt;strong&gt;où le stocker&lt;/strong&gt; et &lt;strong&gt;combien de temps&lt;/strong&gt; le garder.&lt;/p&gt;

&lt;p&gt;Pour transformer un simple chatbot en un agent intelligent, il faut mettre en place une architecture de contexte. &lt;a href="https://google.github.io/adk-docs/" rel="noopener noreferrer"&gt;Agent Development Kit&lt;/a&gt; (ADK) de Google répond à ce besoin en structurant la persistance autour de trois piliers : la &lt;strong&gt;Session&lt;/strong&gt;, le &lt;strong&gt;State&lt;/strong&gt; et la &lt;strong&gt;Memory&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;En maîtrisant ces concepts, vous permettez à votre agent d'apprendre de ses interactions et de devenir plus pertinent au fil du temps, tout en gérant intelligemment la fenêtre de contexte limitée des modèles.&lt;/p&gt;

&lt;h2&gt;
  
  
  🏗️ Architecture du contexte dans ADK
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🚦 Session, State et Memory
&lt;/h3&gt;

&lt;p&gt;Il est crucial de différencier ces trois piliers pour ne pas surcharger la mémoire de travail de l'agent :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;« &lt;strong&gt;Session&lt;/strong&gt; » : Le conteneur de la discussion actuelle (le « thread »). Elle contient la liste chronologique des événements.&lt;/li&gt;
&lt;li&gt;« &lt;strong&gt;State&lt;/strong&gt; » : Le « bloc-notes » temporaire. On y stocke des données de travail (ex: un panier d'achat) qui disparaissent ou s'archivent à la fin de la discussion.&lt;/li&gt;
&lt;li&gt;« &lt;strong&gt;Memory&lt;/strong&gt; » : La bibliothèque d'archives inter-sessions. Elle est consultable via une recherche sémantique pour ramener du contexte passé dans le présent.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🧠 Mémoire court-terme vs long-terme
&lt;/h3&gt;

&lt;p&gt;Pour concevoir un agent performant, il faut séparer les flux comme le fait le cerveau humain :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Short-Term Memory (Sessions &amp;amp; State)&lt;/strong&gt; : Mémoire de travail active uniquement durant la conversation en cours . Elle sert à suivre la progression ou stocker des calculs intermédiaires. Une fois la session fermée, cette mémoire disparaît (ou est envoyée vers l'archivage).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Long-Term Memory (Memory Bank)&lt;/strong&gt; : Elle ne contient pas le texte brut, mais des faits consolidés (ex: « L'utilisateur préfère Python »). L'agent consulte cette archive au début de chaque nouvelle session pour ne pas repartir de zéro.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  🔄 SessionService : Garantir la continuité
&lt;/h3&gt;

&lt;p&gt;L'objet &lt;strong&gt;Session&lt;/strong&gt; est le composant fondamental du suivi. Sans lui, chaque interaction repartirait de zéro.&lt;/p&gt;

&lt;p&gt;Une session se définit par plusieurs propriétés clés :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Identification&lt;/strong&gt; : Elle lie un identifiant unique (&lt;code&gt;id&lt;/code&gt;), un nom d'application (&lt;code&gt;app_name&lt;/code&gt;) et un identifiant utilisateur (&lt;code&gt;userId&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Historique&lt;/strong&gt; (&lt;code&gt;events&lt;/code&gt;) : Une séquence chronologique de tous les objets Event (messages utilisateur, réponses de l'agent, appels d'outils) survenue dans ce thread.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;État&lt;/strong&gt; (&lt;code&gt;state&lt;/code&gt;) : Un dictionnaire de données temporaires servant de « bloc-notes » à l'agent durant l'interaction.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Suivi d'activité&lt;/strong&gt; (&lt;code&gt;lastUpdateTime&lt;/code&gt;) : Un horodatage indiquant la dernière interaction dans la session.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F10q8tlghfqpf3109g77s.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F10q8tlghfqpf3109g77s.webp" width="800" height="370"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Le choix du service dépend de votre besoin de persistance et de contrôle :&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Service&lt;/th&gt;
&lt;th&gt;Persistance&lt;/th&gt;
&lt;th&gt;Usage recommandé&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;InMemorySessionService&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Nulle&lt;/td&gt;
&lt;td&gt;Développement local et tests unitaires.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;VertexAiSessionService&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Élevée&lt;/td&gt;
&lt;td&gt;Production managée sur Google Cloud.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;DatabaseSessionService&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Élevée&lt;/td&gt;
&lt;td&gt;Contrôle total sur votre propre base (PostgreSQL, SQLite).&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;Le Rewind : Annuler et corriger&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Le Rewind permet de faire revenir une session à un état précédent via un &lt;code&gt;invocation_id&lt;/code&gt;. Cela restaure le &lt;strong&gt;State&lt;/strong&gt; tel qu'il était avant une erreur de l'agent, permettant de repartir sur une base saine sans perdre tout l'historique.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  📝 State : Le bloc-notes dynamique de l'agent
&lt;/h3&gt;

&lt;p&gt;Dans ADK, l'attribut state d'une session est un dictionnaire clé-valeur servant de mémoire de travail. Contrairement à l'historique complet des événements, il stocke des détails structurés nécessaires au tour de conversation actuel (ex: statut d'authentification, étape d'un formulaire).&lt;/p&gt;

&lt;h4&gt;
  
  
  💡 Gestion de la portée via les préfixes
&lt;/h4&gt;

&lt;p&gt;ADK utilise des &lt;strong&gt;préfixes&lt;/strong&gt; pour définir automatiquement la visibilité et la durée de vie des données:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Préfixe&lt;/th&gt;
&lt;th&gt;Portée (Scope)&lt;/th&gt;
&lt;th&gt;Persistance&lt;/th&gt;
&lt;th&gt;Cas d'usage&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Aucun&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Session actuelle&lt;/td&gt;
&lt;td&gt;Liée au service de session&lt;/td&gt;
&lt;td&gt;Étape d'un tunnel d'achat.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;user:&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Identité utilisateur&lt;/td&gt;
&lt;td&gt;Partagée entre toutes ses sessions&lt;/td&gt;
&lt;td&gt;Préférences, nom.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;app:&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Application globale&lt;/td&gt;
&lt;td&gt;Partagée entre tous les utilisateurs&lt;/td&gt;
&lt;td&gt;Version API, code promo.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;temp:&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Invocation en cours&lt;/td&gt;
&lt;td&gt;Éphémère (effacée après la réponse)&lt;/td&gt;
&lt;td&gt;Calculs intermédiaires.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Exemple d'utilisation&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# The ADK automatically replaces {user:name} with the value found in state
&lt;/span&gt;&lt;span class="n"&gt;agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;adk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;LlmAgent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;instruction&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Greet the user by saying: Hello {user:name}!&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Updating state within a tool safely
&lt;/span&gt;&lt;span class="nd"&gt;@adk.tool&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;set_preference&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;adk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ToolContext&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user:fav_color&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;color&lt;/span&gt; &lt;span class="c1"&gt;# Captured and persisted automatically
&lt;/span&gt;    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Preference saved.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🧠 MemoryService : Choisir son moteur de connaissances
&lt;/h3&gt;

&lt;p&gt;Dans ADK, le &lt;strong&gt;MemoryService&lt;/strong&gt; est l'interface qui gère l'archivage et la récupération des connaissances à long terme. Sa mission est double : ingérer les informations pertinentes d'une session terminée (&lt;code&gt;add_session_to_memory&lt;/code&gt;) et permettre à l'agent de les retrouver via une recherche (&lt;code&gt;search_memory&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;Il existe deux implémentations principales selon vos besoins en persistance et en intelligence :&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Caractéristique&lt;/th&gt;
&lt;th&gt;InMemoryMemoryService&lt;/th&gt;
&lt;th&gt;VertexAiMemoryBankService&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Persistance&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Nulle (perdue au redémarrage)&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Élevée&lt;/strong&gt; (Managée par Vertex AI)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Extraction&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Stocke l'historique brut&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Intelligente&lt;/strong&gt; (extraite et consolidée par LLM)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Type de recherche&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Mots-clés basiques&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Sémantique avancée&lt;/strong&gt; (Embeddings)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Usage idéal&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Prototypage et tests rapides&lt;/td&gt;
&lt;td&gt;Production et apprentissage continu&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;🚀 Le workflow complet&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Pour bien comprendre comment ces composants interagissent, voici le cycle de vie d'une information, de sa captation à sa réutilisation:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Interaction&lt;/strong&gt; : L'utilisateur échange avec l'agent via une &lt;strong&gt;Session&lt;/strong&gt;. Chaque message et action est enregistré comme un &lt;strong&gt;Event&lt;/strong&gt;, et le &lt;strong&gt;State&lt;/strong&gt; gère les données de travail immédiates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Archivage&lt;/strong&gt; : Lorsqu'une session est jugée riche en informations, l'application appelle &lt;code&gt;add_session_to_memory(session)&lt;/code&gt;. Le système extrait les faits marquants de l'historique et les consolide dans le &lt;code&gt;MemoryService&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mémoire&lt;/strong&gt; : Dans une session future, l'agent utilise un outil dédié (&lt;code&gt;LoadMemoryTool&lt;/code&gt; ou &lt;code&gt;PreloadMemoryTool&lt;/code&gt;) s'il détecte un besoin de contexte passé.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recherche Sémantique&lt;/strong&gt; : L'outil interroge le service de mémoire (&lt;code&gt;search_memory&lt;/code&gt;). S'il s'agit de la Memory Bank, une recherche par similarité vectorielle est effectuée pour trouver les souvenirs les plus proches du sens de la requête.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Restitution &amp;amp; Réponse&lt;/strong&gt; : Le service renvoie les souvenirs pertinents (&lt;code&gt;MemoryResult&lt;/code&gt;). L'agent les intègre alors dans ses instructions système pour formuler une réponse personnalisée et historiquement cohérente.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  🤖 Vers une IA qui apprend vraiment
&lt;/h2&gt;

&lt;p&gt;En maîtrisant ce trio, &lt;strong&gt;Session&lt;/strong&gt;, &lt;strong&gt;State&lt;/strong&gt; et &lt;strong&gt;Memory&lt;/strong&gt;, vous sortez enfin du mode "stateless" des LLM. Cette architecture, propulsée par ADK et Google Cloud, garantit que vos agents ne se contentent pas de répondre, mais s'adaptent et valorisent chaque interaction sur le long terme.&lt;/p&gt;

</description>
      <category>adk</category>
      <category>googlecloud</category>
      <category>vertexai</category>
      <category>agents</category>
    </item>
    <item>
      <title>AWS Summit Paris 2026 : le grand saut dans l'ère de l'IA agentique</title>
      <dc:creator>Benjamin Bourgeois</dc:creator>
      <pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate>
      <link>https://dev.to/techtown-fr/aws-summit-paris-2026-le-grand-saut-dans-lere-de-lia-agentique-4l06</link>
      <guid>https://dev.to/techtown-fr/aws-summit-paris-2026-le-grand-saut-dans-lere-de-lia-agentique-4l06</guid>
      <description>&lt;p&gt;Le 1er avril 2026, le Palais des Congrès de Paris accueillait l’édition 2026 de l’AWS Summit. Si les années précédentes étaient marquées par l’expérimentation autour de l’IA générative, cette édition a acté un changement de paradigme : nous quittons l’ère du simple « chat » pour entrer dans celle des agents autonomes et industrialisés.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo5ptj8d59daiidty0jhc.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo5ptj8d59daiidty0jhc.webp" alt="Salle plénière comble de l’AWS Summit Paris 2026 pendant la keynote, avec la scène éclairée, le logo AWS et les écrans géants « Le cloud pour toutes et tous »" width="800" height="1067"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Une keynote sous le signe de la puissance et du « Why Not »
&lt;/h2&gt;

&lt;p&gt;La matinée a débuté avec Amélie Clugnet, qui a rappelé l’ancrage massif d’AWS en France, fort de 1 000 salariés et d’une disponibilité exemplaire de sa région cloud. Ensuite, la keynote a donné une impulsion claire à travers le concept du « Why Not ». L’idée centrale que je retiens est la mutation profonde de notre rôle : il ne s’agit plus seulement d’assister le développeur dans ses tâches quotidiennes, mais de lui fournir les leviers pour piloter de véritables flottes d’agents. Ces derniers sont désormais capables de transformer des « insights » théoriques en actions concrètes au sein de l’infrastructure.&lt;/p&gt;

&lt;p&gt;Le témoignage du Groupe Canal+ a parfaitement illustré cette ambition. Pour supporter son expansion internationale, le groupe a structuré une plateforme capable d’orchestrer plusieurs modèles via Amazon Bedrock. Cette architecture « agnostique » leur permet aujourd’hui d’absorber des pics de charge colossaux, allant jusqu’à 3 millions d’utilisateurs simultanés lors de grands événements sportifs, tout en personnalisant l’expérience à l’échelle mondiale.&lt;/p&gt;

&lt;h2&gt;
  
  
  La montée en puissance de l’écosystème agentique
&lt;/h2&gt;

&lt;p&gt;En parcourant l’Innovation Corner, l’omniprésence d’AgentCore a confirmé que la gestion de la mémoire à long terme et l’auditabilité des décisions des agents sont devenues les nouvelles priorités. C’est une brique qui s’impose désormais comme un standard pour déployer des agents en production avec un haut niveau de confiance.&lt;/p&gt;

&lt;p&gt;Parallèlement, les annonces autour de Strands Agents, le nouveau SDK open source d’AWS, simplifient nettement le développement. Ce framework s’appuie sur les capacités de raisonnement natives des modèles de dernière génération pour planifier et exécuter des tâches dynamiquement, évitant ainsi aux développeurs de s’enfermer dans des workflows manuels trop rigides.&lt;/p&gt;

&lt;h2&gt;
  
  
  Kiro : replacer le développeur au centre de l’architecture
&lt;/h2&gt;

&lt;p&gt;Le moment fort de notre présence au Summit a été notre conférence dédiée à Kiro, que j’ai présentée avec Julien Landuré dans la Developer Community Zone. Julien raconte la session en détail dans &lt;a href="https://techtown.fr/blog/aws-summit-paris-kiro-spec-driven-development/" rel="noopener noreferrer"&gt;son article&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Officiellement adopté comme l’IDE standard d’AWS, cet outil impose une structure inédite au développement « IA-native » via le Spec-Driven Development (SDD). En s’appuyant sur la syntaxe EARS, cette méthodologie garantit que le développeur ne subit plus la génération de code, mais la dirige. En incluant toutes les parties prenantes dès le design, on réduit drastiquement les coûts tout en gardant une maîtrise totale sur l’architecture.&lt;/p&gt;

&lt;p&gt;Au-delà de la conception, Kiro outille l’agent de bout en bout pour le rendre opérationnel jusqu’au déploiement grâce aux « powers », des capacités d’action réelles sur les services externes. Mais la véritable rupture réside dans la transition du « Prompt » au « Context Engineering ».&lt;/p&gt;

&lt;p&gt;Là où le « prompt engineering » classique s’essouffle face à la complexité des projets, Kiro apporte une réponse systémique via le « steering ». L’écosystème technique est segmenté en fichiers spécialisés (produit, structure, technique) et un « matching » intelligent ne charge que les données critiques pour la tâche en cours. L’agent ne devine plus : il intègre nativement vos standards et l’historique du projet pour une exécution focalisée et de haute précision.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6ckm0zg95g718eh6t6m7.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6ckm0zg95g718eh6t6m7.webp" alt="Julien Landuré et Benjamin Bourgeois sur la scène de la Developer Community Zone, devant l’écran de leur talk « Kiro : Ne codez plus seul, pilotez vos agents de code »" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Ce que nous en retirons pour la suite : l’évolution vers l’orchestrateur
&lt;/h2&gt;

&lt;p&gt;L’enseignement principal de ce Summit est la transformation radicale de notre métier. Nous sortons de l’ère de l’artisanat du code pour entrer dans celle de l’orchestration. Le développeur de 2026 ne produit plus chaque ligne manuellement ; il gère des capacités, valide des trajectoires et garantit la cohérence des systèmes.&lt;/p&gt;

&lt;p&gt;Dans ce nouveau paradigme, la barrière entre la technique pure et les besoins métiers s’efface au profit d’une compréhension globale du contexte. Il est plus crucial que jamais de bien s’équiper (soi et son IA) pour maintenir des standards de qualité élevés tout en codant à la vitesse de sa pensée. Avec des socles comme l’AWS European Sovereign Cloud et des outils comme Kiro, nous disposons enfin des moyens pour piloter cette complexité avec sérénité.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🚀 Le tips Kiro&lt;/strong&gt; : Pour ceux qui veulent passer à la pratique, connectez-vous dès maintenant avec votre AWS Builder ID sur Kiro pour bénéficier de 500 crédits bonus et tester vos premières boucles de développement agentique.&lt;/p&gt;

</description>
      <category>events</category>
      <category>aws</category>
      <category>kiro</category>
    </item>
  </channel>
</rss>
