Agent Platform Memory Bank

Agent Platform Memory Bank vous permet de générer de manière dynamique des souvenirs à long terme basés sur les conversations entre l'utilisateur et votre agent. Ces souvenirs sont des informations personnalisées qui persistent sur plusieurs sessions, ce qui permet à votre agent d'adapter et de personnaliser les réponses en fonction du contexte et de la continuité.

Fonctionnalités

Memory Bank vous aide à gérer les souvenirs afin de personnaliser la façon dont votre agent interagit avec les utilisateurs et de gérer la fenêtre de contexte. Pour chaque portée, Memory Bank conserve une collection isolée de souvenirs. Chaque mémoire est une information indépendante et autonome qui peut être utilisée pour élargir le contexte disponible pour votre agent. Exemple :

{
  "name": "projects/.../locations/.../reasoningEngines/.../memories/...",
  "scope": {
    "agent_name": "My agent",
    "user": "my user ID"
  },
  "fact": "I use Memory Bank to manage my memories."
}

La Banque de souvenirs inclut les fonctionnalités suivantes :

  • Génération de souvenirs : créez, affinez et gérez des souvenirs à l'aide d'un grand modèle de langage (LLM).

    • Extraction de la mémoire : n'extraire que les informations les plus pertinentes des données sources pour les conserver en tant que souvenirs.

    • Consolidation de la mémoire : consolidez les informations nouvellement extraites avec les souvenirs existants, ce qui permet à la mémoire d'évoluer à mesure que de nouvelles informations sont ingérées. Vous pouvez également consolider les souvenirs préextraits (comme les informations que votre agent ou un humain en boucle considèrent comme importantes) avec les souvenirs existants.

    • Génération asynchrone : générez des souvenirs en arrière-plan, afin que votre agent n'ait pas à attendre la fin de la génération de souvenirs.

    • Ingestion continue d'événements : diffusez et gérez les événements de conversation avec l'ingestion d'événements, qui déclenche automatiquement la génération de mémoire en fonction des règles de regroupement que vous configurez.

    • Extraction personnalisable : configurez les informations que Memory Bank considère comme pertinentes en fournissant des thèmes spécifiques et des exemples few-shot.

    • Compréhension multimodale : traiter les informations multimodales pour générer et conserver des insights textuels.

  • Stockage et récupération gérés : profitez d'un magasin de mémoire entièrement géré, persistant et accessible.

    • Isolation des données entre les identités : la consolidation et la récupération de la mémoire sont isolées pour une identité spécifique.

    • Stockage persistant et accessible : stockez des souvenirs accessibles depuis plusieurs environnements, y compris Agent Runtime, votre environnement local ou d'autres options de déploiement.

    • Recherche de similarités : récupérez des informations mémorisées à l'aide de la recherche de similarités limitée à une identité spécifique.

    • Expiration automatique : définissez une valeur TTL (Time To Live) pour les souvenirs afin de vous assurer que les informations obsolètes sont automatiquement supprimées. Configurez votre instance Memory Bank pour qu'une valeur TTL soit automatiquement appliquée aux entrées de mémoire insérées ou générées.

    • Révisions de la mémoire : créez et gérez automatiquement des révisions de la mémoire qui vous permettent d'inspecter la façon dont les souvenirs se transforment à mesure que de nouvelles informations sont ingérées.

    • Autorisations restrictives : utilisez des conditions IAM pour limiter les comptes principaux pouvant lire ou écrire les souvenirs de certains champs d'application.

  • Intégration de l'agent : connectez Memory Bank à votre agent pour qu'il puisse orchestrer les appels afin de générer et de récupérer des souvenirs.

    • Intégration d'Agent Development Kit (ADK) : orchestrer les appels depuis votre agent basé sur ADK à l'aide des outils ADK intégrés et de VertexAiMemoryBankService pour lire et écrire dans Memory Bank.

    • Autres frameworks : enveloppez votre code Memory Bank dans des outils et des rappels pour orchestrer la génération et la récupération de la mémoire.

Cas d'utilisation

