Considérations relatives à la sécurité

Portée : Cet article présente les considérations relatives à la sécurité concernant la trousse SDK Python pour mémoire d'agent. Il s'applique aux applications utilisant soit les fonctions de mémoire active du SDK, soit la couche de stockage uniquement.

Pourquoi cela est important : La mémoire de l'agent peut conserver le contenu de l'unité d'exécution et les enregistrements de mémoire dans Oracle AI Database et, lorsque les fonctions soutenues par le LLM sont activées, envoyer du contenu aux points d'extrémité de modèle configurés pour la récapitulation, l'extraction de mémoire ou les intégrations. Le déploiement sécurisé dépend donc d'une gestion minutieuse des données d'application, de la portée de l'extraction, de l'accès à la base de données, des points d'extrémité des modèles externes et des politiques de conservation.

Considérations relatives au traitement de la mémoire soutenue par le LLM

La mémoire de l'agent prend en charge les fonctions de mémoire active telles que la récapitulation des threads et l'extraction automatique de la mémoire. Lorsque ces fonctions sont activées, la trousse SDK peut envoyer des messages récents, des sommaires d'unité d'exécution, des mémoires récupérées ou rechercher du texte vers le LLM configuré ou le point d'extrémité d'intégration.

Note : Envoyez uniquement du contenu à la mémoire de l'agent approprié pour le point d'extrémité de modèle configuré et vos politiques de déploiement. Si la mémoire active est activée pour les données qui semblent inclure des clés secrètes, des données d'identification ou des données sensibles inutiles, réduisez ou expurgez ce contenu avant que les messages n'entrent dans le pipeline de mémoire. Traitez les mémoires extraites, les résumés, les cartes de contexte et d'autres textes dérivés du modèle comme une sortie non sécurisée qui doit être examinée et gérée en toute sécurité par l'application d'intégration.

Avertissement : Le texte dérivé du modèle peut devenir un état de mémoire persistante. Lorsque les fonctions d'extraction automatique, de récapitulation ou de carte de contexte sont activées, un sommaire, une mémoire extraite ou un enregistrement extrait peut être inséré par la trousse SDK dans des invites ultérieures, telles que l'extraction de mémoire, la récapitulation, la carte de contexte ou les invites d'agent, avant que l'application puisse vérifier cette valeur intermédiaire spécifique. Traitez cela comme un flux de données de LLM non approuvé normal : vérifiez et validez les sorties consommées par votre application et ne laissez pas le contenu dérivé de la mémoire autoriser les actions privilégiées ou la politique de contournement.

Suivez ces recommandations lors de l'utilisation des fonctions de mémoire active :

Considérations relatives à la persistance et à la réduction des données

La mémoire de l'agent est conçue pour conserver les messages, les mémoires, les métadonnées et les intégrations dans Oracle AI Database lorsque le magasin soutenu par la base de données est utilisé. Cela permet une récupération durable et une mémoire intersessions, mais cela signifie également que l'application doit planifier les données à conserver.

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

Considérations relatives à la portée de l'extraction et au contrôle d'accès

La mémoire de l'agent utilise les valeurs user_id, agent_id et thread_id fournies par l'appelant pour définir la portée de l'extraction. Il s'agit d'un modèle de filtrage puissant, mais il ne devrait pas être le seul contrôle sur lequel votre application s'appuie pour décider comment le contenu extrait est utilisé ou affiché.

Par défaut, l'extraction avec étendue d'unité d'exécution utilise une correspondance exacte pour user_id et agent_id et une correspondance plus large pour thread_id afin que les résultats pertinents puissent couvrir des unités d'exécution passées pour la même paire utilisateur-agent. Les appels OracleAgentMemory.search() et search_async() de niveau supérieur nécessitent également une définition explicite de la portée de l'utilisateur et une mise en correspondance exacte des utilisateurs. Ils rejettent l'étendue d'utilisateur omise et exact_user_match=False, de sorte que l'API du client public ne recherche pas accidentellement plusieurs utilisateurs. La transmission de user_id=None n'est autorisée qu'avec une correspondance d'utilisateur exacte et ne cible que les enregistrements sans portée.

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 un autre code dorsal approuvé, et non directement par les utilisateurs finaux. Les API de mémoire brute ne sont pas une limite de sécurité orientée utilisateur final et n'effectuent pas d'authentification ou d'autorisation de l'utilisateur final par elles-mêmes. L'ensemble fait confiance à l'appelant pour fournir la portée user_id, agent_id, thread_id et l'extraction correctes pour chaque opération.

Note : L'application d'intégration est responsable de l'authentification de l'utilisateur final, de l'autorisation d'accès et de la détermination du user_id et de la portée corrects avant d'appeler les API de mémoire de l'agent. Un appelant fourni user_id est une valeur de portée, et non une preuve d'identité.

Utilisez les exercices suivants lors de l'intégration de la trousse SDK dans une application agéntique :

Considérations relatives à la journalisation et aux diagnostics

La mémoire de l'agent utilise la journalisation Python standard et ne configure pas les programmes de traitement ou les niveaux de journal des applications pour l'application d'intégration. Si l'application d'intégration active la journalisation DEBUG pour la trousse SDK, les journaux de débogage peuvent inclure des détails de dépannage supplémentaires. Conserver les déploiements de production à un niveau autre que DEBUG; la journalisation DEBUG est destinée uniquement aux diagnostics de développement ou de soutien contrôlés et ne convient pas à la collecte des journaux de production.

Considérations relatives à l'accès aux bases de données, à la gestion des schémas et aux clés secrètes

La mémoire de l'agent utilise une connexion ou une réserve Oracle AI Database fournie par l'appelant. L'ensemble ne crée ni ne gère lui-même les données d'identification de la base de données. Il ne crée pas, ne négocie pas ou ne met pas à niveau le chiffrement du réseau de base de données au nom de l'appelant.

Note :

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

Considérations relatives à la communication réseau et aux points d'extrémité 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. La trousse SDK transmet les invites et les paramètres de demande au moyen du chemin du client configuré, mais l'application et le déploiement environnants restent responsables de la sécurité de ces connexions.

Nous recommandons ce qui suit :

Considérations relatives aux vecteurs d'épuisement des ressources

Les flux de travail de mémoire peuvent augmenter l'utilisation de la base de données, l'intégration du trafic et la consommation des 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 ces contrôles dans le cadre de votre durcissement de production :