[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"portal-settings:stajic:fr":3,"public-menus:all":38,"post:ai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context:fr":205,"related:post:ai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context:fr:1":1490},{"statusCode":4,"data":5,"message":37},200,{"tenantId":6,"lang":7,"defaultLang":8,"siteUrl":9,"contactEmail":10,"brandName":11,"logoUrl":12,"siteName":11,"siteDescription":13,"ogImage":10,"robotsIndex":14,"socialLinks":10,"reservedSlugs":10,"seoPolicy":15},"stajic","fr","de","https:\u002F\u002Fstajic.de",null,"Stajic Platform","\u002FLogo_Planet.svg","Stajic Portal",true,{"branding":16,"relatedContent":17,"crossDomainLinks":18},{"logoUrl":12},{"enabled":14},[19,22,25,28,31,34],{"url":20,"label":21,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Ffigure.rocks","figure.rocks",{"url":23,"label":24,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Floving.rocks","loving.rocks",{"url":26,"label":27,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Fbazify.com","bazify.com",{"url":29,"label":30,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Fbazify.de","bazify.de",{"url":32,"label":33,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Fbazify.at","bazify.at",{"url":35,"label":36,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Fbazify.ba","bazify.ba","Portal settings resolved",[39,45],{"id":40,"name":41,"location":42,"isActive":14,"isDefault":43,"items":44},1,"main-navigation","header",false,[],{"id":46,"name":47,"location":48,"isActive":14,"isDefault":14,"items":49},4,"main-menu","sidebar",[50,66,79,93,103,118,133],{"id":51,"title":52,"url":60,"target":61,"icon":62,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":64,"portfolioId":10,"children":65},"item-18",{"de":53,"en":54,"es":55,"fr":56,"it":54,"ru":57,"sr":58,"zh":59},"Startseite","Home","Inicio","Accueil","Главная","Почетна","首页","\u002Ffull-stack-web-developer-munich-performance-seo-and-maintainable-builds","_self","i-lucide-home","page",111,[],{"id":67,"title":68,"url":75,"target":61,"icon":76,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":77,"portfolioId":10,"children":78},"item-22",{"de":69,"en":69,"es":70,"fr":69,"it":71,"ru":72,"sr":73,"zh":74},"Vision","Visión","Visione","Видение","Визија","想象","\u002Fueber-uns-webdesign-muenchen-webaplikation","i-lucide-eye",113,[],{"id":80,"title":81,"url":89,"target":61,"icon":90,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":91,"portfolioId":10,"children":92},"item-19",{"de":82,"en":83,"es":84,"fr":83,"it":85,"ru":86,"sr":87,"zh":88},"Leistungen","Services","Servicios","Servizi","Услуги","Услуге","服务","\u002Fservices-dienstleistungen-muenchen","i-lucide-wrench",116,[],{"id":94,"title":95,"url":99,"target":61,"icon":100,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":101,"portfolioId":10,"children":102},"item-23",{"de":96,"en":96,"es":96,"fr":96,"it":96,"ru":97,"sr":97,"zh":98},"Blog","Блог","博客","\u002Fblog","i-lucide-book-open",112,[],{"id":104,"title":105,"url":114,"target":61,"icon":115,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":116,"portfolioId":10,"children":117},"item-32",{"de":106,"en":107,"es":108,"fr":109,"it":110,"ru":111,"sr":112,"zh":113},"Neue Technologien","New Technologies","Nuevas tecnologías","Nouvelles technologies","Nuove tecnologie","Новые технологии","Нове технологије","新技术！","\u002Fneue-webtechnologien","i-lucide-sparkles",122,[],{"id":119,"title":120,"url":129,"target":61,"icon":130,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":131,"portfolioId":10,"children":132},"item-20",{"de":121,"en":122,"es":123,"fr":124,"it":125,"ru":126,"sr":127,"zh":128},"Kontakt","Contact us!","Contacto","Contact","Contatto","Контакт","Контактирајте нас","联系我们！","\u002Fcontact","i-lucide-mail",115,[],{"id":134,"title":135,"url":144,"target":61,"icon":145,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":146,"portfolioId":10,"children":147},"item-21",{"de":136,"en":137,"es":138,"fr":139,"it":140,"ru":141,"sr":142,"zh":143},"Unsere Arbeit","Our Work","Nuestro trabajo","Nos réalisations","I nostri lavori","Наши работы","Наши радови","文件夹","\u002Fportfolio","i-lucide-briefcase",114,[148,161,175,181,193],{"id":149,"title":150,"url":144,"target":61,"icon":159,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":146,"portfolioId":10,"children":160},"item-24",{"de":151,"en":152,"es":153,"fr":154,"it":155,"ru":156,"sr":157,"zh":158},"Alle Projekte","All Projects","Todos los proyectos","Tous les projets","Tutti i progetti","Все проекты","Сви пројекти","所有项目","i-lucide-grid-3x3",[],{"id":162,"title":163,"url":171,"target":61,"icon":172,"isActive":14,"type":173,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":10,"portfolioId":10,"children":174},"item-29",{"de":164,"en":165,"es":166,"fr":167,"it":168,"ru":169,"sr":170,"zh":143},"Local Roots, Global Reach","Local Roots - Global Reach","Empresa local ","Entreprise locale","Azienda locale","Местная компания","Локално предузеће глобално тржиште","\u002Fportfolio\u002Flocal-roots-global-reach-communication-media-systems-for-modern-business","i-lucide-folder","custom",[],{"id":176,"title":177,"url":179,"target":61,"icon":172,"isActive":14,"type":173,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":10,"portfolioId":10,"children":180},"item-28",{"de":178,"en":178,"es":178,"fr":178,"it":178,"ru":178,"sr":178,"zh":178},"Solr Suggester","\u002Fportfolio\u002Fsolr-fuzzy-suggester-und-solr-infix-suggester-abfrage-ueber-ajax-und-filterung",[],{"id":182,"title":183,"url":191,"target":61,"icon":172,"isActive":14,"type":173,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":10,"portfolioId":10,"children":192},"item-27",{"de":184,"en":185,"es":186,"fr":187,"it":188,"ru":189,"sr":190,"zh":185},"Firmenwebseite SEO","Company Website SEO","Sitio web corporativo SEO","Site web d’entreprise SEO","Sito web aziendale SEO","Корпоративный сайт SEO","Пословна веб-страница SEO","\u002Fportfolio\u002Fseo-sem-branding-mobile-webseite-muenchen",[],{"id":194,"title":195,"url":203,"target":61,"icon":172,"isActive":14,"type":173,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":10,"portfolioId":10,"children":204},"item-31",{"de":196,"en":197,"es":198,"fr":199,"it":200,"ru":201,"sr":202,"zh":197},"Digitalisierungsportal","Digitalization Portal","Portal de digitalización","Portail de numérisation","Portale di digitalizzazione","Портал цифровизации","Портал за дигитализацију","\u002Fportfolio\u002Fdigitalisierungsportal-archiv-museum-bibliothek-ead-lido-mets-mods",[],{"statusCode":4,"data":206,"message":1489},{"id":207,"title":208,"slug":209,"content":210,"contentJson":211,"excerpt":753,"featuredImage":754,"featuredImageAlt":755,"featuredImageCaption":10,"featuredImageTitle":10,"featuredImageCopyright":10,"featuredImageAuthor":10,"featuredImageSourceUrl":10,"featuredImageLicense":10,"featuredImageIsAiGenerated":43,"status":756,"publishedAt":757,"createdAt":758,"updatedAt":759,"seoLocalePaths":760,"categories":769,"author":782,"translations":787},"468","La mémoire des agents IA n'est pas le RAG : comment séparer la mémoire, la récupération, l'état et le contexte","ai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context","\u003Cnav class=\"editorjs-toc\" data-editorjs-toc=\"true\" aria-label=\"Table des matières\">\u003Cstrong class=\"editorjs-toc__title\">Table des matières\u003C\u002Fstrong>\u003Col class=\"editorjs-toc__list editorjs-toc__list--depth-0\">\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-5\" class=\"editorjs-toc__link\">L&#39;erreur de catégorie : traiter tout élément d&#39;apparence persistante comme de la mémoire\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-8\" class=\"editorjs-toc__link\">Une architecture à quatre couches : état, mémoire, récupération, contexte\u003C\u002Fa>\u003Col class=\"editorjs-toc__list editorjs-toc__list--depth-1\">\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-10\" class=\"editorjs-toc__link\">1. État : ce qui est vrai actuellement\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-13\" class=\"editorjs-toc__link\">2. Mémoire : ce qui doit être conservé du passé\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-16\" class=\"editorjs-toc__link\">3. Récupération : ce qui doit être sélectionné maintenant\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-19\" class=\"editorjs-toc__link\">4. Contexte : ce que le modèle peut réellement utiliser à l&#39;instant présent\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-22\" class=\"editorjs-toc__link\">Comment interagissent les couches\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-24\" class=\"editorjs-toc__link\">Pourquoi le RAG n&#39;est pas de la mémoire\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-28\" class=\"editorjs-toc__link\">Le test de séparation à quatre couches\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-32\" class=\"editorjs-toc__link\">Modes de défaillance causés par la fusion des couches\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-34\" class=\"editorjs-toc__link\">Que doit-on mémoriser, récupérer, recalculer ou relire ?\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-36\" class=\"editorjs-toc__link\">Un système de mémoire a besoin d&#39;une politique d&#39;écriture, pas seulement d&#39;une politique de récupération\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-40\" class=\"editorjs-toc__link\">La provenance est le pont entre la mémoire et les preuves fiables\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-43\" class=\"editorjs-toc__link\">Plus de mémoire ne signifie pas plus de contexte\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-46\" class=\"editorjs-toc__link\">Liste de contrôle pour la conception en production\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-48\" class=\"editorjs-toc__link\">Qu&#39;est-ce qui changerait cette réponse ?\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-51\" class=\"editorjs-toc__link\">Limites\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-53\" class=\"editorjs-toc__link\">Conclusion\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-56\" class=\"editorjs-toc__link\">FAQ\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-58\" class=\"editorjs-toc__link\">Glossaire\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-60\" class=\"editorjs-toc__link\">Sources primaires et lectures complémentaires\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fnav>\n\u003Cp>La mémoire des agents IA, la génération augmentée de récupération (RAG), l'état d'exécution et le contexte du modèle sont souvent abordés comme s'ils étaient interchangeables. Ils ne le sont pas. Les réduire à un seul concept rend les systèmes d'agents plus difficiles à appréhender, plus complexes à déboguer et plus susceptibles de devenir obsolètes ou non fiables.\u003C\u002Fp>\n\u003Caside class=\"editorjs-callout editorjs-callout--info my-6 rounded-xl border p-5 border-blue-300 bg-blue-50 dark:border-blue-900 dark:bg-blue-950\u002F20\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Réponse directe\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">&lt;strong&gt;Le RAG n&#39;est pas la mémoire d&#39;un agent.&lt;\u002Fstrong&gt; Le RAG est un patron de récupération : il sélectionne des informations susceptibles d&#39;être utiles pour l&#39;appel actuel du modèle. La mémoire correspond aux informations persistantes dérivées d&#39;interactions ou d&#39;expériences antérieures et gérées au fil du temps. L&#39;état représente ce qui est actuellement vrai concernant la tâche ou l&#39;environnement en cours d&#39;exécution. Le contexte correspond aux informations effectivement mises à la disposition du modèle pour l&#39;inférence en cours. Un agent en production peut utiliser ces quatre éléments, mais ils répondent à des problématiques différentes.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Caside class=\"editorjs-callout editorjs-callout--note my-6 rounded-xl border p-5 border-gray-300 bg-gray-50 dark:border-gray-700 dark:bg-gray-900\u002F40\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">À propos du modèle utilisé dans cet article\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">La séparation en quatre couches présentée ci-dessous est un modèle architectural pratique, et non une norme industrielle formelle. Les éditeurs et les publications de recherche emploient une terminologie qui se chevauche souvent. L&#39;objectif est ici opérationnel : clarifier les décisions de conception, la responsabilité des composants, l&#39;analyse des défaillances et les tests.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-5\">L'erreur de catégorie : traiter tout élément d'apparence persistante comme de la mémoire\u003C\u002Fh2>\n\u003Cp>Une base de données vectorielle peut stocker des fragments de conversation. Un objet de session peut conserver les échanges récents. Une ligne de base de données peut enregistrer le statut actuel d'un flux de travail. Un outil de résumé peut compresser des étapes antérieures. Un moteur de recherche peut récupérer d'anciens éléments de preuve. Tous ces éléments peuvent donner l'impression qu'un agent « se souvient », mais ils ne partagent pas la même sémantique.\u003C\u002Fp>\n\u003Cp>Cette distinction est essentielle, car les règles d'exactitude requises sont différentes. L'état actuel doit être faisant autorité et à jour. La mémoire nécessite des règles de cycle de vie pour l'écriture, la révision, l'oubli et la gestion des conflits. La récupération requiert une pertinence et une qualité de sélection des preuves. Le contexte exige une gestion rigoureuse du budget de jetons ainsi qu'une protection contre les éléments non pertinents ou contradictoires.\u003C\u002Fp>\n\u003Ch2 id=\"section-8\">Une architecture à quatre couches : état, mémoire, récupération, contexte\u003C\u002Fh2>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Couche\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Question fondamentale\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Exemples types\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Principal enjeu d'exactitude\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">État\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Qu'est-ce qui est vrai actuellement ?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Statut d'une tâche, contenu d'un panier, étape d'un flux de travail, permissions actives, état actuel du jeu\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Fraîcheur et autorité\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Mémoire\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Que faut-il conserver du passé ?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Préférence utilisateur, décision antérieure, contrainte apprise, défaillance résolue, fait durable sur un projet\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Cycle de vie, révision, provenance, oubli\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Récupération\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Quelles informations doivent être sélectionnées maintenant ?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Recherche vectorielle, recherche par mots-clés, interrogation de graphe, reclassement (reranking), recherche documentaire\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Pertinence et sélection des preuves\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Contexte\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Que voit le modèle pour cet appel ?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Instructions système, requête en cours, passages récupérés, résultats d'outils, résumés\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Utilité par jeton, ordre, cohérence, bruit\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch3 id=\"section-10\">1. État : ce qui est vrai actuellement\u003C\u002Fh3>\n\u003Cp>L'état appartient au système en cours d'exécution, et non aux souvenirs du modèle. Si une commande est annulée, un déploiement mis en pause, un droit d'accès révoqué ou une tâche passant de « en cours » à « approuvée », la valeur faisant autorité doit provenir du système qui détient cette information.\u003C\u002Fp>\n\u003Cp>Une conception risquée consiste à laisser un résumé de conversation obsolète se substituer à l'état actuel. L'agent peut parfaitement se souvenir que la commande était active hier tout en étant dans l'erreur aujourd'hui. L'état nécessite donc une responsabilité clairement définie, un contrôle de version ou des horodatages le cas échéant, ainsi qu'un moyen de relire la source de vérité avant d'exécuter des actions critiques.\u003C\u002Fp>\n\u003Ch3 id=\"section-13\">2. Mémoire : ce qui doit être conservé du passé\u003C\u002Fh3>\n\u003Cp>La mémoire ne se résume pas à « tout ce que nous pouvons stocker ». Une couche de mémoire utile détermine ce qui mérite d'être conservé, sous quelle forme, pour quelle durée, avec quelle provenance et sous quelles conditions ces informations doivent être révisées ou supprimées.\u003C\u002Fp>\n\u003Cp>La recherche récente sur la mémoire des agents considère de plus en plus que le stockage brut des historiques de transcription est insuffisant. Les travaux de Microsoft sur PlugMem se concentrent sur la transformation des historiques d'interaction bruts en connaissances structurées et réutilisables. Memora dissocie le contenu stocké riche des abstractions plus légères et des indices de récupération, évitant ainsi aux systèmes à long terme d'avoir à trancher entre le niveau de détail et un accès évolutif.\u003C\u002Fp>\n\u003Ch3 id=\"section-16\">3. Récupération : ce qui doit être sélectionné maintenant\u003C\u002Fh3>\n\u003Cp>La récupération est un mécanisme de sélection. Elle peut interroger des documents externes, des bases de connaissances internes, des mémoires stockées, des journaux, des graphes, des bases de données ou des sources composites. C'est généralement là qu'intervient le RAG : récupérer des éléments de preuve, intégrer les éléments sélectionnés dans l'entrée de travail du modèle, puis générer une réponse.\u003C\u002Fp>\n\u003Cp>Ce mécanisme ne devient pas pour autant de la mémoire au seul motif que le corpus interrogé contient des interactions passées. Le même système de récupération peut chercher des documents de politique que l'agent n'a jamais expérimentés, des données produit issues d'un autre système ou des décisions antérieures d'un utilisateur. La récupération décrit la manière dont les informations sont sélectionnées ; la mémoire décrit la raison pour laquelle certaines informations persistent dans le temps et la façon dont cette persistance est encadrée.\u003C\u002Fp>\n\u003Ch3 id=\"section-19\">4. Contexte : ce que le modèle peut réellement utiliser à l'instant présent\u003C\u002Fh3>\n\u003Cp>Le contexte est la couche orientée vers le modèle. Anthropic décrit l'ingénierie de contexte comme le fait de déterminer quelle configuration de contexte est la plus susceptible de produire le comportement souhaité, le contexte étant les jetons mis à la disposition du modèle pendant la génération. Les recommandations d'OpenAI concernant la mémoire de session traitent de manière similaire l'élagage et la compression comme des techniques de gestion de contexte pour les interactions d'agents de longue durée.\u003C\u002Fp>\n\u003Cp>C'est pourquoi un système peut disposer d'une excellente mémoire et pourtant échouer. La mémoire pertinente peut exister sans être récupérée. Elle peut être récupérée mais insérée dans le contexte aux côtés d'un texte contradictoire plus influent. Elle peut être compressée au point où le détail décisif disparaît. Ou le modèle peut recevoir une telle quantité d'éléments que les preuves utiles se trouvent diluées dans le bruit.\u003C\u002Fp>\n\u003Ch2 id=\"section-22\">Comment interagissent les couches\u003C\u002Fh2>\n\u003Csection class=\"editorjs-process my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Un flux de production possible\u003C\u002Fh3>\u003Cdiv class=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4\">\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">1\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">1. Lire l'état faisant autorité\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Charger les faits actuels relatifs à la tâche, à l'utilisateur, au système ou à l'environnement à partir des systèmes qui en sont propriétaires.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">2\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">2. Identifier les besoins de mémoire\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Déterminer si des décisions antérieures, des préférences, des enseignements ou des contraintes à long terme sont pertinents.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">3\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">3. Récupérer les preuves\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Rechercher dans la mémoire et les connaissances externes via une récupération sémantique, lexicale, par graphe, structurée ou hybride.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">4\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">4. Construire le contexte\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Rassembler les instructions, l'état actuel, les preuves sélectionnées et l'historique compacté dans la limite du contexte utilisable par le modèle.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">5\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">5. Générer ou agir\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Le modèle raisonne sur le contexte assemblé et produit une réponse, un plan ou un appel d'outil.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">6\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">6. Valider et consigner\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Valider les sorties lourdes de conséquences, mettre à jour l'état faisant autorité lorsque cela est permis, et ne faire persister que les souvenirs conformes à la politique d'écriture.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-24\">Pourquoi le RAG n'est pas de la mémoire\u003C\u002Fh2>\n\u003Cp>Le test le plus simple est le suivant : un système RAG peut récupérer des informations que l'agent n'a jamais vues auparavant. Cela démontre à lui seul que la récupération et la mémoire sont des abstractions distinctes.\u003C\u002Fp>\n\u003Cp>Le RAG répond à la question : « Quels éléments de preuve dois-je récupérer ? » Un système de mémoire doit en outre répondre à des questions telles que : « Cet événement doit-il devenir une connaissance durable ? », « Cette nouvelle information remplace-t-elle un souvenir antérieur ? », « Peut-on encore se fier à ce souvenir ? », « Qui a l'autorisation de le lire ? » et « Quand doit-il être oublié ? »\u003C\u002Fp>\n\u003Caside class=\"editorjs-callout editorjs-callout--warning my-6 rounded-xl border p-5 border-amber-300 bg-amber-50 dark:border-amber-900 dark:bg-amber-950\u002F20\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Un piège de conception courant\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Si chaque tour de conversation est transformé en plongement vectoriel dans une base de données et récupéré ultérieurement par similarité, le système dispose d&#39;une recherche persistante, mais pas nécessairement d&#39;une architecture de mémoire bien gouvernée. La persistance à elle seule ne définit pas la qualité de la mémoire.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-28\">Le test de séparation à quatre couches\u003C\u002Fh2>\n\u003Cp>Lorsqu'une fonctionnalité est qualifiée de « mémoire », posez-vous les quatre questions suivantes. Les réponses indiquent généralement quelle couche est réellement concernée.\u003C\u002Fp>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Question\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Si oui, vous avez principalement affaire à\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Cela représente-t-il la condition actuelle faisant autorité de la tâche ou de l'environnement ?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">État\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Cette information doit-elle survivre à l'exécution actuelle car elle reflète une expérience, une préférence ou une décision passée utile ?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Mémoire\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Le problème principal réside-t-il dans le choix des informations stockées ou externes pertinentes pour la requête actuelle ?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Récupération\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Le problème principal réside-t-il dans le choix des informations à inclure dans l'appel actuel au modèle ?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Contexte\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Cp>Un même composant peut participer à plusieurs couches. Une base de données peut stocker à la fois l'état et la mémoire. Un index vectoriel peut récupérer à la fois des connaissances externes et des souvenirs. La séparation est d'ordre sémantique, et pas nécessairement physique.\u003C\u002Fp>\n\u003Ch2 id=\"section-32\">Modes de défaillance causés par la fusion des couches\u003C\u002Fh2>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Mode de défaillance\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Ce qui s'est produit\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Résultat\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">État obsolète déguisé en mémoire\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Un ancien résumé est tenu pour vrai au lieu de relire le système faisant autorité\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">L'agent agit sur des faits qui ont été vrais par le passé\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Mémoire traitée comme un fait immuable\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Une préférence ou une décision passée est conservée sans règles de révision\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Des informations devenues caduques continuent d'influencer les réponses futures\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Résultat de récupération traité comme une vérité\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Une forte similarité est confondue avec l'autorité factuelle\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Des éléments d'apparence pertinente mais inexacts prévalent\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Surcharge de contexte\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Un trop grand nombre de passages récupérés, de mémoires, de journaux et d'instructions sont injectés\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Les preuves déterminantes se trouvent diluées ou contredites\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Écriture en mémoire non contrôlée\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Des interprétations générées par le modèle sont enregistrées automatiquement en tant que mémoire durable\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Les erreurs deviennent persistantes et s'auto-renforcent\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Absence de délimitation de la provenance\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Le système ne peut pas distinguer une déclaration de l'utilisateur, un fait source, une inférence du modèle et un résumé généré\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Les récupérations ultérieures perdent le statut probatoire de l'information\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-34\">Que doit-on mémoriser, récupérer, recalculer ou relire ?\u003C\u002Fh2>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Type d'information\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Traitement préférentiel\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Raison\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Autorisation actuelle, statut de commande, inventaire, état d'un flux de travail\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Relire l'état faisant autorité\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La fraîcheur prime sur le rappel mnésique\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Préférence stable explicitement fournie par l'utilisateur\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Mémoire, avec sémantique de modification et de suppression\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Utile à travers les sessions et détenue par l'utilisateur\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Décision prise au cours d'un projet de longue durée\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Mémoire avec horodatage, provenance et règles de caducité\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">L'historique compte, mais les décisions peuvent changer\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Spécification de produit ou document de politique publique\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Récupérer depuis la source\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Les connaissances externes doivent rester liées à leurs sources probantes\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Métrique dérivée pouvant être recalculée à faible coût\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Recalculer\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Éviter de faire persister des valeurs dérivées obsolètes\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Sortie brute volumineuse d'un outil\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Stocker en externe ; récupérer ou résumer au besoin\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Ne pas consommer de contexte de manière permanente\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Hypothèse ou interprétation incertaine du modèle\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Ne pas promouvoir automatiquement en mémoire durable\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Une inférence n'équivaut pas à un fait\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-36\">Un système de mémoire a besoin d'une politique d'écriture, pas seulement d'une politique de récupération\u003C\u002Fh2>\n\u003Cp>Les discussions sur l'architecture RAG se concentrent souvent sur la qualité de la récupération : découpage (chunking), plongements (embeddings), réordonnancement (reranking), recherche hybride et ancrage (grounding). La mémoire à long terme introduit un autre aspect du problème : qu'est-ce qui est autorisé à entrer dans le stockage persistant en premier lieu ?\u003C\u002Fp>\n\u003Cp>Pour une mémoire d'agent durable, une politique d'écriture pratique doit classifier la mémoire candidate, préserver la provenance, détecter les conflits avec les entrées existantes, distinguer l'observation de l'inférence, définir la sensibilité et la portée d'accès, et décider si l'information doit expirer, être révisée ou nécessiter une confirmation de l'utilisateur.\u003C\u002Fp>\n\u003Caside class=\"editorjs-callout editorjs-callout--tip my-6 rounded-xl border p-5 border-violet-300 bg-violet-50 dark:border-violet-900 dark:bg-violet-950\u002F20\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Principe de conception\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Plus une mémoire erronée devient coûteuse au fil du temps, plus la politique d&#39;écriture doit être stricte. Une mauvaise récupération affecte une seule réponse. Une mauvaise mémoire durable peut affecter chaque réponse future qui la récupère.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-40\">La provenance est le pont entre la mémoire et les preuves fiables\u003C\u002Fh2>\n\u003Cp>Une entrée de mémoire devrait idéalement conserver suffisamment de provenance pour répondre à ces questions : d'où cela vient-il, quand cela a-t-il été observé, qui ou quoi l'a affirmé, cela a-t-il été fourni par l'utilisateur ou déduit par le modèle, quelle source l'a étayé, et quelque chose l'a-t-il remplacé ?\u003C\u002Fp>\n\u003Cp>Sans provenance, une mémoire compressée peut devenir plus autoritaire que la preuve qui l'a créée. Cela est particulièrement risqué pour les agents à longue durée de vie où les résumés et les abstractions sont réutilisés à plusieurs reprises. Le système peut préserver la conclusion tout en perdant les conditions dans lesquelles cette conclusion était valide.\u003C\u002Fp>\n\u003Ch2 id=\"section-43\">Plus de mémoire ne signifie pas plus de contexte\u003C\u002Fh2>\n\u003Cp>Un agent à longue durée de vie peut accumuler des gigaoctets d'état, d'historique, de documents et d'informations apprises. Le modèle n'a pas besoin — et ne devrait généralement pas recevoir — de la totalité de ces éléments à chaque étape. Le but de la récupération, du résumé, du compactage et de la mémoire structurée est de convertir un vaste espace d'informations persistantes en un contexte de travail restreint et pertinent.\u003C\u002Fp>\n\u003Cp>C'est aussi pourquoi des fenêtres de contexte plus larges n'éliminent pas l'architecture de mémoire. La capacité réduit une partie de la pression, mais elle ne résout pas la fraîcheur, l'autorité, les preuves contradictoires, le périmètre de confidentialité, la qualité d'écriture, la révision ou la décision de ce qui mérite de l'attention.\u003C\u002Fp>\n\u003Ch2 id=\"section-46\">Liste de contrôle pour la conception en production\u003C\u002Fh2>\n\u003Cul>\u003Cli>Définir quels systèmes détiennent l'état d'exécution faisant autorité.\u003C\u002Fli>\u003Cli>Définir quelles informations sont éligibles pour devenir une mémoire durable.\u003C\u002Fli>\u003Cli>Garder distincts les faits fournis par l'utilisateur, les preuves externes et les inférences du modèle.\u003C\u002Fli>\u003Cli>Associer des horodatages, la provenance, la portée et la sémantique de révision aux mémoires importantes.\u003C\u002Fli>\u003Cli>Considérer la pertinence de la récupération comme différente de l'autorité factuelle.\u003C\u002Fli>\u003Cli>Construire le contexte de manière intentionnelle au lieu d'injecter tous les éléments récupérés.\u003C\u002Fli>\u003Cli>Relire les faits volatils au lieu de faire confiance aux anciennes mémoires.\u003C\u002Fli>\u003Cli>Recalculer les valeurs dérivées peu coûteuses lorsque l'obsolescence serait pénalisante.\u003C\u002Fli>\u003Cli>Tester les écritures en mémoire aussi soigneusement que les lectures.\u003C\u002Fli>\u003Cli>Mesurer les échecs séparément : erreur d'état, erreur de mémoire, erreur de récupération, erreur de construction de contexte, erreur de raisonnement et erreur d'action.\u003C\u002Fli>\u003C\u002Ful>\n\u003Ch2 id=\"section-48\">Qu'est-ce qui changerait cette réponse ?\u003C\u002Fh2>\n\u003Cp>La frontière entre ces couches peut évoluer à mesure que les plateformes d'agents se développent. Un fournisseur peut proposer un service de mémoire géré qui effectue en interne le stockage, la révision, la récupération, le résumé et la construction de contexte. Cela peut simplifier les composants d'implémentation, mais cela n'élimine pas les questions architecturales. Vous devez toujours savoir si un élément renvoyé est un état actuel, une mémoire persistante, une preuve récupérée ou simplement du texte placé dans le contexte.\u003C\u002Fp>\n\u003Cp>La recommandation changerait également pour les systèmes sans continuité inter-sessions, les systèmes où chaque tâche démarre à partir d'un corpus immuable propre, ou les flux de travail étroitement délimités où tout l'état pertinent tient en toute sécurité dans un seul appel. Dans ces cas, une couche de mémoire à long terme dédiée peut ajouter de la complexité sans apporter suffisamment de valeur.\u003C\u002Fp>\n\u003Ch2 id=\"section-51\">Limites\u003C\u002Fh2>\n\u003Cp>La terminologie des systèmes d'agents évolue encore rapidement. Certains frameworks qualifient l'historique de conversation de « mémoire », d'autres utilisent « session », « point de contrôle », « magasin », « contexte » ou « état ». Les systèmes de recherche définissent également la mémoire à différents niveaux, de la recherche persistante à l'adaptation interne apprise. Le modèle présenté dans cet article sépare délibérément les responsabilités opérationnelles plutôt que de tenter d'imposer un vocabulaire universel.\u003C\u002Fp>\n\u003Ch2 id=\"section-53\">Conclusion\u003C\u002Fh2>\n\u003Cp>La question pertinente n'est pas « Cet agent a-t-il de la mémoire ? » Elle est plutôt : Qu'est-ce que l'état, qu'est-ce qui persiste de l'expérience, comment les informations pertinentes sont-elles récupérées, et qu'est-ce qui parvient finalement au modèle sous forme de contexte ?\u003C\u002Fp>\n\u003Cp>Une fois ces responsabilités séparées, les choix de conception deviennent plus faciles à tester. Les faits obsolètes peuvent être attribués à la propriété de l'état. Un mauvais rappel peut être imputé au cycle de vie de la mémoire ou à la récupération. Les invites surchargées peuvent être reliées à la construction du contexte. Les hallucinations persistantes peuvent être tracées jusqu'à la politique d'écriture et la provenance. Le RAG demeure un outil important, mais il ne constitue qu'un élément parmi d'autres d'une architecture d'agent fiable et durable.\u003C\u002Fp>\n\u003Ch2 id=\"section-56\">FAQ\u003C\u002Fh2>\n\u003Csection class=\"editorjs-faq my-6 rounded-xl border border-gray-200 p-5 dark:border-gray-700\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Mémoire d&#39;agent IA, RAG, état et contexte\u003C\u002Fh3>\u003Cdiv id=\"faq1\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Le RAG est-il identique à la mémoire d&#39;un agent IA ?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Non. Le RAG est avant tout un modèle de récupération qui sélectionne des informations en vue d&#39;un appel au modèle. La mémoire concerne les informations issues d&#39;interactions ou d&#39;expériences antérieures qui persistent dans le temps, ainsi que la manière dont ces informations sont gouvernées.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq2\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Une base de données vectorielle constitue-t-elle la mémoire d&#39;un agent ?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Elle peut en faire partie, mais une base de données vectorielle n&#39;est en soi qu&#39;un composant de stockage et de récupération. Une architecture de mémoire en production nécessite également des arbitrages concernant les éléments à stocker, la provenance, les révisions, les conflits, les accès, l&#39;expiration et l&#39;oubli.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq3\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Une fenêtre de contexte plus large supprime-t-elle le besoin de mémoire ?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Pas nécessairement. Un contexte plus vaste accroît la capacité, mais il ne résout pas la persistance des connaissances d&#39;une session à l&#39;autre, la fraîcheur des données, la provenance, la portée de la confidentialité, les révisions ou la décision de ce qui doit être réutilisé ultérieurement.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq4\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">L&#39;état actuel de l&#39;application doit-il être stocké sous forme de mémoire ?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">En règle générale, l&#39;application ou le système de domaine faisant autorité doit demeurer la source de vérité pour l&#39;état volatil. La mémoire peut enregistrer l&#39;historique ou la portée des changements d&#39;état, mais les actions conséquentes doivent relire les valeurs faisant autorité actuelles.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-58\">Glossaire\u003C\u002Fh2>\n\u003Csection class=\"editorjs-glossary my-6 rounded-xl border border-gray-200 dark:border-gray-700 p-5\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Termes clés\u003C\u002Fh3>\u003Cdl>\u003Cdiv id=\"state\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">État\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">La condition actuelle faisant autorité d'une tâche, d'une application, d'un utilisateur, d'un flux de travail ou d'un environnement.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"memory\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Mémoire\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Informations issues d'une expérience ou d'une interaction antérieure qui persistent parce qu'elles peuvent être utiles ultérieurement et sont soumises à des règles de cycle de vie.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"retrieval\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Récupération\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Le mécanisme utilisé pour sélectionner des informations potentiellement pertinentes à partir de la mémoire, de connaissances externes, de bases de données, de graphes ou d'autres référentiels.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"context\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Contexte\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">L'information réellement mise à disposition du modèle linguistique au cours d'une étape donnée d'inférence ou de génération.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"rag\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">RAG\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Génération augmentée par récupération : patron dans lequel des informations externes ou stockées sont récupérées et fournies à un modèle génératif afin d'améliorer la sortie actuelle.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"provenance\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Provenance\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Métadonnées décrivant l'origine de l'information, le moment où elle a été observée, l'entité qui l'a formulée et la manière dont elle a été transformée.\u003C\u002Fdd>\u003C\u002Fdiv>\u003C\u002Fdl>\u003C\u002Fsection>\n\u003Ch2 id=\"section-60\">Sources primaires et lectures complémentaires\u003C\u002Fh2>\n\u003Ca href=\"https:\u002F\u002Fdevelopers.openai.com\u002Fcookbook\u002Fexamples\u002Fagents_sdk\u002Fsession_memory\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">OpenAI — Context Engineering: Short-Term Memory Management with Sessions\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Conseils d&#39;OpenAI sur le découpage et la compression du contexte d&#39;agent à exécution prolongée.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents\u002Fsandboxes\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">OpenAI — Sandbox Agents\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Documentation présentant la mémoire persistante comme une capacité assortie d&#39;une divulgation progressive et d&#39;un comportement de lecture\u002Fécriture.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-context-engineering-for-ai-agents\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">Anthropic — Effective Context Engineering for AI Agents\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Directives d&#39;ingénierie relatives à l&#39;organisation du contexte fini des modèles pour assurer un comportement fiable des agents.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fblog\u002Fmemora-a-harmonic-memory-representation-balancing-abstraction-and-specificity\u002F\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">Microsoft Research — Memora\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Recherche sur l&#39;équilibre entre abstraction et spécificité au sein de la mémoire d&#39;agents à long terme.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fblog\u002Ffrom-raw-interaction-to-reusable-knowledge-rethinking-memory-for-ai-agents\u002F\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">Microsoft Research — PlugMem\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Recherche sur la conversion des historiques bruts d&#39;interaction d&#39;agents en connaissances structurées réutilisables.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fpublication\u002Fagentic-context-engineering-evolving-contexts-for-self-improving-language-models\u002F\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">Microsoft Research — Agentic Context Engineering (ACE)\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Recherche sur l&#39;évolution du contexte sous forme de guides opératoires structurés plutôt que de tout réécrire ou compresser continuellement.\u003C\u002Fp>\u003C\u002Fa>",{"time":212,"blocks":213,"version":752},1790369929306,[214,222,228,236,243,248,253,258,263,294,299,304,309,314,319,324,329,334,339,344,349,354,359,385,390,395,400,407,412,417,433,438,443,476,481,518,523,528,533,540,545,550,555,560,565,570,575,593,598,603,608,613,618,623,628,633,638,660,665,691,696,707,716,725,734,743],{"id":215,"data":216,"type":220,"tunes":221},"_4kVYTpqbe",{"title":217,"maxLevel":218,"minLevel":219},"Table des matières",3,2,"tableOfContents",{},{"id":223,"data":224,"type":226,"tunes":227},"intro",{"text":225},"La mémoire des agents IA, la génération augmentée de récupération (RAG), l'état d'exécution et le contexte du modèle sont souvent abordés comme s'ils étaient interchangeables. Ils ne le sont pas. Les réduire à un seul concept rend les systèmes d'agents plus difficiles à appréhender, plus complexes à déboguer et plus susceptibles de devenir obsolètes ou non fiables.","paragraph",{},{"id":229,"data":230,"type":234,"tunes":235},"direct",{"body":231,"title":232,"variant":233},"\u003Cstrong>Le RAG n'est pas la mémoire d'un agent.\u003C\u002Fstrong> Le RAG est un patron de récupération : il sélectionne des informations susceptibles d'être utiles pour l'appel actuel du modèle. La mémoire correspond aux informations persistantes dérivées d'interactions ou d'expériences antérieures et gérées au fil du temps. L'état représente ce qui est actuellement vrai concernant la tâche ou l'environnement en cours d'exécution. Le contexte correspond aux informations effectivement mises à la disposition du modèle pour l'inférence en cours. Un agent en production peut utiliser ces quatre éléments, mais ils répondent à des problématiques différentes.","Réponse directe","info","callout",{},{"id":237,"data":238,"type":234,"tunes":242},"model-note",{"body":239,"title":240,"variant":241},"La séparation en quatre couches présentée ci-dessous est un modèle architectural pratique, et non une norme industrielle formelle. Les éditeurs et les publications de recherche emploient une terminologie qui se chevauche souvent. L'objectif est ici opérationnel : clarifier les décisions de conception, la responsabilité des composants, l'analyse des défaillances et les tests.","À propos du modèle utilisé dans cet article","note",{},{"id":244,"data":245,"type":42,"tunes":247},"h-category",{"text":246,"level":219},"L'erreur de catégorie : traiter tout élément d'apparence persistante comme de la mémoire",{},{"id":249,"data":250,"type":226,"tunes":252},"p-cat-1",{"text":251},"Une base de données vectorielle peut stocker des fragments de conversation. Un objet de session peut conserver les échanges récents. Une ligne de base de données peut enregistrer le statut actuel d'un flux de travail. Un outil de résumé peut compresser des étapes antérieures. Un moteur de recherche peut récupérer d'anciens éléments de preuve. Tous ces éléments peuvent donner l'impression qu'un agent « se souvient », mais ils ne partagent pas la même sémantique.",{},{"id":254,"data":255,"type":226,"tunes":257},"p-cat-2",{"text":256},"Cette distinction est essentielle, car les règles d'exactitude requises sont différentes. L'état actuel doit être faisant autorité et à jour. La mémoire nécessite des règles de cycle de vie pour l'écriture, la révision, l'oubli et la gestion des conflits. La récupération requiert une pertinence et une qualité de sélection des preuves. Le contexte exige une gestion rigoureuse du budget de jetons ainsi qu'une protection contre les éléments non pertinents ou contradictoires.",{},{"id":259,"data":260,"type":42,"tunes":262},"h-layers",{"text":261,"level":219},"Une architecture à quatre couches : état, mémoire, récupération, contexte",{},{"id":264,"data":265,"type":292,"tunes":293},"table-layers",{"content":266,"stretched":43,"withHeadings":14},[267,272,277,282,287],[268,269,270,271],"Couche","Question fondamentale","Exemples types","Principal enjeu d'exactitude",[273,274,275,276],"État","Qu'est-ce qui est vrai actuellement ?","Statut d'une tâche, contenu d'un panier, étape d'un flux de travail, permissions actives, état actuel du jeu","Fraîcheur et autorité",[278,279,280,281],"Mémoire","Que faut-il conserver du passé ?","Préférence utilisateur, décision antérieure, contrainte apprise, défaillance résolue, fait durable sur un projet","Cycle de vie, révision, provenance, oubli",[283,284,285,286],"Récupération","Quelles informations doivent être sélectionnées maintenant ?","Recherche vectorielle, recherche par mots-clés, interrogation de graphe, reclassement (reranking), recherche documentaire","Pertinence et sélection des preuves",[288,289,290,291],"Contexte","Que voit le modèle pour cet appel ?","Instructions système, requête en cours, passages récupérés, résultats d'outils, résumés","Utilité par jeton, ordre, cohérence, bruit","table",{},{"id":295,"data":296,"type":42,"tunes":298},"h-state",{"text":297,"level":218},"1. État : ce qui est vrai actuellement",{},{"id":300,"data":301,"type":226,"tunes":303},"p-state-1",{"text":302},"L'état appartient au système en cours d'exécution, et non aux souvenirs du modèle. Si une commande est annulée, un déploiement mis en pause, un droit d'accès révoqué ou une tâche passant de « en cours » à « approuvée », la valeur faisant autorité doit provenir du système qui détient cette information.",{},{"id":305,"data":306,"type":226,"tunes":308},"p-state-2",{"text":307},"Une conception risquée consiste à laisser un résumé de conversation obsolète se substituer à l'état actuel. L'agent peut parfaitement se souvenir que la commande était active hier tout en étant dans l'erreur aujourd'hui. L'état nécessite donc une responsabilité clairement définie, un contrôle de version ou des horodatages le cas échéant, ainsi qu'un moyen de relire la source de vérité avant d'exécuter des actions critiques.",{},{"id":310,"data":311,"type":42,"tunes":313},"h-memory",{"text":312,"level":218},"2. Mémoire : ce qui doit être conservé du passé",{},{"id":315,"data":316,"type":226,"tunes":318},"p-memory-1",{"text":317},"La mémoire ne se résume pas à « tout ce que nous pouvons stocker ». Une couche de mémoire utile détermine ce qui mérite d'être conservé, sous quelle forme, pour quelle durée, avec quelle provenance et sous quelles conditions ces informations doivent être révisées ou supprimées.",{},{"id":320,"data":321,"type":226,"tunes":323},"p-memory-2",{"text":322},"La recherche récente sur la mémoire des agents considère de plus en plus que le stockage brut des historiques de transcription est insuffisant. Les travaux de Microsoft sur PlugMem se concentrent sur la transformation des historiques d'interaction bruts en connaissances structurées et réutilisables. Memora dissocie le contenu stocké riche des abstractions plus légères et des indices de récupération, évitant ainsi aux systèmes à long terme d'avoir à trancher entre le niveau de détail et un accès évolutif.",{},{"id":325,"data":326,"type":42,"tunes":328},"h-retrieval",{"text":327,"level":218},"3. Récupération : ce qui doit être sélectionné maintenant",{},{"id":330,"data":331,"type":226,"tunes":333},"p-ret-1",{"text":332},"La récupération est un mécanisme de sélection. Elle peut interroger des documents externes, des bases de connaissances internes, des mémoires stockées, des journaux, des graphes, des bases de données ou des sources composites. C'est généralement là qu'intervient le RAG : récupérer des éléments de preuve, intégrer les éléments sélectionnés dans l'entrée de travail du modèle, puis générer une réponse.",{},{"id":335,"data":336,"type":226,"tunes":338},"p-ret-2",{"text":337},"Ce mécanisme ne devient pas pour autant de la mémoire au seul motif que le corpus interrogé contient des interactions passées. Le même système de récupération peut chercher des documents de politique que l'agent n'a jamais expérimentés, des données produit issues d'un autre système ou des décisions antérieures d'un utilisateur. La récupération décrit la manière dont les informations sont sélectionnées ; la mémoire décrit la raison pour laquelle certaines informations persistent dans le temps et la façon dont cette persistance est encadrée.",{},{"id":340,"data":341,"type":42,"tunes":343},"h-context",{"text":342,"level":218},"4. Contexte : ce que le modèle peut réellement utiliser à l'instant présent",{},{"id":345,"data":346,"type":226,"tunes":348},"p-ctx-1",{"text":347},"Le contexte est la couche orientée vers le modèle. Anthropic décrit l'ingénierie de contexte comme le fait de déterminer quelle configuration de contexte est la plus susceptible de produire le comportement souhaité, le contexte étant les jetons mis à la disposition du modèle pendant la génération. Les recommandations d'OpenAI concernant la mémoire de session traitent de manière similaire l'élagage et la compression comme des techniques de gestion de contexte pour les interactions d'agents de longue durée.",{},{"id":350,"data":351,"type":226,"tunes":353},"p-ctx-2",{"text":352},"C'est pourquoi un système peut disposer d'une excellente mémoire et pourtant échouer. La mémoire pertinente peut exister sans être récupérée. Elle peut être récupérée mais insérée dans le contexte aux côtés d'un texte contradictoire plus influent. Elle peut être compressée au point où le détail décisif disparaît. Ou le modèle peut recevoir une telle quantité d'éléments que les preuves utiles se trouvent diluées dans le bruit.",{},{"id":355,"data":356,"type":42,"tunes":358},"h-flow",{"text":357,"level":219},"Comment interagissent les couches",{},{"id":360,"data":361,"type":383,"tunes":384},"flow",{"steps":362,"title":381,"orientation":382},[363,366,369,372,375,378],{"label":364,"description":365},"1. Lire l'état faisant autorité","Charger les faits actuels relatifs à la tâche, à l'utilisateur, au système ou à l'environnement à partir des systèmes qui en sont propriétaires.",{"label":367,"description":368},"2. Identifier les besoins de mémoire","Déterminer si des décisions antérieures, des préférences, des enseignements ou des contraintes à long terme sont pertinents.",{"label":370,"description":371},"3. Récupérer les preuves","Rechercher dans la mémoire et les connaissances externes via une récupération sémantique, lexicale, par graphe, structurée ou hybride.",{"label":373,"description":374},"4. Construire le contexte","Rassembler les instructions, l'état actuel, les preuves sélectionnées et l'historique compacté dans la limite du contexte utilisable par le modèle.",{"label":376,"description":377},"5. Générer ou agir","Le modèle raisonne sur le contexte assemblé et produit une réponse, un plan ou un appel d'outil.",{"label":379,"description":380},"6. Valider et consigner","Valider les sorties lourdes de conséquences, mettre à jour l'état faisant autorité lorsque cela est permis, et ne faire persister que les souvenirs conformes à la politique d'écriture.","Un flux de production possible","auto","processFlow",{},{"id":386,"data":387,"type":42,"tunes":389},"h-rag",{"text":388,"level":219},"Pourquoi le RAG n'est pas de la mémoire",{},{"id":391,"data":392,"type":226,"tunes":394},"p-rag-1",{"text":393},"Le test le plus simple est le suivant : un système RAG peut récupérer des informations que l'agent n'a jamais vues auparavant. Cela démontre à lui seul que la récupération et la mémoire sont des abstractions distinctes.",{},{"id":396,"data":397,"type":226,"tunes":399},"p-rag-2",{"text":398},"Le RAG répond à la question : « Quels éléments de preuve dois-je récupérer ? » Un système de mémoire doit en outre répondre à des questions telles que : « Cet événement doit-il devenir une connaissance durable ? », « Cette nouvelle information remplace-t-elle un souvenir antérieur ? », « Peut-on encore se fier à ce souvenir ? », « Qui a l'autorisation de le lire ? » et « Quand doit-il être oublié ? »",{},{"id":401,"data":402,"type":234,"tunes":406},"rag-trap",{"body":403,"title":404,"variant":405},"Si chaque tour de conversation est transformé en plongement vectoriel dans une base de données et récupéré ultérieurement par similarité, le système dispose d'une recherche persistante, mais pas nécessairement d'une architecture de mémoire bien gouvernée. La persistance à elle seule ne définit pas la qualité de la mémoire.","Un piège de conception courant","warning",{},{"id":408,"data":409,"type":42,"tunes":411},"h-test",{"text":410,"level":219},"Le test de séparation à quatre couches",{},{"id":413,"data":414,"type":226,"tunes":416},"p-test",{"text":415},"Lorsqu'une fonctionnalité est qualifiée de « mémoire », posez-vous les quatre questions suivantes. Les réponses indiquent généralement quelle couche est réellement concernée.",{},{"id":418,"data":419,"type":292,"tunes":432},"table-test",{"content":420,"stretched":43,"withHeadings":14},[421,424,426,428,430],[422,423],"Question","Si oui, vous avez principalement affaire à",[425,273],"Cela représente-t-il la condition actuelle faisant autorité de la tâche ou de l'environnement ?",[427,278],"Cette information doit-elle survivre à l'exécution actuelle car elle reflète une expérience, une préférence ou une décision passée utile ?",[429,283],"Le problème principal réside-t-il dans le choix des informations stockées ou externes pertinentes pour la requête actuelle ?",[431,288],"Le problème principal réside-t-il dans le choix des informations à inclure dans l'appel actuel au modèle ?",{},{"id":434,"data":435,"type":226,"tunes":437},"p-test-note",{"text":436},"Un même composant peut participer à plusieurs couches. Une base de données peut stocker à la fois l'état et la mémoire. Un index vectoriel peut récupérer à la fois des connaissances externes et des souvenirs. La séparation est d'ordre sémantique, et pas nécessairement physique.",{},{"id":439,"data":440,"type":42,"tunes":442},"h-fail",{"text":441,"level":219},"Modes de défaillance causés par la fusion des couches",{},{"id":444,"data":445,"type":292,"tunes":475},"table-fail",{"content":446,"stretched":43,"withHeadings":14},[447,451,455,459,463,467,471],[448,449,450],"Mode de défaillance","Ce qui s'est produit","Résultat",[452,453,454],"État obsolète déguisé en mémoire","Un ancien résumé est tenu pour vrai au lieu de relire le système faisant autorité","L'agent agit sur des faits qui ont été vrais par le passé",[456,457,458],"Mémoire traitée comme un fait immuable","Une préférence ou une décision passée est conservée sans règles de révision","Des informations devenues caduques continuent d'influencer les réponses futures",[460,461,462],"Résultat de récupération traité comme une vérité","Une forte similarité est confondue avec l'autorité factuelle","Des éléments d'apparence pertinente mais inexacts prévalent",[464,465,466],"Surcharge de contexte","Un trop grand nombre de passages récupérés, de mémoires, de journaux et d'instructions sont injectés","Les preuves déterminantes se trouvent diluées ou contredites",[468,469,470],"Écriture en mémoire non contrôlée","Des interprétations générées par le modèle sont enregistrées automatiquement en tant que mémoire durable","Les erreurs deviennent persistantes et s'auto-renforcent",[472,473,474],"Absence de délimitation de la provenance","Le système ne peut pas distinguer une déclaration de l'utilisateur, un fait source, une inférence du modèle et un résumé généré","Les récupérations ultérieures perdent le statut probatoire de l'information",{},{"id":477,"data":478,"type":42,"tunes":480},"h-decision",{"text":479,"level":219},"Que doit-on mémoriser, récupérer, recalculer ou relire ?",{},{"id":482,"data":483,"type":292,"tunes":517},"table-decision",{"content":484,"stretched":43,"withHeadings":14},[485,489,493,497,501,505,509,513],[486,487,488],"Type d'information","Traitement préférentiel","Raison",[490,491,492],"Autorisation actuelle, statut de commande, inventaire, état d'un flux de travail","Relire l'état faisant autorité","La fraîcheur prime sur le rappel mnésique",[494,495,496],"Préférence stable explicitement fournie par l'utilisateur","Mémoire, avec sémantique de modification et de suppression","Utile à travers les sessions et détenue par l'utilisateur",[498,499,500],"Décision prise au cours d'un projet de longue durée","Mémoire avec horodatage, provenance et règles de caducité","L'historique compte, mais les décisions peuvent changer",[502,503,504],"Spécification de produit ou document de politique publique","Récupérer depuis la source","Les connaissances externes doivent rester liées à leurs sources probantes",[506,507,508],"Métrique dérivée pouvant être recalculée à faible coût","Recalculer","Éviter de faire persister des valeurs dérivées obsolètes",[510,511,512],"Sortie brute volumineuse d'un outil","Stocker en externe ; récupérer ou résumer au besoin","Ne pas consommer de contexte de manière permanente",[514,515,516],"Hypothèse ou interprétation incertaine du modèle","Ne pas promouvoir automatiquement en mémoire durable","Une inférence n'équivaut pas à un fait",{},{"id":519,"data":520,"type":42,"tunes":522},"h-write",{"text":521,"level":219},"Un système de mémoire a besoin d'une politique d'écriture, pas seulement d'une politique de récupération",{},{"id":524,"data":525,"type":226,"tunes":527},"p-write-1",{"text":526},"Les discussions sur l'architecture RAG se concentrent souvent sur la qualité de la récupération : découpage (chunking), plongements (embeddings), réordonnancement (reranking), recherche hybride et ancrage (grounding). La mémoire à long terme introduit un autre aspect du problème : qu'est-ce qui est autorisé à entrer dans le stockage persistant en premier lieu ?",{},{"id":529,"data":530,"type":226,"tunes":532},"p-write-2",{"text":531},"Pour une mémoire d'agent durable, une politique d'écriture pratique doit classifier la mémoire candidate, préserver la provenance, détecter les conflits avec les entrées existantes, distinguer l'observation de l'inférence, définir la sensibilité et la portée d'accès, et décider si l'information doit expirer, être révisée ou nécessiter une confirmation de l'utilisateur.",{},{"id":534,"data":535,"type":234,"tunes":539},"write-tip",{"body":536,"title":537,"variant":538},"Plus une mémoire erronée devient coûteuse au fil du temps, plus la politique d'écriture doit être stricte. Une mauvaise récupération affecte une seule réponse. Une mauvaise mémoire durable peut affecter chaque réponse future qui la récupère.","Principe de conception","tip",{},{"id":541,"data":542,"type":42,"tunes":544},"h-prov",{"text":543,"level":219},"La provenance est le pont entre la mémoire et les preuves fiables",{},{"id":546,"data":547,"type":226,"tunes":549},"p-prov-1",{"text":548},"Une entrée de mémoire devrait idéalement conserver suffisamment de provenance pour répondre à ces questions : d'où cela vient-il, quand cela a-t-il été observé, qui ou quoi l'a affirmé, cela a-t-il été fourni par l'utilisateur ou déduit par le modèle, quelle source l'a étayé, et quelque chose l'a-t-il remplacé ?",{},{"id":551,"data":552,"type":226,"tunes":554},"p-prov-2",{"text":553},"Sans provenance, une mémoire compressée peut devenir plus autoritaire que la preuve qui l'a créée. Cela est particulièrement risqué pour les agents à longue durée de vie où les résumés et les abstractions sont réutilisés à plusieurs reprises. Le système peut préserver la conclusion tout en perdant les conditions dans lesquelles cette conclusion était valide.",{},{"id":556,"data":557,"type":42,"tunes":559},"h-budget",{"text":558,"level":219},"Plus de mémoire ne signifie pas plus de contexte",{},{"id":561,"data":562,"type":226,"tunes":564},"p-budget-1",{"text":563},"Un agent à longue durée de vie peut accumuler des gigaoctets d'état, d'historique, de documents et d'informations apprises. Le modèle n'a pas besoin — et ne devrait généralement pas recevoir — de la totalité de ces éléments à chaque étape. Le but de la récupération, du résumé, du compactage et de la mémoire structurée est de convertir un vaste espace d'informations persistantes en un contexte de travail restreint et pertinent.",{},{"id":566,"data":567,"type":226,"tunes":569},"p-budget-2",{"text":568},"C'est aussi pourquoi des fenêtres de contexte plus larges n'éliminent pas l'architecture de mémoire. La capacité réduit une partie de la pression, mais elle ne résout pas la fraîcheur, l'autorité, les preuves contradictoires, le périmètre de confidentialité, la qualité d'écriture, la révision ou la décision de ce qui mérite de l'attention.",{},{"id":571,"data":572,"type":42,"tunes":574},"h-check",{"text":573,"level":219},"Liste de contrôle pour la conception en production",{},{"id":576,"data":577,"type":591,"tunes":592},"checklist",{"meta":578,"items":579,"style":590},{},[580,581,582,583,584,585,586,587,588,589],"Définir quels systèmes détiennent l'état d'exécution faisant autorité.","Définir quelles informations sont éligibles pour devenir une mémoire durable.","Garder distincts les faits fournis par l'utilisateur, les preuves externes et les inférences du modèle.","Associer des horodatages, la provenance, la portée et la sémantique de révision aux mémoires importantes.","Considérer la pertinence de la récupération comme différente de l'autorité factuelle.","Construire le contexte de manière intentionnelle au lieu d'injecter tous les éléments récupérés.","Relire les faits volatils au lieu de faire confiance aux anciennes mémoires.","Recalculer les valeurs dérivées peu coûteuses lorsque l'obsolescence serait pénalisante.","Tester les écritures en mémoire aussi soigneusement que les lectures.","Mesurer les échecs séparément : erreur d'état, erreur de mémoire, erreur de récupération, erreur de construction de contexte, erreur de raisonnement et erreur d'action.","unordered","list",{},{"id":594,"data":595,"type":42,"tunes":597},"h-change",{"text":596,"level":219},"Qu'est-ce qui changerait cette réponse ?",{},{"id":599,"data":600,"type":226,"tunes":602},"p-change-1",{"text":601},"La frontière entre ces couches peut évoluer à mesure que les plateformes d'agents se développent. Un fournisseur peut proposer un service de mémoire géré qui effectue en interne le stockage, la révision, la récupération, le résumé et la construction de contexte. Cela peut simplifier les composants d'implémentation, mais cela n'élimine pas les questions architecturales. Vous devez toujours savoir si un élément renvoyé est un état actuel, une mémoire persistante, une preuve récupérée ou simplement du texte placé dans le contexte.",{},{"id":604,"data":605,"type":226,"tunes":607},"p-change-2",{"text":606},"La recommandation changerait également pour les systèmes sans continuité inter-sessions, les systèmes où chaque tâche démarre à partir d'un corpus immuable propre, ou les flux de travail étroitement délimités où tout l'état pertinent tient en toute sécurité dans un seul appel. Dans ces cas, une couche de mémoire à long terme dédiée peut ajouter de la complexité sans apporter suffisamment de valeur.",{},{"id":609,"data":610,"type":42,"tunes":612},"h-limit",{"text":611,"level":219},"Limites",{},{"id":614,"data":615,"type":226,"tunes":617},"p-limit",{"text":616},"La terminologie des systèmes d'agents évolue encore rapidement. Certains frameworks qualifient l'historique de conversation de « mémoire », d'autres utilisent « session », « point de contrôle », « magasin », « contexte » ou « état ». Les systèmes de recherche définissent également la mémoire à différents niveaux, de la recherche persistante à l'adaptation interne apprise. Le modèle présenté dans cet article sépare délibérément les responsabilités opérationnelles plutôt que de tenter d'imposer un vocabulaire universel.",{},{"id":619,"data":620,"type":42,"tunes":622},"h-conclusion",{"text":621,"level":219},"Conclusion",{},{"id":624,"data":625,"type":226,"tunes":627},"p-conclusion-1",{"text":626},"La question pertinente n'est pas « Cet agent a-t-il de la mémoire ? » Elle est plutôt : Qu'est-ce que l'état, qu'est-ce qui persiste de l'expérience, comment les informations pertinentes sont-elles récupérées, et qu'est-ce qui parvient finalement au modèle sous forme de contexte ?",{},{"id":629,"data":630,"type":226,"tunes":632},"p-conclusion-2",{"text":631},"Une fois ces responsabilités séparées, les choix de conception deviennent plus faciles à tester. Les faits obsolètes peuvent être attribués à la propriété de l'état. Un mauvais rappel peut être imputé au cycle de vie de la mémoire ou à la récupération. Les invites surchargées peuvent être reliées à la construction du contexte. Les hallucinations persistantes peuvent être tracées jusqu'à la politique d'écriture et la provenance. Le RAG demeure un outil important, mais il ne constitue qu'un élément parmi d'autres d'une architecture d'agent fiable et durable.",{},{"id":634,"data":635,"type":42,"tunes":637},"h-faq",{"text":636,"level":219},"FAQ",{},{"id":639,"data":640,"type":639,"tunes":659},"faq",{"items":641,"title":658},[642,646,650,654],{"id":643,"answer":644,"question":645},"faq1","Non. Le RAG est avant tout un modèle de récupération qui sélectionne des informations en vue d'un appel au modèle. La mémoire concerne les informations issues d'interactions ou d'expériences antérieures qui persistent dans le temps, ainsi que la manière dont ces informations sont gouvernées.","Le RAG est-il identique à la mémoire d'un agent IA ?",{"id":647,"answer":648,"question":649},"faq2","Elle peut en faire partie, mais une base de données vectorielle n'est en soi qu'un composant de stockage et de récupération. Une architecture de mémoire en production nécessite également des arbitrages concernant les éléments à stocker, la provenance, les révisions, les conflits, les accès, l'expiration et l'oubli.","Une base de données vectorielle constitue-t-elle la mémoire d'un agent ?",{"id":651,"answer":652,"question":653},"faq3","Pas nécessairement. Un contexte plus vaste accroît la capacité, mais il ne résout pas la persistance des connaissances d'une session à l'autre, la fraîcheur des données, la provenance, la portée de la confidentialité, les révisions ou la décision de ce qui doit être réutilisé ultérieurement.","Une fenêtre de contexte plus large supprime-t-elle le besoin de mémoire ?",{"id":655,"answer":656,"question":657},"faq4","En règle générale, l'application ou le système de domaine faisant autorité doit demeurer la source de vérité pour l'état volatil. La mémoire peut enregistrer l'historique ou la portée des changements d'état, mais les actions conséquentes doivent relire les valeurs faisant autorité actuelles.","L'état actuel de l'application doit-il être stocké sous forme de mémoire ?","Mémoire d'agent IA, RAG, état et contexte",{},{"id":661,"data":662,"type":42,"tunes":664},"h-glossary",{"text":663,"level":219},"Glossaire",{},{"id":666,"data":667,"type":666,"tunes":690},"glossary",{"title":668,"entries":669},"Termes clés",[670,673,676,679,682,686],{"term":273,"anchor":671,"definition":672},"state","La condition actuelle faisant autorité d'une tâche, d'une application, d'un utilisateur, d'un flux de travail ou d'un environnement.",{"term":278,"anchor":674,"definition":675},"memory","Informations issues d'une expérience ou d'une interaction antérieure qui persistent parce qu'elles peuvent être utiles ultérieurement et sont soumises à des règles de cycle de vie.",{"term":283,"anchor":677,"definition":678},"retrieval","Le mécanisme utilisé pour sélectionner des informations potentiellement pertinentes à partir de la mémoire, de connaissances externes, de bases de données, de graphes ou d'autres référentiels.",{"term":288,"anchor":680,"definition":681},"context","L'information réellement mise à disposition du modèle linguistique au cours d'une étape donnée d'inférence ou de génération.",{"term":683,"anchor":684,"definition":685},"RAG","rag","Génération augmentée par récupération : patron dans lequel des informations externes ou stockées sont récupérées et fournies à un modèle génératif afin d'améliorer la sortie actuelle.",{"term":687,"anchor":688,"definition":689},"Provenance","provenance","Métadonnées décrivant l'origine de l'information, le moment où elle a été observée, l'entité qui l'a formulée et la manière dont elle a été transformée.",{},{"id":692,"data":693,"type":42,"tunes":695},"h-sources",{"text":694,"level":219},"Sources primaires et lectures complémentaires",{},{"id":697,"data":698,"type":705,"tunes":706},"openai-session",{"link":699,"meta":700},"https:\u002F\u002Fdevelopers.openai.com\u002Fcookbook\u002Fexamples\u002Fagents_sdk\u002Fsession_memory",{"image":701,"title":703,"description":704},{"url":702},"","OpenAI — Context Engineering: Short-Term Memory Management with Sessions","Conseils d'OpenAI sur le découpage et la compression du contexte d'agent à exécution prolongée.","linkTool",{},{"id":708,"data":709,"type":705,"tunes":715},"openai-sandbox",{"link":710,"meta":711},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents\u002Fsandboxes",{"image":712,"title":713,"description":714},{"url":702},"OpenAI — Sandbox Agents","Documentation présentant la mémoire persistante comme une capacité assortie d'une divulgation progressive et d'un comportement de lecture\u002Fécriture.",{},{"id":717,"data":718,"type":705,"tunes":724},"anthropic-context",{"link":719,"meta":720},"https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-context-engineering-for-ai-agents",{"image":721,"title":722,"description":723},{"url":702},"Anthropic — Effective Context Engineering for AI Agents","Directives d'ingénierie relatives à l'organisation du contexte fini des modèles pour assurer un comportement fiable des agents.",{},{"id":726,"data":727,"type":705,"tunes":733},"ms-memora",{"link":728,"meta":729},"https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fblog\u002Fmemora-a-harmonic-memory-representation-balancing-abstraction-and-specificity\u002F",{"image":730,"title":731,"description":732},{"url":702},"Microsoft Research — Memora","Recherche sur l'équilibre entre abstraction et spécificité au sein de la mémoire d'agents à long terme.",{},{"id":735,"data":736,"type":705,"tunes":742},"ms-plugmem",{"link":737,"meta":738},"https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fblog\u002Ffrom-raw-interaction-to-reusable-knowledge-rethinking-memory-for-ai-agents\u002F",{"image":739,"title":740,"description":741},{"url":702},"Microsoft Research — PlugMem","Recherche sur la conversion des historiques bruts d'interaction d'agents en connaissances structurées réutilisables.",{},{"id":744,"data":745,"type":705,"tunes":751},"ms-ace",{"link":746,"meta":747},"https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fpublication\u002Fagentic-context-engineering-evolving-contexts-for-self-improving-language-models\u002F",{"image":748,"title":749,"description":750},{"url":702},"Microsoft Research — Agentic Context Engineering (ACE)","Recherche sur l'évolution du contexte sous forme de guides opératoires structurés plutôt que de tout réécrire ou compresser continuellement.",{},"2.31","La mémoire des agents, le RAG, l'état et le contexte sont souvent utilisés comme s'ils étaient interchangeables. Ils ne le sont pas. Ce modèle d'architecture pratique sépare les quatre couches, montre où chacune se situe et explique ce qui dysfonctionne lorsque les systèmes les fusionnent en une seule.","\u002Fuploads\u002F2026\u002F09\u002Fai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context-1790350560308-np0xy6.webp","ai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context-1790350560308-np0xy6","PUBLISHED","2026-09-25T11:34:00.000Z","2026-09-25T15:34:35.975Z","2026-09-25T21:01:33.061Z",{"en":761,"de":762,"sr":763,"es":764,"fr":765,"it":766,"ru":767,"zh":768},"\u002Fblog\u002Fai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context","\u002Fde\u002Fblog\u002Fai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context","\u002Fsr\u002Fblog\u002Fai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context","\u002Fes\u002Fblog\u002Fai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context","\u002Ffr\u002Fblog\u002Fai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context","\u002Fit\u002Fblog\u002Fai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context","\u002Fru\u002Fblog\u002Fai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context","\u002Fzh\u002Fblog\u002Fai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context",[770,774,778],{"id":771,"name":772,"slug":773},64,"Architecture de l’information","information-architecture",{"id":775,"name":776,"slug":777},57,"Limites des données","data-boundaries",{"id":779,"name":780,"slug":781},85,"Garde-fous qualité","quality-gates",{"id":783,"login":784,"email":785,"displayName":786},"20","rooth8233","aleksandar@stajic.de","Aleksandar Stajić",[788,1226],{"lang":789,"title":790,"content":791,"contentJson":792,"excerpt":1225},"en","AI Agent Memory Is Not RAG: How to Separate Memory, Retrieval, State and Context","{\"time\":1790350647507,\"blocks\":[{\"id\":\"_4kVYTpqbe\",\"type\":\"tableOfContents\",\"data\":{\"title\":\"Contents\",\"minLevel\":2,\"maxLevel\":3},\"tunes\":{}},{\"id\":\"intro\",\"type\":\"paragraph\",\"data\":{\"text\":\"AI agent memory, retrieval-augmented generation (RAG), runtime state, and model context are often discussed as if they were interchangeable. They are not. Collapsing them into one concept makes agent systems harder to reason about, harder to debug, and easier to make stale or unsafe.\"},\"tunes\":{}},{\"id\":\"direct\",\"type\":\"callout\",\"data\":{\"variant\":\"info\",\"title\":\"Direct answer\",\"body\":\"\u003Cstrong>RAG is not agent memory.\u003C\u002Fstrong> RAG is a retrieval pattern: it selects information that may be useful for the current model call. Memory is persistent information derived from prior interaction or experience and managed across time. State represents what is currently true about the running task or environment. Context is the information actually made available to the model for the current inference. A production agent may use all four, but they solve different problems.\"},\"tunes\":{}},{\"id\":\"model-note\",\"type\":\"callout\",\"data\":{\"variant\":\"note\",\"title\":\"About the model used in this article\",\"body\":\"The four-layer separation below is a practical architecture model, not a formal industry standard. Vendors and research papers use overlapping terminology. The purpose is operational: to make design decisions, ownership, failure analysis, and testing clearer.\"},\"tunes\":{}},{\"id\":\"h-category\",\"type\":\"header\",\"data\":{\"text\":\"The category error: treating every persistent-looking thing as memory\",\"level\":2},\"tunes\":{}},{\"id\":\"p-cat-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"A vector database can store conversation fragments. A session object can carry recent turns. A database row can hold the current workflow status. A summarizer can compress previous work. A retriever can fetch old evidence. All of these can make an agent appear to “remember,” but they do not have the same semantics.\"},\"tunes\":{}},{\"id\":\"p-cat-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"The distinction matters because the required correctness rules are different. Current state must be authoritative and fresh. Memory needs lifecycle rules for writing, revising, forgetting, and conflict handling. Retrieval needs relevance and evidence-selection quality. Context needs token-budget discipline and protection against irrelevant or conflicting material.\"},\"tunes\":{}},{\"id\":\"h-layers\",\"type\":\"header\",\"data\":{\"text\":\"A four-layer architecture: state, memory, retrieval, context\",\"level\":2},\"tunes\":{}},{\"id\":\"table-layers\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Layer\",\"Core question\",\"Typical examples\",\"Primary correctness concern\"],[\"State\",\"What is true now?\",\"Task status, cart contents, workflow step, active permissions, current game state\",\"Freshness and authority\"],[\"Memory\",\"What from the past should persist?\",\"User preference, prior decision, learned constraint, resolved failure, durable project fact\",\"Lifecycle, revision, provenance, forgetting\"],[\"Retrieval\",\"What information should be selected now?\",\"Vector search, keyword search, graph lookup, reranking, document search\",\"Relevance and evidence selection\"],[\"Context\",\"What does the model see for this call?\",\"System instructions, current request, retrieved passages, tool results, summaries\",\"Utility per token, ordering, consistency, noise\"]]},\"tunes\":{}},{\"id\":\"h-state\",\"type\":\"header\",\"data\":{\"text\":\"1. State: what is true now\",\"level\":3},\"tunes\":{}},{\"id\":\"p-state-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"State belongs to the running system, not to the model's recollection. If an order is cancelled, a deployment is paused, a user loses a permission, or a task moves from “in progress” to “approved,” the authoritative value should come from the system that owns that fact.\"},\"tunes\":{}},{\"id\":\"p-state-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"A dangerous design is to let an old conversation summary become a substitute for current state. The agent may accurately remember that the order was active yesterday and still be wrong today. State therefore needs explicit ownership, versioning or timestamps where relevant, and a path to re-read the source of truth before consequential actions.\"},\"tunes\":{}},{\"id\":\"h-memory\",\"type\":\"header\",\"data\":{\"text\":\"2. Memory: what from the past should persist\",\"level\":3},\"tunes\":{}},{\"id\":\"p-memory-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Memory is not simply “everything we can store.” A useful memory layer decides what deserves persistence, in what form, for how long, with what provenance, and under what conditions it must be revised or removed.\"},\"tunes\":{}},{\"id\":\"p-memory-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Recent agent-memory research increasingly treats raw transcript storage as insufficient. Microsoft's PlugMem work focuses on transforming raw interaction histories into structured reusable knowledge. Memora separates rich stored content from lighter abstractions and retrieval cues so that long-horizon systems do not have to choose between detail and scalable access.\"},\"tunes\":{}},{\"id\":\"h-retrieval\",\"type\":\"header\",\"data\":{\"text\":\"3. Retrieval: what should be selected now\",\"level\":3},\"tunes\":{}},{\"id\":\"p-ret-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Retrieval is a selection mechanism. It can search external documents, internal knowledge bases, stored memories, logs, graphs, databases, or mixed sources. RAG normally sits here: retrieve evidence, place selected material into the model's working input, then generate an answer.\"},\"tunes\":{}},{\"id\":\"p-ret-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"That mechanism does not become memory merely because the retrieved corpus contains past interactions. The same retriever can search policy documents that the agent never experienced, product data from another system, or a user's prior decisions. Retrieval describes how information is selected; memory describes why some information persists across time and how that persistence is governed.\"},\"tunes\":{}},{\"id\":\"h-context\",\"type\":\"header\",\"data\":{\"text\":\"4. Context: what the model can actually use right now\",\"level\":3},\"tunes\":{}},{\"id\":\"p-ctx-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Context is the model-facing layer. Anthropic describes context engineering as deciding what configuration of context is most likely to produce the desired behaviour, with context being the tokens available to the model during generation. OpenAI's session-memory guidance similarly treats trimming and compression as context-management techniques for long-running agent interactions.\"},\"tunes\":{}},{\"id\":\"p-ctx-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"This is why a system can have excellent memory and still fail. The relevant memory may exist but not be retrieved. It may be retrieved but placed into context next to stronger conflicting text. It may be compressed until the decisive detail disappears. Or the model may receive so much material that useful evidence is diluted by noise.\"},\"tunes\":{}},{\"id\":\"h-flow\",\"type\":\"header\",\"data\":{\"text\":\"How the layers interact\",\"level\":2},\"tunes\":{}},{\"id\":\"flow\",\"type\":\"processFlow\",\"data\":{\"title\":\"One possible production flow\",\"orientation\":\"auto\",\"steps\":[{\"label\":\"1. Read authoritative state\",\"description\":\"Load current task, user, system, or environment facts from the systems that own them.\"},{\"label\":\"2. Identify memory needs\",\"description\":\"Determine whether prior decisions, preferences, lessons, or long-term constraints are relevant.\"},{\"label\":\"3. Retrieve evidence\",\"description\":\"Search memory and external knowledge using semantic, lexical, graph, structured, or hybrid retrieval.\"},{\"label\":\"4. Build context\",\"description\":\"Assemble instructions, current state, selected evidence, and compacted history within the model's usable context.\"},{\"label\":\"5. Generate or act\",\"description\":\"The model reasons over the assembled context and produces an answer, plan, or tool call.\"},{\"label\":\"6. Validate and write back\",\"description\":\"Validate consequential outputs, update authoritative state where permitted, and persist only memories that pass the write policy.\"}]},\"tunes\":{}},{\"id\":\"h-rag\",\"type\":\"header\",\"data\":{\"text\":\"Why RAG is not memory\",\"level\":2},\"tunes\":{}},{\"id\":\"p-rag-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"The simplest test is this: a RAG system can retrieve information the agent has never seen before. That alone shows that retrieval and memory are different abstractions.\"},\"tunes\":{}},{\"id\":\"p-rag-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"RAG answers: “Which evidence should I fetch?” A memory system must additionally answer questions such as: “Should this event become durable knowledge?”, “Does this new information supersede an older memory?”, “Can this memory still be trusted?”, “Who is allowed to read it?”, and “When should it be forgotten?”\"},\"tunes\":{}},{\"id\":\"rag-trap\",\"type\":\"callout\",\"data\":{\"variant\":\"warning\",\"title\":\"A common design trap\",\"body\":\"If every conversation turn is embedded into a vector store and later retrieved by similarity, the system has persistent lookup, but not necessarily a well-governed memory architecture. Persistence alone does not define memory quality.\"},\"tunes\":{}},{\"id\":\"h-test\",\"type\":\"header\",\"data\":{\"text\":\"The four-layer separation test\",\"level\":2},\"tunes\":{}},{\"id\":\"p-test\",\"type\":\"paragraph\",\"data\":{\"text\":\"When a feature is called “memory,” ask the following four questions. The answers usually reveal which layer is actually involved.\"},\"tunes\":{}},{\"id\":\"table-test\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Question\",\"If yes, you are primarily dealing with\"],[\"Does this represent the current authoritative condition of the task or environment?\",\"State\"],[\"Must this information survive the current run because it captures useful prior experience, preference, or decision?\",\"Memory\"],[\"Is the main problem deciding which stored or external information is relevant to the current request?\",\"Retrieval\"],[\"Is the main problem deciding what information to place inside the current model call?\",\"Context\"]]},\"tunes\":{}},{\"id\":\"p-test-note\",\"type\":\"paragraph\",\"data\":{\"text\":\"A single component can participate in more than one layer. A database may store both state and memory. A vector index may retrieve both external knowledge and memories. The separation is semantic, not necessarily physical.\"},\"tunes\":{}},{\"id\":\"h-fail\",\"type\":\"header\",\"data\":{\"text\":\"Failure modes caused by collapsing the layers\",\"level\":2},\"tunes\":{}},{\"id\":\"table-fail\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Failure mode\",\"What happened\",\"Result\"],[\"Stale state disguised as memory\",\"An old summary is trusted instead of re-reading the authoritative system\",\"The agent acts on facts that were once true\"],[\"Memory treated as immutable fact\",\"A prior preference or decision is stored without revision rules\",\"Superseded information keeps influencing future answers\"],[\"Retrieval hit treated as truth\",\"High similarity is mistaken for factual authority\",\"Relevant-looking but incorrect evidence dominates\"],[\"Context overload\",\"Too many retrieved passages, memories, logs, and instructions are injected\",\"The decisive evidence is diluted or contradicted\"],[\"Uncontrolled memory write\",\"Model-generated interpretations are stored automatically as durable memory\",\"Errors become persistent and self-reinforcing\"],[\"No provenance boundary\",\"The system cannot distinguish user statement, source fact, model inference, and generated summary\",\"Later retrieval loses the evidential status of the information\"]]},\"tunes\":{}},{\"id\":\"h-decision\",\"type\":\"header\",\"data\":{\"text\":\"What should be remembered, retrieved, recomputed, or re-read?\",\"level\":2},\"tunes\":{}},{\"id\":\"table-decision\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Information type\",\"Preferred treatment\",\"Reason\"],[\"Current permission, order status, inventory, workflow status\",\"Re-read authoritative state\",\"Freshness matters more than recollection\"],[\"Stable user preference explicitly provided by the user\",\"Memory, with edit\u002Fdelete semantics\",\"Useful across sessions and owned by the user\"],[\"Decision made during a long-running project\",\"Memory with timestamp, provenance, and supersession rules\",\"The history matters, but decisions can change\"],[\"Product specification or public policy document\",\"Retrieve from source\",\"External knowledge should remain tied to its evidence\"],[\"Derived metric that can be cheaply recalculated\",\"Recompute\",\"Avoid persisting stale derived values\"],[\"Long raw tool output\",\"Store externally; retrieve or summarize when needed\",\"Do not consume context permanently\"],[\"Model hypothesis or uncertain interpretation\",\"Do not promote automatically to durable memory\",\"Inference is not equivalent to fact\"]]},\"tunes\":{}},{\"id\":\"h-write\",\"type\":\"header\",\"data\":{\"text\":\"A memory system needs a write policy, not only a retrieval policy\",\"level\":2},\"tunes\":{}},{\"id\":\"p-write-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"RAG architecture discussions often focus on retrieval quality: chunking, embeddings, reranking, hybrid search, and grounding. Long-term memory introduces another side of the problem: what is allowed to enter the persistent store in the first place?\"},\"tunes\":{}},{\"id\":\"p-write-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"For durable agent memory, a practical write policy should classify the candidate memory, preserve provenance, detect conflicts with existing entries, distinguish observation from inference, define sensitivity and access scope, and decide whether the information should expire, be revised, or require user confirmation.\"},\"tunes\":{}},{\"id\":\"write-tip\",\"type\":\"callout\",\"data\":{\"variant\":\"tip\",\"title\":\"Design principle\",\"body\":\"The more expensive a wrong memory becomes over time, the stricter the write policy should be. A bad retrieval affects one answer. A bad durable memory can affect every future answer that retrieves it.\"},\"tunes\":{}},{\"id\":\"h-prov\",\"type\":\"header\",\"data\":{\"text\":\"Provenance is the bridge between memory and reliable evidence\",\"level\":2},\"tunes\":{}},{\"id\":\"p-prov-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"A memory entry should ideally retain enough provenance to answer: where did this come from, when was it observed, who or what asserted it, was it user-provided or model-inferred, what source supported it, and has anything superseded it?\"},\"tunes\":{}},{\"id\":\"p-prov-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Without provenance, a compressed memory can become more authoritative than the evidence that created it. This is especially risky in long-running agents where summaries and abstractions are repeatedly reused. The system may preserve the conclusion while losing the conditions under which the conclusion was valid.\"},\"tunes\":{}},{\"id\":\"h-budget\",\"type\":\"header\",\"data\":{\"text\":\"More memory does not mean more context\",\"level\":2},\"tunes\":{}},{\"id\":\"p-budget-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"A long-lived agent may accumulate gigabytes of state, history, documents, and learned information. The model does not need — and usually should not receive — all of it for each step. The purpose of retrieval, summarization, compaction, and structured memory is to convert a large persistent information space into a small, relevant working context.\"},\"tunes\":{}},{\"id\":\"p-budget-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"This is also why larger context windows do not eliminate memory architecture. Capacity reduces some pressure, but it does not solve freshness, authority, conflicting evidence, privacy scope, write quality, revision, or deciding what deserves attention.\"},\"tunes\":{}},{\"id\":\"h-check\",\"type\":\"header\",\"data\":{\"text\":\"Production design checklist\",\"level\":2},\"tunes\":{}},{\"id\":\"checklist\",\"type\":\"list\",\"data\":{\"style\":\"unordered\",\"meta\":{},\"items\":[\"Define which systems own authoritative runtime state.\",\"Define which information is eligible to become durable memory.\",\"Keep user-provided facts, external evidence, and model inference distinguishable.\",\"Attach timestamps, provenance, scope, and revision semantics to important memories.\",\"Treat retrieval relevance as different from factual authority.\",\"Build context intentionally instead of injecting all retrieved material.\",\"Re-read volatile facts instead of trusting old memories.\",\"Recompute cheap derived values when staleness would be costly.\",\"Test memory writes as carefully as memory reads.\",\"Measure failures separately: state error, memory error, retrieval error, context-construction error, reasoning error, and action error.\"]},\"tunes\":{}},{\"id\":\"h-change\",\"type\":\"header\",\"data\":{\"text\":\"What would change this answer?\",\"level\":2},\"tunes\":{}},{\"id\":\"p-change-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"The boundary between these layers can move as agent platforms evolve. A vendor may offer a managed memory service that internally performs storage, revision, retrieval, summarization, and context construction. That can collapse implementation components, but it does not eliminate the architectural questions. You still need to know whether a returned item is current state, persistent memory, retrieved evidence, or simply text placed into context.\"},\"tunes\":{}},{\"id\":\"p-change-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"The recommendation would also change for systems with no cross-session continuity, systems where every task starts from a clean immutable corpus, or tightly bounded workflows where all relevant state fits safely inside one call. In those cases, a dedicated long-term memory layer may add complexity without enough value.\"},\"tunes\":{}},{\"id\":\"h-limit\",\"type\":\"header\",\"data\":{\"text\":\"Limitations\",\"level\":2},\"tunes\":{}},{\"id\":\"p-limit\",\"type\":\"paragraph\",\"data\":{\"text\":\"Terminology in agent systems is still moving quickly. Some frameworks call conversation history “memory,” others use “session,” “checkpoint,” “store,” “context,” or “state.” Research systems also define memory at different levels, from persistent lookup to learned internal adaptation. The model in this article deliberately separates operational responsibilities rather than trying to impose one universal vocabulary.\"},\"tunes\":{}},{\"id\":\"h-conclusion\",\"type\":\"header\",\"data\":{\"text\":\"Conclusion\",\"level\":2},\"tunes\":{}},{\"id\":\"p-conclusion-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"The useful question is not “Does this agent have memory?” It is: What is state, what is persisted from experience, how is relevant information retrieved, and what finally reaches the model as context?\"},\"tunes\":{}},{\"id\":\"p-conclusion-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Once those responsibilities are separated, design choices become easier to test. Stale facts can be traced to state ownership. Bad recall can be traced to memory lifecycle or retrieval. Overloaded prompts can be traced to context construction. Persistent hallucinations can be traced to write policy and provenance. RAG remains an important tool, but it is only one part of a reliable long-running agent architecture.\"},\"tunes\":{}},{\"id\":\"h-faq\",\"type\":\"header\",\"data\":{\"text\":\"FAQ\",\"level\":2},\"tunes\":{}},{\"id\":\"faq\",\"type\":\"faq\",\"data\":{\"title\":\"AI agent memory, RAG, state and context\",\"items\":[{\"id\":\"faq1\",\"question\":\"Is RAG the same as AI agent memory?\",\"answer\":\"No. RAG is primarily a retrieval pattern that selects information for a model call. Memory concerns what information from prior interactions or experience persists across time and how that information is governed.\"},{\"id\":\"faq2\",\"question\":\"Is a vector database an agent memory?\",\"answer\":\"It can be part of one, but a vector database by itself is a storage and retrieval component. A production memory architecture also needs decisions about what to store, provenance, revision, conflicts, access, expiration, and forgetting.\"},{\"id\":\"faq3\",\"question\":\"Does a larger context window remove the need for memory?\",\"answer\":\"Not necessarily. Larger context helps with capacity, but it does not solve persistent knowledge across sessions, freshness, provenance, privacy scope, revision, or deciding what should be reused later.\"},{\"id\":\"faq4\",\"question\":\"Should current application state be stored as memory?\",\"answer\":\"Usually the authoritative application or domain system should remain the source of truth for volatile state. Memory may record the history or significance of state changes, but consequential actions should re-read current authoritative values.\"}]},\"tunes\":{}},{\"id\":\"h-glossary\",\"type\":\"header\",\"data\":{\"text\":\"Glossary\",\"level\":2},\"tunes\":{}},{\"id\":\"glossary\",\"type\":\"glossary\",\"data\":{\"title\":\"Key terms\",\"entries\":[{\"term\":\"State\",\"definition\":\"The current authoritative condition of a task, application, user, workflow, or environment.\",\"anchor\":\"state\"},{\"term\":\"Memory\",\"definition\":\"Information from prior experience or interaction that persists because it may be useful later and is subject to lifecycle rules.\",\"anchor\":\"memory\"},{\"term\":\"Retrieval\",\"definition\":\"The mechanism used to select potentially relevant information from memory, external knowledge, databases, graphs, or other stores.\",\"anchor\":\"retrieval\"},{\"term\":\"Context\",\"definition\":\"The information actually available to the language model during a particular inference or generation step.\",\"anchor\":\"context\"},{\"term\":\"RAG\",\"definition\":\"Retrieval-augmented generation: a pattern in which external or stored information is retrieved and supplied to a generative model to improve the current output.\",\"anchor\":\"rag\"},{\"term\":\"Provenance\",\"definition\":\"Metadata describing where information came from, when it was observed, who or what asserted it, and how it was transformed.\",\"anchor\":\"provenance\"}]},\"tunes\":{}},{\"id\":\"h-sources\",\"type\":\"header\",\"data\":{\"text\":\"Primary sources and further reading\",\"level\":2},\"tunes\":{}},{\"id\":\"openai-session\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fdevelopers.openai.com\u002Fcookbook\u002Fexamples\u002Fagents_sdk\u002Fsession_memory\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"OpenAI — Context Engineering: Short-Term Memory Management with Sessions\",\"description\":\"OpenAI guidance on trimming and compression for long-running agent context.\"}},\"tunes\":{}},{\"id\":\"openai-sandbox\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents\u002Fsandboxes\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"OpenAI — Sandbox Agents\",\"description\":\"Documentation showing persistent memory as a capability with progressive disclosure and read\u002Fwrite behaviour.\"}},\"tunes\":{}},{\"id\":\"anthropic-context\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-context-engineering-for-ai-agents\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"Anthropic — Effective Context Engineering for AI Agents\",\"description\":\"Engineering guidance on curating finite model context for reliable agent behaviour.\"}},\"tunes\":{}},{\"id\":\"ms-memora\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fblog\u002Fmemora-a-harmonic-memory-representation-balancing-abstraction-and-specificity\u002F\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"Microsoft Research — Memora\",\"description\":\"Research on balancing abstraction and specificity in long-horizon agent memory.\"}},\"tunes\":{}},{\"id\":\"ms-plugmem\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fblog\u002Ffrom-raw-interaction-to-reusable-knowledge-rethinking-memory-for-ai-agents\u002F\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"Microsoft Research — PlugMem\",\"description\":\"Research on converting raw agent interaction histories into reusable structured knowledge.\"}},\"tunes\":{}},{\"id\":\"ms-ace\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fpublication\u002Fagentic-context-engineering-evolving-contexts-for-self-improving-language-models\u002F\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"Microsoft Research — Agentic Context Engineering (ACE)\",\"description\":\"Research on evolving context as structured playbooks rather than repeatedly rewriting or compressing everything.\"}},\"tunes\":{}}],\"version\":\"2.31.6\"}",{"time":793,"blocks":794,"version":1224},1790350647507,[795,799,803,808,813,817,821,825,829,858,862,866,870,874,878,882,886,890,894,898,902,906,910,933,937,941,945,950,954,958,972,976,980,1012,1016,1052,1056,1060,1064,1069,1073,1077,1081,1085,1089,1093,1097,1112,1116,1120,1124,1128,1132,1135,1139,1143,1146,1163,1167,1184,1188,1194,1200,1206,1212,1218],{"id":215,"data":796,"type":220,"tunes":798},{"title":797,"maxLevel":218,"minLevel":219},"Contents",{},{"id":223,"data":800,"type":226,"tunes":802},{"text":801},"AI agent memory, retrieval-augmented generation (RAG), runtime state, and model context are often discussed as if they were interchangeable. They are not. Collapsing them into one concept makes agent systems harder to reason about, harder to debug, and easier to make stale or unsafe.",{},{"id":229,"data":804,"type":234,"tunes":807},{"body":805,"title":806,"variant":233},"\u003Cstrong>RAG is not agent memory.\u003C\u002Fstrong> RAG is a retrieval pattern: it selects information that may be useful for the current model call. Memory is persistent information derived from prior interaction or experience and managed across time. State represents what is currently true about the running task or environment. Context is the information actually made available to the model for the current inference. A production agent may use all four, but they solve different problems.","Direct answer",{},{"id":237,"data":809,"type":234,"tunes":812},{"body":810,"title":811,"variant":241},"The four-layer separation below is a practical architecture model, not a formal industry standard. Vendors and research papers use overlapping terminology. The purpose is operational: to make design decisions, ownership, failure analysis, and testing clearer.","About the model used in this article",{},{"id":244,"data":814,"type":42,"tunes":816},{"text":815,"level":219},"The category error: treating every persistent-looking thing as memory",{},{"id":249,"data":818,"type":226,"tunes":820},{"text":819},"A vector database can store conversation fragments. A session object can carry recent turns. A database row can hold the current workflow status. A summarizer can compress previous work. A retriever can fetch old evidence. All of these can make an agent appear to “remember,” but they do not have the same semantics.",{},{"id":254,"data":822,"type":226,"tunes":824},{"text":823},"The distinction matters because the required correctness rules are different. Current state must be authoritative and fresh. Memory needs lifecycle rules for writing, revising, forgetting, and conflict handling. Retrieval needs relevance and evidence-selection quality. Context needs token-budget discipline and protection against irrelevant or conflicting material.",{},{"id":259,"data":826,"type":42,"tunes":828},{"text":827,"level":219},"A four-layer architecture: state, memory, retrieval, context",{},{"id":264,"data":830,"type":292,"tunes":857},{"content":831,"stretched":43,"withHeadings":14},[832,837,842,847,852],[833,834,835,836],"Layer","Core question","Typical examples","Primary correctness concern",[838,839,840,841],"State","What is true now?","Task status, cart contents, workflow step, active permissions, current game state","Freshness and authority",[843,844,845,846],"Memory","What from the past should persist?","User preference, prior decision, learned constraint, resolved failure, durable project fact","Lifecycle, revision, provenance, forgetting",[848,849,850,851],"Retrieval","What information should be selected now?","Vector search, keyword search, graph lookup, reranking, document search","Relevance and evidence selection",[853,854,855,856],"Context","What does the model see for this call?","System instructions, current request, retrieved passages, tool results, summaries","Utility per token, ordering, consistency, noise",{},{"id":295,"data":859,"type":42,"tunes":861},{"text":860,"level":218},"1. State: what is true now",{},{"id":300,"data":863,"type":226,"tunes":865},{"text":864},"State belongs to the running system, not to the model's recollection. If an order is cancelled, a deployment is paused, a user loses a permission, or a task moves from “in progress” to “approved,” the authoritative value should come from the system that owns that fact.",{},{"id":305,"data":867,"type":226,"tunes":869},{"text":868},"A dangerous design is to let an old conversation summary become a substitute for current state. The agent may accurately remember that the order was active yesterday and still be wrong today. State therefore needs explicit ownership, versioning or timestamps where relevant, and a path to re-read the source of truth before consequential actions.",{},{"id":310,"data":871,"type":42,"tunes":873},{"text":872,"level":218},"2. Memory: what from the past should persist",{},{"id":315,"data":875,"type":226,"tunes":877},{"text":876},"Memory is not simply “everything we can store.” A useful memory layer decides what deserves persistence, in what form, for how long, with what provenance, and under what conditions it must be revised or removed.",{},{"id":320,"data":879,"type":226,"tunes":881},{"text":880},"Recent agent-memory research increasingly treats raw transcript storage as insufficient. Microsoft's PlugMem work focuses on transforming raw interaction histories into structured reusable knowledge. Memora separates rich stored content from lighter abstractions and retrieval cues so that long-horizon systems do not have to choose between detail and scalable access.",{},{"id":325,"data":883,"type":42,"tunes":885},{"text":884,"level":218},"3. Retrieval: what should be selected now",{},{"id":330,"data":887,"type":226,"tunes":889},{"text":888},"Retrieval is a selection mechanism. It can search external documents, internal knowledge bases, stored memories, logs, graphs, databases, or mixed sources. RAG normally sits here: retrieve evidence, place selected material into the model's working input, then generate an answer.",{},{"id":335,"data":891,"type":226,"tunes":893},{"text":892},"That mechanism does not become memory merely because the retrieved corpus contains past interactions. The same retriever can search policy documents that the agent never experienced, product data from another system, or a user's prior decisions. Retrieval describes how information is selected; memory describes why some information persists across time and how that persistence is governed.",{},{"id":340,"data":895,"type":42,"tunes":897},{"text":896,"level":218},"4. Context: what the model can actually use right now",{},{"id":345,"data":899,"type":226,"tunes":901},{"text":900},"Context is the model-facing layer. Anthropic describes context engineering as deciding what configuration of context is most likely to produce the desired behaviour, with context being the tokens available to the model during generation. OpenAI's session-memory guidance similarly treats trimming and compression as context-management techniques for long-running agent interactions.",{},{"id":350,"data":903,"type":226,"tunes":905},{"text":904},"This is why a system can have excellent memory and still fail. The relevant memory may exist but not be retrieved. It may be retrieved but placed into context next to stronger conflicting text. It may be compressed until the decisive detail disappears. Or the model may receive so much material that useful evidence is diluted by noise.",{},{"id":355,"data":907,"type":42,"tunes":909},{"text":908,"level":219},"How the layers interact",{},{"id":360,"data":911,"type":383,"tunes":932},{"steps":912,"title":931,"orientation":382},[913,916,919,922,925,928],{"label":914,"description":915},"1. Read authoritative state","Load current task, user, system, or environment facts from the systems that own them.",{"label":917,"description":918},"2. Identify memory needs","Determine whether prior decisions, preferences, lessons, or long-term constraints are relevant.",{"label":920,"description":921},"3. Retrieve evidence","Search memory and external knowledge using semantic, lexical, graph, structured, or hybrid retrieval.",{"label":923,"description":924},"4. Build context","Assemble instructions, current state, selected evidence, and compacted history within the model's usable context.",{"label":926,"description":927},"5. Generate or act","The model reasons over the assembled context and produces an answer, plan, or tool call.",{"label":929,"description":930},"6. Validate and write back","Validate consequential outputs, update authoritative state where permitted, and persist only memories that pass the write policy.","One possible production flow",{},{"id":386,"data":934,"type":42,"tunes":936},{"text":935,"level":219},"Why RAG is not memory",{},{"id":391,"data":938,"type":226,"tunes":940},{"text":939},"The simplest test is this: a RAG system can retrieve information the agent has never seen before. That alone shows that retrieval and memory are different abstractions.",{},{"id":396,"data":942,"type":226,"tunes":944},{"text":943},"RAG answers: “Which evidence should I fetch?” A memory system must additionally answer questions such as: “Should this event become durable knowledge?”, “Does this new information supersede an older memory?”, “Can this memory still be trusted?”, “Who is allowed to read it?”, and “When should it be forgotten?”",{},{"id":401,"data":946,"type":234,"tunes":949},{"body":947,"title":948,"variant":405},"If every conversation turn is embedded into a vector store and later retrieved by similarity, the system has persistent lookup, but not necessarily a well-governed memory architecture. Persistence alone does not define memory quality.","A common design trap",{},{"id":408,"data":951,"type":42,"tunes":953},{"text":952,"level":219},"The four-layer separation test",{},{"id":413,"data":955,"type":226,"tunes":957},{"text":956},"When a feature is called “memory,” ask the following four questions. The answers usually reveal which layer is actually involved.",{},{"id":418,"data":959,"type":292,"tunes":971},{"content":960,"stretched":43,"withHeadings":14},[961,963,965,967,969],[422,962],"If yes, you are primarily dealing with",[964,838],"Does this represent the current authoritative condition of the task or environment?",[966,843],"Must this information survive the current run because it captures useful prior experience, preference, or decision?",[968,848],"Is the main problem deciding which stored or external information is relevant to the current request?",[970,853],"Is the main problem deciding what information to place inside the current model call?",{},{"id":434,"data":973,"type":226,"tunes":975},{"text":974},"A single component can participate in more than one layer. A database may store both state and memory. A vector index may retrieve both external knowledge and memories. The separation is semantic, not necessarily physical.",{},{"id":439,"data":977,"type":42,"tunes":979},{"text":978,"level":219},"Failure modes caused by collapsing the layers",{},{"id":444,"data":981,"type":292,"tunes":1011},{"content":982,"stretched":43,"withHeadings":14},[983,987,991,995,999,1003,1007],[984,985,986],"Failure mode","What happened","Result",[988,989,990],"Stale state disguised as memory","An old summary is trusted instead of re-reading the authoritative system","The agent acts on facts that were once true",[992,993,994],"Memory treated as immutable fact","A prior preference or decision is stored without revision rules","Superseded information keeps influencing future answers",[996,997,998],"Retrieval hit treated as truth","High similarity is mistaken for factual authority","Relevant-looking but incorrect evidence dominates",[1000,1001,1002],"Context overload","Too many retrieved passages, memories, logs, and instructions are injected","The decisive evidence is diluted or contradicted",[1004,1005,1006],"Uncontrolled memory write","Model-generated interpretations are stored automatically as durable memory","Errors become persistent and self-reinforcing",[1008,1009,1010],"No provenance boundary","The system cannot distinguish user statement, source fact, model inference, and generated summary","Later retrieval loses the evidential status of the information",{},{"id":477,"data":1013,"type":42,"tunes":1015},{"text":1014,"level":219},"What should be remembered, retrieved, recomputed, or re-read?",{},{"id":482,"data":1017,"type":292,"tunes":1051},{"content":1018,"stretched":43,"withHeadings":14},[1019,1023,1027,1031,1035,1039,1043,1047],[1020,1021,1022],"Information type","Preferred treatment","Reason",[1024,1025,1026],"Current permission, order status, inventory, workflow status","Re-read authoritative state","Freshness matters more than recollection",[1028,1029,1030],"Stable user preference explicitly provided by the user","Memory, with edit\u002Fdelete semantics","Useful across sessions and owned by the user",[1032,1033,1034],"Decision made during a long-running project","Memory with timestamp, provenance, and supersession rules","The history matters, but decisions can change",[1036,1037,1038],"Product specification or public policy document","Retrieve from source","External knowledge should remain tied to its evidence",[1040,1041,1042],"Derived metric that can be cheaply recalculated","Recompute","Avoid persisting stale derived values",[1044,1045,1046],"Long raw tool output","Store externally; retrieve or summarize when needed","Do not consume context permanently",[1048,1049,1050],"Model hypothesis or uncertain interpretation","Do not promote automatically to durable memory","Inference is not equivalent to fact",{},{"id":519,"data":1053,"type":42,"tunes":1055},{"text":1054,"level":219},"A memory system needs a write policy, not only a retrieval policy",{},{"id":524,"data":1057,"type":226,"tunes":1059},{"text":1058},"RAG architecture discussions often focus on retrieval quality: chunking, embeddings, reranking, hybrid search, and grounding. Long-term memory introduces another side of the problem: what is allowed to enter the persistent store in the first place?",{},{"id":529,"data":1061,"type":226,"tunes":1063},{"text":1062},"For durable agent memory, a practical write policy should classify the candidate memory, preserve provenance, detect conflicts with existing entries, distinguish observation from inference, define sensitivity and access scope, and decide whether the information should expire, be revised, or require user confirmation.",{},{"id":534,"data":1065,"type":234,"tunes":1068},{"body":1066,"title":1067,"variant":538},"The more expensive a wrong memory becomes over time, the stricter the write policy should be. A bad retrieval affects one answer. A bad durable memory can affect every future answer that retrieves it.","Design principle",{},{"id":541,"data":1070,"type":42,"tunes":1072},{"text":1071,"level":219},"Provenance is the bridge between memory and reliable evidence",{},{"id":546,"data":1074,"type":226,"tunes":1076},{"text":1075},"A memory entry should ideally retain enough provenance to answer: where did this come from, when was it observed, who or what asserted it, was it user-provided or model-inferred, what source supported it, and has anything superseded it?",{},{"id":551,"data":1078,"type":226,"tunes":1080},{"text":1079},"Without provenance, a compressed memory can become more authoritative than the evidence that created it. This is especially risky in long-running agents where summaries and abstractions are repeatedly reused. The system may preserve the conclusion while losing the conditions under which the conclusion was valid.",{},{"id":556,"data":1082,"type":42,"tunes":1084},{"text":1083,"level":219},"More memory does not mean more context",{},{"id":561,"data":1086,"type":226,"tunes":1088},{"text":1087},"A long-lived agent may accumulate gigabytes of state, history, documents, and learned information. The model does not need — and usually should not receive — all of it for each step. The purpose of retrieval, summarization, compaction, and structured memory is to convert a large persistent information space into a small, relevant working context.",{},{"id":566,"data":1090,"type":226,"tunes":1092},{"text":1091},"This is also why larger context windows do not eliminate memory architecture. Capacity reduces some pressure, but it does not solve freshness, authority, conflicting evidence, privacy scope, write quality, revision, or deciding what deserves attention.",{},{"id":571,"data":1094,"type":42,"tunes":1096},{"text":1095,"level":219},"Production design checklist",{},{"id":576,"data":1098,"type":591,"tunes":1111},{"meta":1099,"items":1100,"style":590},{},[1101,1102,1103,1104,1105,1106,1107,1108,1109,1110],"Define which systems own authoritative runtime state.","Define which information is eligible to become durable memory.","Keep user-provided facts, external evidence, and model inference distinguishable.","Attach timestamps, provenance, scope, and revision semantics to important memories.","Treat retrieval relevance as different from factual authority.","Build context intentionally instead of injecting all retrieved material.","Re-read volatile facts instead of trusting old memories.","Recompute cheap derived values when staleness would be costly.","Test memory writes as carefully as memory reads.","Measure failures separately: state error, memory error, retrieval error, context-construction error, reasoning error, and action error.",{},{"id":594,"data":1113,"type":42,"tunes":1115},{"text":1114,"level":219},"What would change this answer?",{},{"id":599,"data":1117,"type":226,"tunes":1119},{"text":1118},"The boundary between these layers can move as agent platforms evolve. A vendor may offer a managed memory service that internally performs storage, revision, retrieval, summarization, and context construction. That can collapse implementation components, but it does not eliminate the architectural questions. You still need to know whether a returned item is current state, persistent memory, retrieved evidence, or simply text placed into context.",{},{"id":604,"data":1121,"type":226,"tunes":1123},{"text":1122},"The recommendation would also change for systems with no cross-session continuity, systems where every task starts from a clean immutable corpus, or tightly bounded workflows where all relevant state fits safely inside one call. In those cases, a dedicated long-term memory layer may add complexity without enough value.",{},{"id":609,"data":1125,"type":42,"tunes":1127},{"text":1126,"level":219},"Limitations",{},{"id":614,"data":1129,"type":226,"tunes":1131},{"text":1130},"Terminology in agent systems is still moving quickly. Some frameworks call conversation history “memory,” others use “session,” “checkpoint,” “store,” “context,” or “state.” Research systems also define memory at different levels, from persistent lookup to learned internal adaptation. The model in this article deliberately separates operational responsibilities rather than trying to impose one universal vocabulary.",{},{"id":619,"data":1133,"type":42,"tunes":1134},{"text":621,"level":219},{},{"id":624,"data":1136,"type":226,"tunes":1138},{"text":1137},"The useful question is not “Does this agent have memory?” It is: What is state, what is persisted from experience, how is relevant information retrieved, and what finally reaches the model as context?",{},{"id":629,"data":1140,"type":226,"tunes":1142},{"text":1141},"Once those responsibilities are separated, design choices become easier to test. Stale facts can be traced to state ownership. Bad recall can be traced to memory lifecycle or retrieval. Overloaded prompts can be traced to context construction. Persistent hallucinations can be traced to write policy and provenance. RAG remains an important tool, but it is only one part of a reliable long-running agent architecture.",{},{"id":634,"data":1144,"type":42,"tunes":1145},{"text":636,"level":219},{},{"id":639,"data":1147,"type":639,"tunes":1162},{"items":1148,"title":1161},[1149,1152,1155,1158],{"id":643,"answer":1150,"question":1151},"No. RAG is primarily a retrieval pattern that selects information for a model call. Memory concerns what information from prior interactions or experience persists across time and how that information is governed.","Is RAG the same as AI agent memory?",{"id":647,"answer":1153,"question":1154},"It can be part of one, but a vector database by itself is a storage and retrieval component. A production memory architecture also needs decisions about what to store, provenance, revision, conflicts, access, expiration, and forgetting.","Is a vector database an agent memory?",{"id":651,"answer":1156,"question":1157},"Not necessarily. Larger context helps with capacity, but it does not solve persistent knowledge across sessions, freshness, provenance, privacy scope, revision, or deciding what should be reused later.","Does a larger context window remove the need for memory?",{"id":655,"answer":1159,"question":1160},"Usually the authoritative application or domain system should remain the source of truth for volatile state. Memory may record the history or significance of state changes, but consequential actions should re-read current authoritative values.","Should current application state be stored as memory?","AI agent memory, RAG, state and context",{},{"id":661,"data":1164,"type":42,"tunes":1166},{"text":1165,"level":219},"Glossary",{},{"id":666,"data":1168,"type":666,"tunes":1183},{"title":1169,"entries":1170},"Key terms",[1171,1173,1175,1177,1179,1181],{"term":838,"anchor":671,"definition":1172},"The current authoritative condition of a task, application, user, workflow, or environment.",{"term":843,"anchor":674,"definition":1174},"Information from prior experience or interaction that persists because it may be useful later and is subject to lifecycle rules.",{"term":848,"anchor":677,"definition":1176},"The mechanism used to select potentially relevant information from memory, external knowledge, databases, graphs, or other stores.",{"term":853,"anchor":680,"definition":1178},"The information actually available to the language model during a particular inference or generation step.",{"term":683,"anchor":684,"definition":1180},"Retrieval-augmented generation: a pattern in which external or stored information is retrieved and supplied to a generative model to improve the current output.",{"term":687,"anchor":688,"definition":1182},"Metadata describing where information came from, when it was observed, who or what asserted it, and how it was transformed.",{},{"id":692,"data":1185,"type":42,"tunes":1187},{"text":1186,"level":219},"Primary sources and further reading",{},{"id":697,"data":1189,"type":705,"tunes":1193},{"link":699,"meta":1190},{"image":1191,"title":703,"description":1192},{"url":702},"OpenAI guidance on trimming and compression for long-running agent context.",{},{"id":708,"data":1195,"type":705,"tunes":1199},{"link":710,"meta":1196},{"image":1197,"title":713,"description":1198},{"url":702},"Documentation showing persistent memory as a capability with progressive disclosure and read\u002Fwrite behaviour.",{},{"id":717,"data":1201,"type":705,"tunes":1205},{"link":719,"meta":1202},{"image":1203,"title":722,"description":1204},{"url":702},"Engineering guidance on curating finite model context for reliable agent behaviour.",{},{"id":726,"data":1207,"type":705,"tunes":1211},{"link":728,"meta":1208},{"image":1209,"title":731,"description":1210},{"url":702},"Research on balancing abstraction and specificity in long-horizon agent memory.",{},{"id":735,"data":1213,"type":705,"tunes":1217},{"link":737,"meta":1214},{"image":1215,"title":740,"description":1216},{"url":702},"Research on converting raw agent interaction histories into reusable structured knowledge.",{},{"id":744,"data":1219,"type":705,"tunes":1223},{"link":746,"meta":1220},{"image":1221,"title":749,"description":1222},{"url":702},"Research on evolving context as structured playbooks rather than repeatedly rewriting or compressing everything.",{},"2.31.6","Agent memory, RAG, state, and context are often used as if they were interchangeable. They are not. This practical architecture model separates the four layers, shows where each belongs, and explains what breaks when systems collapse them into one.",{"lang":7,"title":208,"content":210,"contentJson":1227,"excerpt":753},{"time":212,"blocks":1228,"version":752},[1229,1232,1235,1238,1241,1244,1247,1250,1253,1262,1265,1268,1271,1274,1277,1280,1283,1286,1289,1292,1295,1298,1301,1311,1314,1317,1320,1323,1326,1329,1338,1341,1344,1355,1358,1370,1373,1376,1379,1382,1385,1388,1391,1394,1397,1400,1403,1408,1411,1414,1417,1420,1423,1426,1429,1432,1435,1443,1446,1456,1459,1464,1469,1474,1479,1484],{"id":215,"data":1230,"type":220,"tunes":1231},{"title":217,"maxLevel":218,"minLevel":219},{},{"id":223,"data":1233,"type":226,"tunes":1234},{"text":225},{},{"id":229,"data":1236,"type":234,"tunes":1237},{"body":231,"title":232,"variant":233},{},{"id":237,"data":1239,"type":234,"tunes":1240},{"body":239,"title":240,"variant":241},{},{"id":244,"data":1242,"type":42,"tunes":1243},{"text":246,"level":219},{},{"id":249,"data":1245,"type":226,"tunes":1246},{"text":251},{},{"id":254,"data":1248,"type":226,"tunes":1249},{"text":256},{},{"id":259,"data":1251,"type":42,"tunes":1252},{"text":261,"level":219},{},{"id":264,"data":1254,"type":292,"tunes":1261},{"content":1255,"stretched":43,"withHeadings":14},[1256,1257,1258,1259,1260],[268,269,270,271],[273,274,275,276],[278,279,280,281],[283,284,285,286],[288,289,290,291],{},{"id":295,"data":1263,"type":42,"tunes":1264},{"text":297,"level":218},{},{"id":300,"data":1266,"type":226,"tunes":1267},{"text":302},{},{"id":305,"data":1269,"type":226,"tunes":1270},{"text":307},{},{"id":310,"data":1272,"type":42,"tunes":1273},{"text":312,"level":218},{},{"id":315,"data":1275,"type":226,"tunes":1276},{"text":317},{},{"id":320,"data":1278,"type":226,"tunes":1279},{"text":322},{},{"id":325,"data":1281,"type":42,"tunes":1282},{"text":327,"level":218},{},{"id":330,"data":1284,"type":226,"tunes":1285},{"text":332},{},{"id":335,"data":1287,"type":226,"tunes":1288},{"text":337},{},{"id":340,"data":1290,"type":42,"tunes":1291},{"text":342,"level":218},{},{"id":345,"data":1293,"type":226,"tunes":1294},{"text":347},{},{"id":350,"data":1296,"type":226,"tunes":1297},{"text":352},{},{"id":355,"data":1299,"type":42,"tunes":1300},{"text":357,"level":219},{},{"id":360,"data":1302,"type":383,"tunes":1310},{"steps":1303,"title":381,"orientation":382},[1304,1305,1306,1307,1308,1309],{"label":364,"description":365},{"label":367,"description":368},{"label":370,"description":371},{"label":373,"description":374},{"label":376,"description":377},{"label":379,"description":380},{},{"id":386,"data":1312,"type":42,"tunes":1313},{"text":388,"level":219},{},{"id":391,"data":1315,"type":226,"tunes":1316},{"text":393},{},{"id":396,"data":1318,"type":226,"tunes":1319},{"text":398},{},{"id":401,"data":1321,"type":234,"tunes":1322},{"body":403,"title":404,"variant":405},{},{"id":408,"data":1324,"type":42,"tunes":1325},{"text":410,"level":219},{},{"id":413,"data":1327,"type":226,"tunes":1328},{"text":415},{},{"id":418,"data":1330,"type":292,"tunes":1337},{"content":1331,"stretched":43,"withHeadings":14},[1332,1333,1334,1335,1336],[422,423],[425,273],[427,278],[429,283],[431,288],{},{"id":434,"data":1339,"type":226,"tunes":1340},{"text":436},{},{"id":439,"data":1342,"type":42,"tunes":1343},{"text":441,"level":219},{},{"id":444,"data":1345,"type":292,"tunes":1354},{"content":1346,"stretched":43,"withHeadings":14},[1347,1348,1349,1350,1351,1352,1353],[448,449,450],[452,453,454],[456,457,458],[460,461,462],[464,465,466],[468,469,470],[472,473,474],{},{"id":477,"data":1356,"type":42,"tunes":1357},{"text":479,"level":219},{},{"id":482,"data":1359,"type":292,"tunes":1369},{"content":1360,"stretched":43,"withHeadings":14},[1361,1362,1363,1364,1365,1366,1367,1368],[486,487,488],[490,491,492],[494,495,496],[498,499,500],[502,503,504],[506,507,508],[510,511,512],[514,515,516],{},{"id":519,"data":1371,"type":42,"tunes":1372},{"text":521,"level":219},{},{"id":524,"data":1374,"type":226,"tunes":1375},{"text":526},{},{"id":529,"data":1377,"type":226,"tunes":1378},{"text":531},{},{"id":534,"data":1380,"type":234,"tunes":1381},{"body":536,"title":537,"variant":538},{},{"id":541,"data":1383,"type":42,"tunes":1384},{"text":543,"level":219},{},{"id":546,"data":1386,"type":226,"tunes":1387},{"text":548},{},{"id":551,"data":1389,"type":226,"tunes":1390},{"text":553},{},{"id":556,"data":1392,"type":42,"tunes":1393},{"text":558,"level":219},{},{"id":561,"data":1395,"type":226,"tunes":1396},{"text":563},{},{"id":566,"data":1398,"type":226,"tunes":1399},{"text":568},{},{"id":571,"data":1401,"type":42,"tunes":1402},{"text":573,"level":219},{},{"id":576,"data":1404,"type":591,"tunes":1407},{"meta":1405,"items":1406,"style":590},{},[580,581,582,583,584,585,586,587,588,589],{},{"id":594,"data":1409,"type":42,"tunes":1410},{"text":596,"level":219},{},{"id":599,"data":1412,"type":226,"tunes":1413},{"text":601},{},{"id":604,"data":1415,"type":226,"tunes":1416},{"text":606},{},{"id":609,"data":1418,"type":42,"tunes":1419},{"text":611,"level":219},{},{"id":614,"data":1421,"type":226,"tunes":1422},{"text":616},{},{"id":619,"data":1424,"type":42,"tunes":1425},{"text":621,"level":219},{},{"id":624,"data":1427,"type":226,"tunes":1428},{"text":626},{},{"id":629,"data":1430,"type":226,"tunes":1431},{"text":631},{},{"id":634,"data":1433,"type":42,"tunes":1434},{"text":636,"level":219},{},{"id":639,"data":1436,"type":639,"tunes":1442},{"items":1437,"title":658},[1438,1439,1440,1441],{"id":643,"answer":644,"question":645},{"id":647,"answer":648,"question":649},{"id":651,"answer":652,"question":653},{"id":655,"answer":656,"question":657},{},{"id":661,"data":1444,"type":42,"tunes":1445},{"text":663,"level":219},{},{"id":666,"data":1447,"type":666,"tunes":1455},{"title":668,"entries":1448},[1449,1450,1451,1452,1453,1454],{"term":273,"anchor":671,"definition":672},{"term":278,"anchor":674,"definition":675},{"term":283,"anchor":677,"definition":678},{"term":288,"anchor":680,"definition":681},{"term":683,"anchor":684,"definition":685},{"term":687,"anchor":688,"definition":689},{},{"id":692,"data":1457,"type":42,"tunes":1458},{"text":694,"level":219},{},{"id":697,"data":1460,"type":705,"tunes":1463},{"link":699,"meta":1461},{"image":1462,"title":703,"description":704},{"url":702},{},{"id":708,"data":1465,"type":705,"tunes":1468},{"link":710,"meta":1466},{"image":1467,"title":713,"description":714},{"url":702},{},{"id":717,"data":1470,"type":705,"tunes":1473},{"link":719,"meta":1471},{"image":1472,"title":722,"description":723},{"url":702},{},{"id":726,"data":1475,"type":705,"tunes":1478},{"link":728,"meta":1476},{"image":1477,"title":731,"description":732},{"url":702},{},{"id":735,"data":1480,"type":705,"tunes":1483},{"link":737,"meta":1481},{"image":1482,"title":740,"description":741},{"url":702},{},{"id":744,"data":1485,"type":705,"tunes":1488},{"link":746,"meta":1486},{"image":1487,"title":749,"description":750},{"url":702},{},"Post erfolgreich abgerufen",{"items":1491,"source":1562,"manualIds":1563,"manualMatchedIds":1564},[1492,1499,1506,1513,1520,1527,1534,1541,1548,1555],{"id":1493,"slug":1494,"title":1495,"excerpt":1496,"featuredImage":1497,"publishedAt":1498},"478","what-is-rag-the-simplest-explanation-of-how-it-works","Qu'est-ce que le RAG ? L'explication la plus simple de son fonctionnement","Le RAG semble compliqué, mais l'idée est simple : avant qu'une IA ne réponde, elle recherche d'abord des informations utiles dans une source de connaissances et transmet ces informations au modèle de langage. Ce guide explique le RAG, les LLM, l'état, la mémoire et les outils à l'aide d'un modèle mental simple.","\u002Fuploads\u002F2026\u002F09\u002Fwhat-is-rag-the-simplest-explanation-of-how-it-works-1790377492124-khjagt.webp","2026-09-25T19:03:00.000Z",{"id":1500,"slug":1501,"title":1502,"excerpt":1503,"featuredImage":1504,"publishedAt":1505},"466","the-gpu-is-not-the-product-future-proof-private-ai-architecture","Le GPU n'est pas le produit : architecture d'IA privée pérenne","Une infrastructure d'IA privée ne devrait pas être conçue autour d'un seul GPU ou d'un seul modèle. Une approche plus résiliente combine des GPU d'inférence rapides, des systèmes d'IA riches en mémoire, des nœuds d'IA physique et des modèles cloud de pointe optionnels derrière une couche de routage prenant en compte les capacités.","\u002Fuploads\u002F2026\u002F09\u002Fthe-gpu-is-not-the-product-future-proof-private-ai-architecture-1790140878812-8hsl39.webp","2026-09-23T01:19:00.000Z",{"id":1507,"slug":1508,"title":1509,"excerpt":1510,"featuredImage":1511,"publishedAt":1512},"363","front-und-backend-entwicklung","Développement front-end et back-end","Le développement front-end et back-end est une partie essentielle du développement web et implique la création d'applications web et de sites web. Le développement front-end se concentre sur l'interface utilisateur, tandis que le développement back-end est responsable de la programmation et de la gestion côté serveur.","\u002Fuploads\u002F2026\u002F03\u002Ffront-und-backend-entwicklung-1774872219531-wyu4i1.webp","2023-04-12T11:11:00.000Z",{"id":1514,"slug":1515,"title":1516,"excerpt":1517,"featuredImage":1518,"publishedAt":1519},"476","mcp-vs-a2a-vs-ucp-vs-ap2-vs-a2ui-the-agent-protocol-stack-explained","MCP vs A2A vs UCP vs AP2 vs A2UI : La pile de protocoles d'agent expliquée","MCP, A2A, UCP, AP2 et A2UI sont souvent présentés comme des standards d'agents concurrents. Ils résolvent principalement des problèmes d'interopérabilité différents. Ce guide associe chaque protocole à la frontière qu'il standardise réellement—et montre comment ils peuvent fonctionner ensemble dans un seul système de production.","\u002Fuploads\u002F2026\u002F09\u002Fmcp-vs-a2a-vs-ucp-vs-ap2-vs-a2ui-the-agent-protocol-stack-explained-1790352625869-2ezle0.webp","2026-09-25T12:09:00.000Z",{"id":1521,"slug":1522,"title":1523,"excerpt":1524,"featuredImage":1525,"publishedAt":1526},"472","why-more-context-can-make-ai-answers-worse","Pourquoi plus de contexte peut rendre les réponses de l'IA pires","Une fenêtre de contexte plus grande ne garantit pas une meilleure réponse. Cet article explique comment la dilution du signal, les preuves contradictoires, l'état obsolète, la sensibilité à la position et la compression avec perte peuvent réduire la fiabilité de l'IA — et présente un test pratique de pression de contexte.","\u002Fuploads\u002F2026\u002F09\u002Fwhy-more-context-can-make-ai-answers-worse-1790351615793-2ntv2v.webp","2026-09-25T11:51:00.000Z",{"id":1528,"slug":1529,"title":1530,"excerpt":1531,"featuredImage":1532,"publishedAt":1533},"467","the-answer-validity-boundary-the-missing-layer-between-relevance-and-reliable-ai-answers","La frontière de validité des réponses : la couche manquante entre la pertinence et les réponses fiables de l'IA","Une source peut être pertinente, faisant autorité et pourtant être erronée pour la question posée. La couche manquante est l'applicabilité : les conditions dans lesquelles une réponse est valable, et les changements qui obligent à la reconsidérer. Cet article présente la Frontière de Validité de la Réponse comme un modèle de conception de source pour les humains, la recherche par IA et les systèmes RAG.","\u002Fuploads\u002F2026\u002F09\u002Fthe-answer-validity-boundary-the-missing-layer-between-relevance-and-reliable-ai-answers-1790272901306-1g5jly.webp","2026-09-24T11:59:00.000Z",{"id":1535,"slug":1536,"title":1537,"excerpt":1538,"featuredImage":1539,"publishedAt":1540},"459","ollama-is-not-the-product-building-production-ready-open-llm-applications","Ollama n'est pas le produit : construire des applications Open-LLM prêtes pour la production","Exécuter un modèle local avec Ollama est facile. Construire une application Open-LLM prête pour la production est plus difficile : cela nécessite du RAG, du contrôle d'accès, de l'abstraction de fournisseur, de l'évaluation, de la journalisation, de la discipline de déploiement et une couche applicative contrôlée autour du modèle.","\u002Fuploads\u002F2026\u002F06\u002Follama-is-not-the-product-building-production-ready-open-llm-applications-1782679361640-h0usqf.webp","2026-06-28T16:39:00.000Z",{"id":1542,"slug":1543,"title":1544,"excerpt":1545,"featuredImage":1546,"publishedAt":1547},"470","what-should-an-ai-agent-remember-forget-recompute-or-retrieve-again","Que devrait mémoriser, oublier, recalculer ou récupérer à nouveau un agent IA ?","Les agents à exécution longue ne devraient pas tout retenir. Cet article propose un modèle de cycle de vie pratique pour décider de ce qui a sa place dans la mémoire durable, de ce qui devrait être récupéré à nouveau, de ce qu'il est plus sûr de recalculer et de ce qui devrait expirer ou être remplacé.","\u002Fuploads\u002F2026\u002F09\u002Fwhat-should-an-ai-agent-remember-forget-recompute-or-retrieve-again-1790351131087-iehz28.webp","2026-09-25T09:43:00.000Z",{"id":1549,"slug":1550,"title":1551,"excerpt":1552,"featuredImage":1553,"publishedAt":1554},"469","rag-failed-but-which-layer-actually-failed-a-diagnostic-method","Échec du RAG — mais quelle couche a réellement échoué ? Une méthode de diagnostic","Lorsqu'une réponse RAG est erronée, blâmer la récupération ou le modèle est trop vague. Cette méthode de diagnostic isole la couverture des sources, la construction de la requête, la récupération, le classement, l'assemblage du contexte, la génération, l'attribution des preuves et la fraîcheur—afin que la défaillance réelle puisse être reproduite et corrigée.","\u002Fuploads\u002F2026\u002F09\u002Frag-failed-but-which-layer-actually-failed-a-diagnostic-method-1790350847177-pior4c.webp","2026-09-24T19:39:00.000Z",{"id":1556,"slug":1557,"title":1558,"excerpt":1559,"featuredImage":1560,"publishedAt":1561},"364","tipps-fuer-die-verbesserung-der-seo-suchmaschinenoptimierung","Maîtriser le flux de travail SEO : Stratégies d'optimisation essentielles pour la croissance organique","Un flux de travail SEO structuré est crucial pour une croissance organique durable. Découvrez les dix stratégies fondamentales, de la recherche de mots-clés et l'optimisation technique à la qualité du contenu et l'analyse des performances.","\u002Fuploads\u002F2026\u002F03\u002Ftipps-fuer-die-verbesserung-der-seo-suchmaschinenoptimierung-1774866098131-hwkzrg.webp","2024-01-26T06:35:00.000Z","fallback",[],[]]