View a markdown version of this page

Self-managed stratégie - Base rocheuse de l'Amazonie AgentCore

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.

Self-managed stratégie

La stratégie autogérée d'Amazon Bedrock AgentCore Memory vous permet de contrôler totalement vos pipelines d'extraction et de consolidation de la mémoire. Grâce à une stratégie autogérée, vous pouvez créer des flux de travail de traitement de la mémoire personnalisés tout en tirant parti d'Amazon Bedrock AgentCore pour le stockage et la récupération.

Une stratégie autogérée associée aux opérations par lots (BatchCreateMemoryRecords, BatchUpdateMemoryRecords, BatchDeleteMemoryRecords) vous permet d'ingérer directement ces enregistrements extraits dans la AgentCore mémoire Amazon Bedrock à des fins de recherche.

Grâce à des stratégies autogérées, vous pouvez :

  • Contrôlez l'appel du pipeline à l'aide de déclencheurs configurables

  • Intégration à des systèmes de traitement externes

  • Implémenter des algorithmes d'extraction et de consolidation personnalisés

  • Invoquez n'importe quel modèle préféré pour l'extraction et la consolidation

  • Définissez des schémas d'enregistrement de mémoire personnalisés, des espaces de noms, etc.

  • Ingérer les enregistrements extraits dans la mémoire à AgentCore long terme d'Amazon Bedrock

Créez et utilisez une stratégie autogérée

