Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utiliser des sessions isolées pour les agents
Amazon Bedrock AgentCore Runtime vous permet d'isoler chaque session utilisateur et de réutiliser en toute sécurité le contexte entre plusieurs appels au cours d'une session utilisateur. L'isolation des sessions est essentielle pour les charges de travail des agents d'IA en raison de leurs caractéristiques opérationnelles uniques :
-
Séparation complète de l'environnement d'exécution : chaque session utilisateur dans AgentCore Runtime reçoit sa propre microVM dédiée avec des ressources de calcul, de mémoire et de système de fichiers isolées. Cela empêche l'agent d'un utilisateur d'accéder aux données d'un autre utilisateur. Une fois la session terminée, l'intégralité de la microVM est arrêtée et la mémoire est nettoyée pour supprimer toutes les données de session, éliminant ainsi les risques de contamination entre les sessions.
-
Processus de raisonnement avec état : contrairement aux fonctions sans état, les agents d'IA conservent un état contextuel complexe tout au long de leur cycle d'exécution, au-delà du simple historique des messages pour les conversations à plusieurs tours. AgentCore Runtime préserve cet état en toute sécurité au sein d'une session tout en garantissant une isolation complète entre les différents utilisateurs, permettant ainsi des expériences personnalisées aux agents sans compromettre les limites des données.
-
Opérations sur les outils privilégiés : les agents d'IA effectuent des opérations privilégiées pour le compte des utilisateurs via des outils intégrés accédant à diverses ressources. AgentCore Le modèle d'isolation de Runtime garantit que les opérations de ces outils maintiennent des contextes de sécurité appropriés et empêche le partage des informations d'identification ou l'augmentation des autorisations entre les différentes sessions utilisateur.
-
Sécurité déterministe pour les processus non déterministes : le comportement des agents d'IA peut être non déterministe en raison de la nature probabiliste des modèles de base. AgentCore Runtime fournit des limites d'isolation cohérentes et déterministes quels que soient les modèles d'exécution des agents, fournissant les propriétés de sécurité prévisibles requises pour les déploiements en entreprise.
Note
AgentCore n'applique pas les mappages de session à utilisateur : votre backend client doit maintenir la relation entre les utilisateurs et leurs identifiants de session. En outre, votre backend client doit implémenter une logique de gestion du cycle de vie d'utilisateur à session, telle que le nombre maximum de sessions par utilisateur. Pour obtenir des conseils complets sur l'isolation des sessions, consultez la section Meilleures pratiques en matière de sécurité pour AgentCore Runtime.
Rubriques
Comprendre le contexte éphémère
Par défaut, le calcul (microVM) associé à une session est éphémère. Toutes les données stockées en mémoire ou écrites sur disque ne sont conservées que pendant le cycle de vie du calcul. Cela inclut l'historique des conversations, les préférences de l'utilisateur, les résultats de calcul intermédiaires et toute autre information d'état conservée par votre agent.
Pour conserver les données du système de fichiers d'un stop/resume cycle de session à l'autre, configurez le stockage de session, un répertoire persistant qui survit à la fin du calcul. Consultez la section Configurations du système de fichiers pour AgentCore Runtime.
Pour les données structurées qui doivent être conservées au-delà de la durée de vie de la session (telles que l'historique des conversations des utilisateurs, les préférences apprises ou les informations importantes), utilisez AgentCore Memory. Ce service fournit un stockage persistant spécialement conçu pour les charges de travail des agents, avec des capacités de mémoire à court et à long terme.
Conversations étendues et flux de travail en plusieurs étapes
Contrairement aux fonctions sans serveur traditionnelles qui se terminent après chaque requête, elles prennent AgentCore en charge des sessions isolées soutenues par des calculs éphémères. Les sessions durent jusqu'à 8 heures pour chaque cycle de vie sur les micromachines virtuelles, ou jusqu'à 14 jours sur les instances. Grâce à ces sessions, vous pouvez créer des flux de travail agentiques en plusieurs étapes, en effectuant plusieurs appels vers le même environnement, chaque appel s'appuyant sur le contexte des interactions précédentes. Vous pouvez utiliser les deux InvokeAgentRuntime pour le raisonnement des agents et InvokeAgentRuntimeCommand pour l'exécution déterministe de commandes shell au cours de la même session.
AgentCore Cycle de vie des sessions d'exécution
Création de session
Une nouvelle session est créée lors du premier appel avec un runtime unique SessionId fourni par votre application. AgentCore Runtime fournit un environnement d'exécution dédié (microVM) pour chaque session. Le contexte est préservé entre les appels à la même session. Les deux InvokeAgentRuntime InvokeAgentRuntimeCommand fonctionnent sur la même session : une commande voit le même conteneur, le même système de fichiers et le même environnement que l'agent.
États de session
L'état de la session est déterminé par le cycle de vie du calcul et peut être l'un des suivants :
-
Actif : traite une demande de synchronisation, exécute une commande ou effectue des tâches en arrière-plan. L'activité d'invocation de synchronisation et d'exécution de commandes est automatiquement suivie en fonction des appels à une session d'exécution. Les tâches en arrière-plan sont communiquées par le code de l'agent en répondant par le statut HealthyBusy « » dans les pings.
-
Inactif : lorsque vous ne traitez aucune demande ou tâche en arrière-plan. Le traitement de la session est terminé mais reste disponible pour de futures invocations.
-
Arrêté : le calcul (microVM) provisionné pour la session a été arrêté et la session est arrêtée. Cela peut être dû à une inactivité (15 minutes par défaut), à l'atteinte de la durée de vie maximale du calcul (8 heures par défaut), à un arrêt explicite en invoquant l'StopRuntimeSessionAPI ou si le calcul est considéré comme défectueux sur la base de contrôles de santé. La session repasse à Active lors de l'appel suivant et un nouveau calcul est provisionné, avec la même configuration de cycle de vie (c'est-à-dire idle RuntimeSessionTimeout et MaxLifetime qui peut durer jusqu'à 8 heures supplémentaires). La session elle-même reste valide jusqu'à ce que l'ARN AgentCore d'exécution soit supprimé. Si le moteur d'exécution est configuré avec un stockage de session, les données du système de fichiers au niveau du chemin de montage configuré persistent d'un stop/resume cycle à l'autre. Consultez la section Configurations du système de fichiers pour AgentCore Runtime.
Note
Pendant que le service fournit ou supprime une session, une deuxième opération ciblant cette même session renvoie un HTTP 409 RetryableConflictException () Session operation in progress, please retry réessayable. Cette fenêtre est courte. Already-running les sessions ne sont pas affectées. Réessayez avec un court délai exponentiel.
Comment utiliser les sessions
Pour utiliser les sessions de manière efficace :
-
Générez un identifiant de session unique pour chaque utilisateur ou conversation d'au moins 33 caractères
-
Transmettez le même identifiant de session pour toutes les invocations associées
-
Utiliser des identifiants de session différents pour différents utilisateurs ou conversations
Exemple : utilisation de sessions pour une conversation
# First message in a conversation response1 = agent_core_client.InvokeAgentRuntime( agentRuntimeArn=agent_arn, runtimeSessionId="user-123456-conversation-12345678", # or uuid.uuid4() payload=json.dumps({"prompt": "Tell me about AWS"}).encode() ) # Follow-up message in the same conversation reuses the runtimeSessionId. response2 = agent_core_client.InvokeAgentRuntime( agentRuntimeArn=agent_arn, runtimeSessionId="user-123456-conversation-12345678", # or uuid.uuid4() payload=json.dumps({"prompt": "How does it compare to other cloud providers"}).encode() )
En utilisant le même environnement d'exécution SessionId pour les appels associés, vous vous assurez que le contexte est maintenu tout au long de la conversation, ce qui permet à votre agent de fournir des réponses cohérentes qui s'appuient sur les interactions précédentes.
En-têtes de session par protocole
Lorsque vous invoquez des agents, incluez l'en-tête de session approprié pour garantir que les demandes sont acheminées vers la même microVM. L'en-tête dépend du protocole configuré par votre agent :
| Protocole | En-tête de session |
|---|---|
|
MCP |
|
|
HTTP |
|
|
A2A |
|
|
AG-UI |
|
Adhérence de la microVM : Amazon Bedrock AgentCore utilise l'en-tête de session pour acheminer les demandes vers la même instance de microVM. Les clients doivent capturer l'ID de session renvoyé dans la réponse et l'inclure dans toutes les demandes suivantes afin de garantir l'affinité de session. Sans identifiant de session cohérent, chaque demande peut être acheminée vers une nouvelle microVM, ce qui peut entraîner une latence supplémentaire en raison des démarrages à froid.
Pour les spécificités du protocole MCP, y compris les modes sans état et avec état, voir Gestion des sessions MCP et adhérence des microVM.