Présentation de la banque de mémoire Vertex AI Agent Engine

La banque de mémoire Vertex AI Agent Engine vous permet de générer de manière dynamique des souvenirs à long terme en fonction des conversations des utilisateurs avec votre agent. Les souvenirs à long terme sont des informations personnalisées auxquelles un utilisateur peut accéder au fil des sessions. L'agent peut utiliser les infos mémorisées pour personnaliser les réponses à l'utilisateur et assurer la continuité entre les sessions.

Présentation

La banque de mémoire 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, la banque de mémoire 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"
  },
  "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 souvenirs : n'extrait que les informations les plus pertinentes des données sources pour les conserver sous forme de souvenirs.

    • Consolidation de la mémoire : 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 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 : les souvenirs peuvent être générés en arrière-plan, de sorte que votre agent n'a pas à attendre la fin de la génération des souvenirs.

    • Extraction personnalisable : configurez les informations que la Banque de données 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 Vertex AI Agent Engine Runtime, votre environnement local ou d'autres options de déploiement.

    • Recherche de similarités : récupérez des souvenirs à 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 souvenirs insérés ou générés.

  • Intégration de l'agent : connectez la banque de mémoire à 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) : 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 la banque de mémoire.

    • 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 sans état des agents 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éal pour les applications qui nécessitent :

  • Personnalisation à long terme : créez des expériences adaptées à chaque utilisateur. La banque de mémoire 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 à lui poser à nouveau les mêmes questions.
  • 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 de documents techniques et crée une mémoire consolidée des principales conclusions, méthodologies et conclusions.
  • Contexte dynamique et évolutif : utilisez la banque de mémoire lorsque vous avez besoin d'une source de connaissances non statique. La banque de mémoire est conçue 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 la 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 de la banque de mémoire Vertex AI Agent Engine

Vous pouvez utiliser la banque de mémoire avec les sessions Vertex AI Agent Engine pour générer des souvenirs à partir des sessions stockées en procédant comme suit :

  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 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 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 de l'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érez ou créez 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 d'être disponibles pour les sessions actuelles ou futures.

    • CreateMemory : votre agent peut écrire des souvenirs directement dans la banque de mémoire. 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. (Banque de mémoire) 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 tous les souvenirs (récupération simple) ou uniquement ceux qui sont 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 requête.

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 termes de sécurité décrites dans Responsabilité partagée de Vertex AI, tenez compte du risque d'injection d'invite 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 utiliser ces informations fausses ou malveillantes lors de futures sessions.

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

  • Model Armor : utilisez Model Armor pour inspecter les requêtes envoyées à la banque de mémoire ou depuis votre agent.

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

  • Exécution en 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 contrôle des accès strict et un examen humain.

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

Étapes suivantes