Vous pouvez utiliser Memory Bank pour transformer les interactions d'agent sans état en expériences avec état et contextuelles, dans lesquelles l'agent se souvient, apprend et s'adapte au fil du temps. Memory Bank est idéale pour les applications qui nécessitent :

  • Personnalisation à long terme : créez des expériences adaptées à chaque utilisateur. Memory Bank associe les souvenirs à une identité spécifique, ce qui permet à un agent de se souvenir des préférences, de l'historique et des informations clés d'un utilisateur au fil de plusieurs sessions.

    • Exemple : un agent du service client qui se souvient des informations clés des demandes d'assistance précédentes d'un utilisateur et de ses préférences concernant les produits, sans avoir à les lui redemander.
  • Extraction de connaissances basée sur les LLM : à utiliser lorsque vous devez identifier et conserver automatiquement les informations les plus importantes issues de conversations ou de contenus multimodaux, sans intervention manuelle.

    • Exemple : un agent de recherche qui lit une série d'articles techniques et crée une mémoire consolidée des principales conclusions, méthodologies et conclusions.
  • Contexte dynamique et évolutif : utilisez Memory Bank lorsque vous avez besoin d'une source de connaissances non statique. Memory Bank est conçu pour intégrer en continu de nouvelles informations provenant de votre agent, en affinant et en mettant à jour les souvenirs stockés à mesure que de nouvelles données sont disponibles. Cela permet de s'assurer que le contexte sur lequel s'appuie votre agent est toujours à jour et précis. Alors que le RAG dispose d'une base de connaissances externe et statique, la Memory Bank peut évoluer en fonction du contexte fourni par l'agent.

Exemple d'utilisation

Présentation conceptuelle d'Agent Platform Memory Bank

Vous pouvez utiliser Memory Bank avec les sessions Agent Platform pour générer des souvenirs à partir des sessions stockées en suivant la procédure suivante :

  1. (Sessions) CreateSession : créez une session au début de chaque conversation. L'historique des conversations utilisé par l'agent est limité à cette session. Une session contient la séquence chronologique de messages et d'actions (SessionEvents) pour une interaction entre un utilisateur et votre agent. Toutes les sessions doivent avoir un ID utilisateur. Les souvenirs extraits (voir GenerateMemories) pour cette session sont associés à cet utilisateur.

  2. (Sessions) AppendEvent : lorsque l'utilisateur interagit avec l'agent, les événements (tels que les messages de l'utilisateur, les réponses de l'agent et les actions d'outil) sont importés dans les sessions. Les événements conservent l'historique des conversations et créent un enregistrement de la conversation qui peut être utilisé pour générer des souvenirs.

  3. (Sessions) ListEvents : lorsque l'utilisateur interagit avec l'agent, celui-ci récupère l'historique des conversations.

  4. (Memory Bank) Générer ou créer des souvenirs :

    • GenerateMemories : à un intervalle spécifié (par exemple, à la fin de chaque session ou de chaque tour), l'agent peut déclencher la génération de souvenirs à partir de l'historique des conversations. Les informations sur l'utilisateur sont automatiquement extraites de l'historique des conversations afin qu'elles soient disponibles pour les sessions actuelles ou futures.

    • CreateMemory : votre agent peut écrire des souvenirs directement dans la Memory Bank. Par exemple, l'agent peut décider quand une mémoire doit être écrite et quelles informations doivent être enregistrées (mémoire en tant qu'outil). Utilisez CreateMemory lorsque vous souhaitez que votre agent ait plus de contrôle sur les faits extraits.

  5. (Memory Bank) RetrieveMemories : lorsque l'utilisateur interagit avec votre agent, celui-ci peut récupérer les souvenirs enregistrés à son sujet. Vous pouvez récupérer toutes les informations mémorisées (récupération simple) ou uniquement celles qui sont les plus pertinentes pour la conversation en cours (récupération par recherche de similarité). Vous pouvez ensuite insérer les souvenirs récupérés dans votre requête.

Guides de démarrage rapide

Pour commencer à utiliser Memory Bank, suivez les guides de démarrage rapide suivants :

Gouvernance de la banque de mémoire

Cette section décrit les considérations relatives à la gouvernance des données lorsque vous utilisez Memory Bank, comme les responsabilités en matière de sécurité et la résidence des données.

Risques de sécurité liés à l'injection de prompt

En plus des responsabilités en matière de sécurité décrites dans la section Responsabilité partagée d'Agent Platform, tenez compte du risque d'injection de prompt et d'empoisonnement de la mémoire qui peuvent affecter votre agent lorsque vous utilisez des mémoires à long terme. L'empoisonnement de la mémoire se produit lorsque de fausses informations sont stockées dans la banque de mémoire. L'agent peut ensuite fonctionner sur ces informations fausses ou malveillantes lors de sessions ultérieures.