Self-managed les stratégies suivent un processus en cinq étapes, de la configuration des déclencheurs au stockage des enregistrements en mémoire.

  1. Configurer les déclencheurs  : définissez les conditions de déclenchement (nombre de messages, délai d'inactivité, nombre de jetons) qui invoquent votre pipeline en fonction d'événements de mémoire à court terme

  2. Recevoir des notifications et envoyer la charge utile  : Amazon Bedrock AgentCore publie des notifications sur votre sujet SNS et transmet les données de conversation à votre compartiment S3 lorsque les conditions de déclenchement sont remplies

  3. Extraire les enregistrements de mémoire  : votre pipeline personnalisé récupère la charge utile et applique une logique d'extraction pour identifier les mémoires pertinentes

  4. Consolidez les enregistrements de mémoire  : traitez les mémoires extraites pour supprimer les doublons et résoudre les conflits avec les enregistrements existants

  5. Stocker les enregistrements de mémoire  : utilisez des API de traitement par lots pour stocker les enregistrements de mémoire traités dans la mémoire AgentCore à long terme Amazon Bedrock

Conditions préalables

Avant de mettre en place des stratégies autogérées, vérifiez que vous disposez des éléments suivants :

  • Un AWS compte avec les autorisations appropriées

  • Accès à Amazon Bedrock AgentCore

  • Compréhension de base d' AWS IAM, d'Amazon S3 et d'Amazon SNS

Configuration de l'infrastructure

Créez les AWS ressources requises, notamment le compartiment S3, la rubrique SNS et le rôle IAM dont Amazon Bedrock AgentCore a besoin pour accéder à vos ressources.

Étape 1 : créer un compartiment S3

Créez un compartiment S3 dans votre compte dans lequel Amazon Bedrock AgentCore fournira des charges utiles d'événements par lots.

Important

Configurez une politique de cycle de vie pour supprimer automatiquement les objets après leur traitement afin de contrôler les coûts.

Étape 2 : Création d'une rubrique SNS

Créez une rubrique SNS pour les notifications d'offres d'emploi. Utilisez les rubriques FIFO si le traitement des commandes au sein des sessions est important pour votre cas d'utilisation.

Étape 3 : Création d'un rôle IAM

Créez un rôle IAM qu'Amazon Bedrock AgentCore peut assumer pour accéder à vos ressources.

Politique d’approbation

Utilisez la politique de confiance suivante :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:bedrock-agentcore:<region>:<account-id>:memory/*" } } } ] }

Politique d’autorisations

Utilisez la politique d'autorisations suivante :

{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3PayloadDelivery", "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::your-agentcore-payloads-bucket", "arn:aws:s3:::your-agentcore-payloads-bucket/*" ] }, { "Sid": "SNSNotifications", "Effect": "Allow", "Action": [ "sns:GetTopicAttributes", "sns:Publish" ], "Resource": "arn:aws:sns:us-east-1:123456789012:agentcore-memory-jobs" } ] }

Autorisations KMS supplémentaires (si vous utilisez des ressources cryptées)

Si vous utilisez des ressources chiffrées, ajoutez les autorisations KMS suivantes :

{ "Sid": "KMSPermissions", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-1:123456789012:key/your-key-id" }

Créez une stratégie autogérée

Utilisez les API du plan de AgentCore contrôle Amazon Bedrock pour créer ou mettre à jour une AgentCore mémoire à l'aide de stratégies autogérées.

Autorisations requises

Votre utilisateur ou votre rôle IAM a besoin des éléments suivants :

  • bedrock-agentcore : * autorisations

  • iam:PassRoleautorisation pour le rôle d'exécution

Créez un AgentCore souvenir grâce à une stratégie autogérée

Utilisez l'CreateMemoryopération AWS SDK pour créer de AgentCore la mémoire dotée d'une stratégie autogérée.

aws bedrock-agentcore-control create-memory \ --name "MyCustomMemory" \ --description "Memory with self-managed extraction strategy" \ --memory-execution-role-arn "arn:aws:iam::123456789012:role/AgentCoreMemoryRole" \ --event-expiry-duration 90 \ --memory-strategies '[ { "customMemoryStrategy": { "name": "SelfManagedExtraction", "description": "Custom extraction strategy", "configuration": { "selfManagedConfiguration": { "triggerConditions": [ { "messageBasedTrigger": { "messageCount": 6 } }, { "tokenBasedTrigger": { "tokenCount": 1000 } }, { "timeBasedTrigger": { "idleSessionTimeout": 30 } } ], "historicalContextWindowSize": 2, "invocationConfiguration": { "payloadDeliveryBucketName": "your-agentcore-payloads-bucket", "topicArn": "arn:aws:sns:us-east-1:123456789012:agentcore-memory-jobs" } } } } } ]'

Comprendre la livraison de la charge utile

Lorsque les conditions de déclenchement sont remplies, Amazon Bedrock AgentCore envoie des notifications et des charges utiles à l'aide de schémas spécifiques.

Message de notification SNS

{ "jobId": "unique-job-identifier", "s3PayloadLocation": "s3://bucket/path/to/payload.json", "memoryId": "your-memory-id", "strategyId": "your-strategy-id" }

Structure de charge utile S3

{ "requestId": "request-identifier", "accountId": "123456789012", "memoryId": "your-memory-id", "actorId": "user-or-agent-id", "sessionId": "conversation-session-id", "strategyId": "your-strategy-id", "startingTimestamp": 1634567890, "endingTimestamp": 1634567920, "currentContext": [ { "role": "USER", "content": { "text": "User message content" } }, { "role": "ASSISTANT", "content": { "text": "Assistant response" } } ], "historicalContext": [ { "role": "USER", "content": { "text": "User message content" } }, { "role": "ASSISTANT", "content": { "text": "Previous assistant response" } }, { "blob": "{}", } ] }

Créez votre pipeline personnalisé

Cette section présente une approche permettant de créer un pipeline de traitement de mémoire autogéré à l'aide de AWS Lambda et SQS. Ce n'est qu'un exemple : vous pouvez implémenter votre pipeline à l'aide de n'importe quelle plate-forme de calcul (EC2, ECS, Fargate), de logique et de cadre de traitement répondant à vos besoins.

Étape 1 : configurer le calcul

  1. Créez une file d'attente SQS et abonnez-la à votre rubrique SNS

  2. Création d'une fonction AWS Lambda pour traiter les notifications

  3. Configurer les autorisations du rôle d'exécution Lambda

Étape 2 : Traiter le pipeline

L'exemple de pipeline suivant comprend quatre composants principaux :

  1. Gestion des notifications : traitement des notifications SNS et téléchargement des charges utiles S3

  2. Extraction de la mémoire - Utilisation de modèles fondamentaux pour extraire des informations pertinentes à partir de conversations

  3. Consolidation de la mémoire - Déduplication et fusion des mémoires extraites avec des enregistrements existants

  4. Ingestion par lots : stockage des mémoires traitées dans Amazon Bedrock à AgentCore l'aide d'API de traitement par lots

Testez votre implémentation

  1. Création d'événements  : utilisez les AgentCore API Amazon Bedrock pour créer des événements de conversation () CreateEvent

  2. Surveiller les notifications  : vérifiez que votre rubrique SNS reçoit des notifications lorsque les déclencheurs sont atteints

  3. Valider le traitement  : vérifiez que votre fonction Lambda traite correctement les charges utiles et extrait les enregistrements de mémoire

  4. Vérifier l'ingestion  : list-memory-records à utiliser pour confirmer que les mémoires extraites sont stockées

Exemple : création d'événements de test

aws bedrock-agentcore create-event \ --memory-id "your-memory-id" \ --actor-id "test-user" \ --session-id "test-session-1" \ --event-timestamp "2024-01-15T10:00:00Z" \ --payload '[{ "conversational": { "content": {"text": "I prefer Italian restaurants with outdoor seating"}, "role": "USER" } }]'

Exemple : récupération d'enregistrements de mémoire

# List records belonging to a specific namespace aws bedrock-agentcore list-memory-records \ --memory-id "your-memory-id" \ --namespace "/actor/Jane/" # lists all records present in the given namespace # List records belonging to a particular namespace hierarchy aws bedrock-agentcore list-memory-records \ --memory-id "your-memory-id" \ --namespace-path "/" # lists all records present under the namespace hierarchy

Bonnes pratiques

Suivez ces bonnes pratiques en matière de performances, de fiabilité, d'optimisation des coûts et de sécurité lors de la mise en œuvre de stratégies autogérées.

Performances et fiabilité

  • Partage de SLA  : le SLA de génération d'enregistrements de Long-term mémoire est partagé entre Amazon Bedrock AgentCore et votre pipeline autogéré

  • Gestion des erreurs  : implémentez une logique de nouvelle tentative appropriée et des files d'attente de lettres mortes en cas d'échec de traitement

  • Surveillance  : configurez CloudWatch des journaux, des métriques et des alarmes en cas d'échec de débogage, de traitement et de latence. Vérifiez également les journaux distribués depuis Amazon Bedrock AgentCore pour détecter les échecs de livraison de la charge utile.

Optimisation des coûts

  • Politiques de cycle de vie S3  : configurez la suppression automatique des charges utiles traitées pour contrôler les coûts de stockage

  • Right-sizing: Choisissez les paramètres de mémoire de calcul et de temporisation appropriés en fonction de vos besoins de traitement

Considérations relatives au traitement

  • Optimisation des déclencheurs  : configurez les conditions de déclenchement en fonction des exigences de votre cas d'utilisation. Équilibrez l'efficacité du traitement et la fraîcheur de la mémoire en tenant compte de la tolérance de latence de votre application par rapport aux coûts de traitement.

  • Rubriques FIFO  : utilisez les rubriques FIFO SNS lorsque l'ordre des sessions est essentiel (par exemple, pour les flux de travail de synthèse)

  • Consolidation de la mémoire  : implémentez une logique de déduplication pour éviter de stocker des enregistrements de mémoire redondants ou conflictuels, ce qui réduit les coûts de stockage et améliore la précision de récupération

  • Organisation des enregistrements de mémoire  : incluez toujours des espaces de noms et des identifiants de stratégie significatifs lors de l'ingestion d'enregistrements afin de permettre une catégorisation, un filtrage et une récupération efficaces des enregistrements de mémoire

Sécurité

  • Privilège minimal  : accordez les autorisations minimales requises à tous les rôles IAM

  • Chiffrement  : utilisez le chiffrement KMS pour les compartiments S3 et les rubriques SNS contenant des données sensibles