Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Self-managed estrategia
La estrategia autogestionada de Amazon Bedrock AgentCore Memory le brinda un control total sobre sus procesos de extracción y consolidación de memoria. Con una estrategia autogestionada, puede crear flujos de trabajo de procesamiento de memoria personalizados y, al mismo tiempo, aprovechar Amazon Bedrock AgentCore para el almacenamiento y la recuperación.
Una estrategia autogestionada en combinación con las operaciones por lotes (BatchCreateMemoryRecords, BatchUpdateMemoryRecords, BatchDeleteMemoryRecords) le permite introducir directamente estos registros extraídos en la memoria de Amazon Bedrock para poder realizar búsquedas. AgentCore
Con las estrategias autogestionadas, puede:
-
Controlar la invocación de la canalización mediante activadores configurables
-
Intégralo con sistemas de procesamiento externos
-
Implemente algoritmos personalizados de extracción y consolidación
-
Invoque cualquier modelo preferido para la extracción y la consolidación
-
Defina esquemas de registros de memoria personalizados, espacios de nombres, etc.
-
Introduzca los registros extraídos en la memoria a largo plazo de Amazon Bedrock AgentCore
Temas
Cree y utilice una estrategia autogestionada
Self-managed las estrategias siguen un proceso de cinco pasos, desde la configuración del disparador hasta el almacenamiento de los registros en memoria.
-
Configure los desencadenadores: defina las condiciones de activación (recuento de mensajes, tiempo de espera de inactividad, recuento de tokens) para que invoquen su canalización en función de los eventos de memoria a corto plazo
-
Reciba notificaciones y entregue la carga útil: Amazon Bedrock AgentCore publica notificaciones en su tema de redes sociales y envía los datos de las conversaciones a su bucket de S3 cuando se cumplen las condiciones de activación
-
Extrae los registros de memoria: tu canalización personalizada recupera la carga útil y aplica la lógica de extracción para identificar los recuerdos relevantes
-
Consolide los registros de memoria: procese las memorias extraídas para eliminar los duplicados y resolver los conflictos con los registros existentes
-
Almacene registros de memoria: utilice las API por lotes para almacenar los registros de memoria procesados en la memoria a largo plazo de Amazon Bedrock AgentCore
Requisitos previos
Antes de configurar estrategias de autogestión, compruebe que dispone de:
-
Una AWS cuenta con los permisos adecuados
-
Acceso a Amazon Bedrock AgentCore
-
Comprensión básica de AWS IAM, Amazon S3 y Amazon SNS
Configuración de la infraestructura
Cree los AWS recursos necesarios, incluidos el bucket de S3, el tema de SNS y el rol de IAM, que Amazon Bedrock AgentCore necesita para acceder a sus recursos.
Paso 1: crear un bucket de S3
Cree un bucket de S3 en su cuenta para que Amazon Bedrock entregue las cargas útiles de eventos por AgentCore lotes.
importante
Configure una política de ciclo de vida para eliminar automáticamente los objetos después del procesamiento a fin de controlar los costos.
Paso 2: Crear un tema de SNS
Crea un tema de SNS para las notificaciones de trabajo. Usa los temas de FIFO si procesar los pedidos dentro de las sesiones es importante para tu caso práctico.
Paso 3: Crear un rol de IAM
Cree un rol de IAM que Amazon Bedrock AgentCore pueda asumir para acceder a sus recursos.
Política de confianza
Utilice la siguiente política de confianza:
{ "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/*" } } } ] }
Política de permisos
Utilice la siguiente política de permisos:
{ "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" } ] }
Permisos de KMS adicionales (si se utilizan recursos cifrados)
Si usa recursos cifrados, agregue los siguientes permisos de KMS:
{ "Sid": "KMSPermissions", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-1:123456789012:key/your-key-id" }
Cree una estrategia autogestionada
Utilice las API del plano de AgentCore control de Amazon Bedrock para crear o actualizar una AgentCore memoria con estrategias autogestionadas.
Permisos necesarios
Su rol o usuario de IAM necesita:
-
bedrock-agentcore: * permisos
-
iam:PassRolepermiso para la función de ejecución
Cree una AgentCore memoria con una estrategia autogestionada
Usa la CreateMemory operación del AWS SDK para crear una AgentCore memoria que tenga una estrategia autogestionada.
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" } } } } } ]'
Entender la entrega de cargas
Cuando se cumplen las condiciones de activación, Amazon Bedrock AgentCore envía notificaciones y cargas útiles mediante esquemas específicos.
Mensaje de notificación de SNS
{ "jobId": "unique-job-identifier", "s3PayloadLocation": "s3://bucket/path/to/payload.json", "memoryId": "your-memory-id", "strategyId": "your-strategy-id" }
Estructura de carga útil de 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": "{}", } ] }
Cree su canalización personalizada
En esta sección se muestra un enfoque para crear una canalización de procesamiento de memoria autogestionada mediante AWS Lambda y SQS. Este es solo un ejemplo: puede implementar su canalización utilizando cualquier plataforma de procesamiento (EC2, ECS, Fargate), lógica y marco de procesamiento que cumpla con sus requisitos.
Paso 1: configurar la computación
-
Cree una cola de SQS y suscríbala a su tema de SNS
-
Cree una función AWS Lambda para procesar las notificaciones
-
Configure los permisos del rol de ejecución de Lambda
Paso 2: procesar la canalización
El siguiente ejemplo de canalización consta de cuatro componentes principales:
-
Gestión de notificaciones: procesamiento de las notificaciones de SNS y descarga de las cargas útiles de S3
-
Extracción de memoria: uso de modelos básicos para extraer información relevante de las conversaciones
-
Consolidación de la memoria: deduplicar y combinar las memorias extraídas con los registros existentes
-
Ingestión por lotes: almacenamiento de memorias procesadas en Amazon Bedrock mediante API por lotes AgentCore
Pruebe su implementación
-
Cree eventos: utilice las AgentCore API de Amazon Bedrock para crear eventos de conversación ()
CreateEvent -
Supervise las notificaciones: compruebe que su tema de SNS reciba notificaciones cuando se cumplan los factores desencadenantes
-
Valide el procesamiento: compruebe que su función de Lambda procese las cargas útiles correctamente y extraiga los registros de memoria
-
Verificar la ingestión: utilícelo
list-memory-recordspara confirmar que las memorias extraídas están almacenadas
Ejemplo: creación de eventos de prueba
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" } }]'
Ejemplo: recuperar registros de memoria
# 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
Prácticas recomendadas
Siga estas prácticas recomendadas para mejorar el rendimiento, la confiabilidad, la optimización de costos y la seguridad al implementar estrategias de autogestión.
Rendimiento y confiabilidad
-
Intercambio de acuerdos de nivel de servicio: el acuerdo de nivel de servicio de generación de registros de Long-term memoria se comparte entre Amazon Bedrock AgentCore y su canal autogestionado
-
Gestión de errores: implemente una lógica de reintento adecuada y ponga colas de espera en caso de errores de procesamiento
-
Supervisión: configure CloudWatch los registros, las métricas y las alarmas para detectar los errores y la latencia de depuración y procesamiento. Además, consulte los registros de ventas de Amazon Bedrock AgentCore para ver si hay errores en la entrega de la carga
Optimización de costos
-
Políticas del ciclo de vida de S3: configure la eliminación automática de las cargas procesadas para controlar los costos de almacenamiento
-
Right-sizing: Elija la configuración adecuada de tiempo de espera y memoria de procesamiento en función de sus requisitos de procesamiento
Consideraciones sobre el procesamiento
-
Optimización de los activadores: configure las condiciones de activación en función de los requisitos de cada caso de uso: equilibre la eficiencia del procesamiento y la actualización de la memoria teniendo en cuenta la tolerancia de la aplicación a la latencia en comparación con los costos de procesamiento.
-
Temas de FIFO: utilice los temas de FIFO SNS cuando el orden de las sesiones sea fundamental (por ejemplo, para resumir los flujos de trabajo)
-
Consolidación de la memoria: implemente la lógica de deduplicación para evitar el almacenamiento de registros de memoria redundantes o conflictivos, lo que reduce los costos de almacenamiento y mejora la precisión de la recuperación
-
Organización de los registros de memoria: incluya siempre espacios de nombres e identificadores de estrategia significativos al ingerir registros para permitir la categorización, el filtrado y la recuperación eficientes de los registros de memoria
Seguridad
-
Privilegio mínimo: conceda los permisos mínimos requeridos a todas las funciones de IAM
-
Cifrado: utilice el cifrado KMS para los buckets de S3 y los temas de SNS que contengan datos confidenciales