Agent Platform Memory Bank

Agent Platform Memory Bank vous permet de générer dynamiquement des souvenirs à long terme en fonction des 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 ses 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 champ d'application, Memory Bank gère une collection de souvenirs isolée. Chaque souvenir est une information indépendante et autonome qui peut être utilisée pour étendre 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."
}

Memory Bank 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 souvenirs : extrayez uniquement les informations les plus pertinentes des données sources pour les conserver en tant que souvenirs.

    • Consolidation de souvenirs : consolidez les informations nouvellement extraites avec les souvenirs existants, ce qui permet aux souvenirs d’évoluer à mesure que de nouvelles informations sont ingérées. Vous pouvez également consolider des souvenirs pré-extraits (comme des informations que votre agent ou un humain dans la boucle considère pertinentes) avec des 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 la mémoire en fonction des règles de traitement par lot que vous configurez.

    • Extraction personnalisable : configurez les informations que Memory Bank considère comme pertinentes en fournissant des sujets spécifiques et quelques exemples.

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

  • Stockage et récupération gérés : bénéficiez 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é : récupérez des souvenirs à l'aide de la recherche de similarité, qui est limitée à une identité spécifique.

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

    • Révisions de la mémoire : créez et gérez automatiquement des révisions de la mémoire, ce qui vous permet 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 qui peuvent lire ou écrire les souvenirs de champs d'application spécifiques.

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

    • Intégration d'Agent Development Kit (ADK) : orchestrez les appels de 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 : encapsulez 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 contextuelles avec état dans lesquelles l'agent se souvient, apprend et s'adapte au fil du temps. Memory Bank est idéal pour les applications qui nécessitent :

  • Personnalisation à long terme : créez des expériences adaptées à chaque utilisateur. Memory Bank limite 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 sur 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 redemander.
  • Extraction de connaissances basée sur un LLM : utilisez cette fonctionnalité lorsque vous devez identifier et conserver automatiquement les informations les plus importantes des conversations ou du contenu multimodal sans intervention manuelle.

    • Exemple : un agent de recherche qui lit une série d'articles techniques et crée un souvenir consolidé des principales conclusions, méthodologies et conclusions.
  • Contexte dynamique et évolutif : utilisez Memory Bank lorsque vous avez besoin d'une source de connaissances qui n'est pas statique. Memory Bank est conçu pour intégrer en continu de nouvelles informations de votre agent, en affinant et en mettant à jour les souvenirs stockés à mesure que de nouvelles données deviennent disponibles. Cela garantit que le contexte sur lequel votre agent s'appuie est toujours à jour et précis. Alors que RAG dispose d'une base de connaissances externe statique, 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 Agent Platform Sessions pour générer des souvenirs à partir de sessions stockées en procédant comme suit :

  1. (Sessions) CreateSession : au début de chaque conversation, créez une session. L'historique des conversations utilisé par l'agent est limité à cette session. Une session contient la séquence chronologique des messages et des 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 mappés à cet utilisateur.

  2. (Sessions) AppendEvent : lorsque l'utilisateur interagit avec l'agent, les événements (tels que les messages utilisateur, les réponses de l'agent, les actions d'outil) sont importés dans 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, l'agent récupère l'historique des conversations.

  4. (Memory Bank) Générez ou créez des souvenirs :

    • GenerateMemories: à un intervalle spécifié (par exemple, à la fin de chaque session ou à la fin de chaque tour), l'agent peut déclencher la génération de souvenirs à l'aide 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 Memory Bank. Par exemple, l'agent peut décider quand un souvenir doit être écrit 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 informations extraites.

  5. (Memory Bank) RetrieveMemories : lorsque l'utilisateur interagit avec votre agent, l'agent peut récupérer les souvenirs enregistrés à son sujet. Vous pouvez récupérer tous les souvenirs (récupération simple) ou uniquement les souvenirs les plus pertinents 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 prompt.

Guides de démarrage rapide

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

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

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

Pour atténuer le risque d'empoisonnement de la mémoire, vous pouvez procéder comme suit :

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

  • Tests contradictoires : testez de manière proactive votre application LLM pour détecter les failles d'injection de prompt en simulant des attaques. On parle généralement de "red teaming".

  • Exécution en bac à sable : si l'agent a la possibilité d'exécuter 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 une vérification humaine.

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

Étape suivante

Guide de démarrage rapide

Commencez à utiliser l'API Memory Bank pour gérer les souvenirs à long terme.

Guide de démarrage rapide

Commencez à utiliser Agent Development Kit (ADK).

Guide

Découvrez comment configurer Memory Bank.