Pour limiter le risque d'empoisonnement de la mémoire, vous pouvez effectuer les opérations suivantes :

  • Model Armor : utilisez Model Armor pour inspecter les prompts envoyés à la Memory Bank ou depuis votre agent.

  • Tests antagonistes : testez de manière proactive votre application LLM pour détecter les failles d'injection d'invite en simulant des attaques. C'est ce que l'on appelle généralement le "red teaming".

  • Exécution dans un bac à sable : si l'agent est capable d'exécuter des actions ou d'interagir avec des systèmes externes ou critiques, ces actions doivent être effectuées dans un environnement de bac à sable avec un contrôle des accès strict et un examen humain.

Pour en savoir plus, consultez L'approche de Google pour des agents d'IA sécurisés.

Résidence des données

Pour respecter les cadres réglementaires tels que le Règlement général sur la protection des données (RGPD) et les exigences régionales en matière de souveraineté des données, vous devez vous assurer que les souvenirs générés et stockés dans la banque de souvenirs respectent des limites strictes en matière de résidence et de ségrégation des données.

Bien que Memory Bank fournisse une isolation des données basée sur le champ d'application pour les identités d'une instance, vous devez appliquer des stratégies de contrôle des accès basé sur les rôles (RBAC) et Identity and Access Management pour faire respecter les limites régionales et éviter la contamination transfrontalière de la mémoire entre les différentes instances régionales.

Déploiement d'instances régionales et résidence des données

Lorsque vous créez une instance Memory Bank, choisissez un emplacement régional ou multirégional (par exemple, eu pour l'Union européenne ou us pour les États-Unis) afin de vous assurer que les données au repos restent dans cette limite géographique spécifique.

L'emplacement de traitement du machine learning (ML) dépend de la disponibilité régionale du modèle sous-jacent. Si un point de terminaison régional n'est pas disponible pour le modèle ou la région que vous avez sélectionnés (par exemple, les modèles Gemini 3 ou les régions uniques d'Asie), les points de terminaison Gemini mondiaux sont utilisés pour le traitement ML. Pour en savoir plus, consultez Résidence des données et Points de terminaison multirégionaux et mondiaux.

Éviter la contamination de la mémoire transfrontalière

La contamination transfrontalière se produit lorsqu'un environnement d'exécution d'agent, une identité d'agent, un compte de service ou une application fonctionnant dans une juridiction (par exemple, les États-Unis) écrit ou récupère des souvenirs à partir d'une instance Memory Bank située dans une autre juridiction (par exemple, l'UE).

Pour éviter toute contamination transfrontalière et assurer la conformité réglementaire, vous pouvez configurer les contrôles IAM suivants :

  • Identités d'agent ou comptes de service régionaux dédiés : créez des identités d'agent ou des comptes de service distincts et spécifiques à chaque région (par exemple, agent-us@PROJECT_ID. pour les charges de travail aux États-Unis et agent-eu@PROJECT_ID. pour les charges de travail dans l'UE). Assurez-vous que les identités et les comptes de service des agents régionaux ne se voient accorder des rôles IAM que sur les instances Memory Bank résidant dans la même juridiction géographique, ce qui empêche les runtimes régionaux d'accéder aux instances transfrontalières.

    • Rôles spécialisés avec le moins de privilèges possible : n'accordez aux principaux que les rôles Memory Bank spécifiques requis pour leur charge de travail (par exemple, roles/aiplatform.memoryViewer pour l'accès en lecture seule ou roles/aiplatform.memoryEditor pour l'accès en écriture et à la génération) liés à la ressource régionale appropriée. Pour en savoir plus sur les rôles disponibles, consultez Rôles IAM spécialisés pour les banques de mémoire.
  • Règles d'administration : appliquez des restrictions de localisation au niveau de l'organisation, du dossier ou du projet à l'aide de la contrainte de règle d'administration gcp.resourceLocations. Cela limite la création et l'utilisation des ressources Memory Bank aux régions conformes approuvées, et empêche l'utilisation non autorisée des points de terminaison mondiaux.

Pour en savoir plus sur l'implémentation de stratégies d'accès conditionnel, consultez Contrôler l'accès à Memory Bank de l'Agent Platform avec des conditions IAM.

Étapes suivantes

Guide de démarrage rapide

Faites vos premiers pas avec l'API Memory Bank pour gérer les souvenirs à long terme.

Guide de démarrage rapide

Commencez à utiliser l'Agent Development Kit (ADK).

Guide

Découvrez comment configurer Memory Bank.