Eléments à prendre en compte pour la sécurité

Portée : cet article traite des considérations de sécurité liées au kit SDK Python de mémoire d'agent. Elle s'applique aux applications qui utilisent les fonctionnalités de mémoire active du kit SDK ou la couche de stockage uniquement.

Pourquoi est-ce important ? La mémoire d'agent peut rendre persistants les enregistrements de contenu et de mémoire de thread dans Oracle AI Database et, lorsque les fonctionnalités soutenues par le LLM sont activées, envoyer du contenu aux adresses de modèle configurées pour l'agrégation, l'extraction de mémoire ou les incorporations. Le déploiement sécurisé dépend donc d'un traitement minutieux des données d'application, de la portée de l'extraction, de l'accès à la base de données, des adresses de modèle externe et des stratégies de conservation.

Remarques concernant le traitement de la mémoire sauvegardée par LLM

La mémoire de l'agent prend en charge des fonctions de mémoire active telles que la synthèse des threads et l'extraction automatique de la mémoire. Lorsque ces fonctionnalités sont activées, le kit SDK peut envoyer des messages récents, des récapitulatifs de threads, des mémoires extraites ou du texte de recherche au LLM configuré ou à l'adresse d'intégration.

Remarque : envoyez uniquement le contenu à la mémoire d'agent approprié à l'adresse de modèle configurée et aux stratégies de déploiement. Validez et réduisez le contenu avant qu'il n'entre dans le pipeline de mémoire, et évitez d'inclure des clés secrètes, des informations d'identification ou des données sensibles inutiles dans les messages ou les mémoires. Traiter les mémoires extraites, les résumés, les cartes de contexte et tout autre texte dérivé du modèle comme une sortie non fiable qui doit être examinée et gérée en toute sécurité par l'application d'intégration.

Suivez les recommandations suivantes lors de l'utilisation des fonctionnalités de mémoire active :

Considérations concernant la persistance et la minimisation des données

La mémoire d'agent est conçue pour rendre persistants les messages, les mémoires, les métadonnées et les incorporations dans Oracle AI Database lorsque l'emplacement de stockage sauvegardé par la base de données est utilisé. Cela permet une extraction durable et une mémoire intersession, mais cela signifie également que l'application doit planifier les données à conserver.

Les conseils suivants vous aident à aligner les déploiements sur les pratiques de gestion des données sécurisées :

Remarques concernant la portée de l'extraction et le contrôle d'accès

La mémoire d'agent utilise les valeurs user_id, agent_id et thread_id fournies par l'appelant pour l'extraction de la portée. Il s'agit d'un modèle de filtrage puissant, mais il ne doit pas être le seul contrôle sur lequel repose votre application lorsque vous décidez de la façon dont le contenu extrait est utilisé ou affiché.

Par défaut, l'extraction de niveau thread utilise une correspondance exacte pour user_id et agent_id, ainsi qu'une correspondance plus large pour thread_id afin que les résultats pertinents puissent couvrir les threads passés pour la même paire utilisateur-agent. Les appels de niveau supérieur OracleAgentMemory.search() et search_async() nécessitent également une mise en correspondance concrète entre user_id et l'utilisateur exact. Ils rejettent la portée utilisateur omise, user_id=None et exact_user_match=False, de sorte que l'API client publique ne recherche pas accidentellement plusieurs utilisateurs.

Utilisez les exercices suivants lors de la conception de l'extraction :

Considérations relatives à l'intégration des applications et à la confiance des appelants

La mémoire d'agent est destinée à être appelée par l'application d'intégration ou par un autre code back-end sécurisé, et non directement par les utilisateurs finaux. Il ne s'agit pas d'une limite de sécurité orientée utilisateur final, et il n'effectue pas d'authentification ou d'autorisation de l'utilisateur final par lui-même. Le package fait confiance à l'appelant pour fournir la portée d'extraction user_id, agent_id, thread_id et la portée d'extraction correcte pour chaque opération.

Remarque : l'application d'intégration est responsable de l'authentification de l'utilisateur final, de l'autorisation de l'accès et de la dérivation du paramètre user_id et de la portée appropriés avant d'appeler les API de mémoire d'agent. Une valeur user_id fournie par l'appelant est une valeur de portée et non une preuve d'identité.

Utilisez les exercices suivants lors de l'intégration du kit SDK dans une application agénétique :

Remarques concernant l'accès à la base de données, la gestion des schémas et les clés secrètes

La mémoire de l'agent utilise une connexion ou un pool Oracle AI Database fourni par l'appelant. Le package ne crée ni ne gère les informations d'identification et de connexion à la base de données. Il ne crée, ne négocie ni ne met à niveau le cryptage réseau de base de données pour le compte de l'appelant.

Remarque :

Les pratiques de déploiement suivantes sont recommandées :

Remarques concernant la communication réseau et les adresses externes

La mémoire de l'agent peut communiquer avec des services externes lorsque le déploiement configure un LLM distant ou des fournisseurs d'intégration. Le kit SDK transmet les invites et les paramètres de demande via le chemin du client configuré, mais l'application et le déploiement environnants restent responsables de la sécurisation de ces connexions.

Nous recommandons de suivre les points suivants :

Considérations concernant les vecteurs d'épuisement des ressources

Les workflows de mémoire peuvent augmenter l'utilisation de la base de données, l'intégration du trafic et la consommation de jetons LLM au fil du temps. Cela est vrai à la fois pour une utilisation excessive malveillante et pour des erreurs de mise en œuvre innocentes telles que des messages surdimensionnés ou des modèles de récupération trop larges.

Utilisez les commandes suivantes dans le cadre de votre durcissement de production :