View a markdown version of this page

Self-managed estratégia - Base da Amazônia AgentCore

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Self-managed estratégia

Uma estratégia autogerenciada no Amazon Bedrock AgentCore Memory oferece controle total sobre seus pipelines de extração e consolidação de memória. Com uma estratégia autogerenciada, você pode criar fluxos de trabalho personalizados de processamento de memória enquanto aproveita o Amazon Bedrock AgentCore para armazenamento e recuperação.

Uma estratégia autogerenciada em combinação com as operações em lote (BatchCreateMemoryRecords, BatchUpdateMemoryRecords, BatchDeleteMemoryRecords) permite que você ingira diretamente esses registros extraídos na AgentCore memória do Amazon Bedrock para recursos de pesquisa.

Com estratégias autogerenciadas, você pode:

  • Controle a invocação do pipeline por meio de gatilhos configuráveis

  • Integre com sistemas de processamento externos

  • Implemente algoritmos personalizados de extração e consolidação

  • Invoque qualquer modelo preferido para extração e consolidação

  • Defina esquemas de registro de memória personalizados, namespaces e assim por diante.

  • Ingira registros extraídos na memória de longo prazo do Amazon Bedrock AgentCore

Crie e use uma estratégia autogerenciada

Self-managed as estratégias seguem um processo de cinco etapas, desde a configuração do gatilho até o armazenamento de registros na memória.

  1. Configurar gatilhos: defina as condições de gatilho (contagem de mensagens, tempo limite de inatividade, contagem de tokens) que invocam seu pipeline com base em eventos de memória de curto prazo

  2. Receba notificações e entrega de carga útil: o Amazon Bedrock AgentCore publica notificações em seu tópico do SNS e entrega dados de conversação ao seu bucket do S3 quando as condições de acionamento são atendidas

  3. Extraia registros de memória: seu pipeline personalizado recupera a carga e aplica a lógica de extração para identificar memórias relevantes

  4. Consolide registros de memória: processe memórias extraídas para remover duplicatas e resolver conflitos com registros existentes

  5. Armazene registros de memória: use APIs em lote para armazenar registros de memória processados de volta na memória de longo prazo do Amazon Bedrock AgentCore

Pré-requisitos

Antes de configurar estratégias autogerenciadas, verifique se você tem:

  • Uma AWS conta com as permissões apropriadas

  • Acesso ao Amazon Bedrock AgentCore

  • Compreensão básica do AWS IAM, do Amazon S3 e do Amazon SNS

Configurar a infraestrutura

Crie os AWS recursos necessários, incluindo bucket do S3, tópico do SNS e função do IAM, que o Amazon Bedrock AgentCore precisa para acessar seus recursos.

Etapa 1: criar um bucket do S3

Crie um bucket do S3 em sua conta onde o Amazon Bedrock AgentCore entregará cargas de eventos em lote.

Importante

Configure uma política de ciclo de vida para excluir objetos automaticamente após o processamento para controlar os custos.

Etapa 2: criar um tópico do SNS

Crie um tópico do SNS para notificações de vagas. Use tópicos FIFO se a ordem de processamento nas sessões for importante para seu caso de uso.

Etapa 3: criar um perfil do IAM

Crie uma função do IAM que o Amazon Bedrock AgentCore possa assumir para acessar seus recursos.

Política de confiança

Use a seguinte política de confiança:

{ "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 permissões

Use a seguinte política de permissões:

{ "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" } ] }

Permissões adicionais do KMS (se estiver usando recursos criptografados)

Se você usa recursos criptografados, adicione as seguintes permissões de KMS:

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

Crie uma estratégia autogerenciada

Use as APIs do plano AgentCore de controle do Amazon Bedrock para criar ou atualizar uma AgentCore memória com estratégias autogerenciadas.

Permissões obrigatórias

Seu usuário ou função do IAM precisa:

  • bedrock-agentcore: * permissões

  • iam:PassRolepermissão para a função de execução

Crie uma AgentCore memória com uma estratégia autogerenciada

Use a CreateMemory operação AWS SDK para criar AgentCore memória que tenha uma estratégia autogerenciada.

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" } } } } } ]'

Entendendo a entrega de carga útil

Quando as condições de acionamento são atendidas, o Amazon Bedrock AgentCore envia notificações e cargas usando esquemas específicos.

Mensagem de notificação do SNS

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

Estrutura de carga útil 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": "{}", } ] }

Crie seu funil personalizado

Esta seção demonstra uma abordagem para criar um pipeline de processamento de memória autogerenciado usando o AWS Lambda e o SQS. Esse é apenas um exemplo: você pode implementar seu pipeline usando qualquer plataforma de computação (EC2, ECS, Fargate), estrutura lógica e de processamento que atenda aos seus requisitos.

Etapa 1: configurar a computação

  1. Crie uma fila SQS e inscreva-a no seu tópico do SNS

  2. Crie uma função do AWS Lambda para processar notificações

  3. Configurar as permissões do perfil de execução do Lambda

Etapa 2: processar o pipeline

O exemplo de pipeline a seguir consiste em quatro componentes principais:

  1. Tratamento de notificações - Processamento de notificações do SNS e download de cargas úteis do S3

  2. Extração de memória - Usando modelos fundamentais para extrair informações relevantes das conversas

  3. Consolidação de memória - Desduplicando e mesclando memórias extraídas com registros existentes

  4. Ingestão em lote - Armazenar memórias processadas de volta no Amazon Bedrock AgentCore usando APIs em lote

Teste sua implementação

  1. Crie eventos: use as AgentCore APIs do Amazon Bedrock para criar eventos de conversação () CreateEvent

  2. Monitore as notificações: verifique se seu tópico do SNS recebe notificações quando os gatilhos são atendidos

  3. Valide o processamento: verifique se sua função do Lambda processa cargas corretamente e extrai registros de memória

  4. Verifique a ingestão: use list-memory-records para confirmar se as memórias extraídas estão armazenadas

Exemplo: Criação de eventos de teste

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" } }]'

Exemplo: Recuperação de registros de memória

# 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áticas recomendadas

Siga essas melhores práticas de desempenho, confiabilidade, otimização de custos e segurança ao implementar estratégias autogerenciadas.

Desempenho e confiabilidade

  • Compartilhamento de SLA: o SLA de geração de registros de Long-term memória é compartilhado entre o Amazon Bedrock AgentCore e seu pipeline autogerenciado

  • Tratamento de erros: implemente uma lógica de repetição adequada e filas de letras mortas para falhas no processamento

  • Monitoramento: configure CloudWatch registros, métricas, alarmes para falhas e latência de depuração e processamento. Além disso, verifique os registros vendidos do Amazon Bedrock quanto a falhas na AgentCore entrega da carga

Otimização de custos

  • Políticas de ciclo de vida do S3: configure a exclusão automática de cargas processadas para controlar os custos de armazenamento

  • Right-sizing: escolha as configurações apropriadas de memória computacional e tempo limite com base em seus requisitos de processamento

Considerações de processamento

  • Otimização do gatilho: configure as condições do acionador com base nos requisitos do seu caso de uso — equilibre a eficiência do processamento e a atualização da memória considerando a tolerância do aplicativo à latência versus os custos de processamento.

  • Tópicos do FIFO: use os tópicos do FIFO SNS quando a ordem das sessões for crítica (por exemplo, para fluxos de trabalho de resumo)

  • Consolidação de memória: implemente a lógica de desduplicação para evitar o armazenamento de registros de memória redundantes ou conflitantes, o que reduz os custos de armazenamento e melhora a precisão da recuperação

  • Organização do registro de memória: sempre inclua namespaces significativos e IDs de estratégia ao ingerir registros para permitir a categorização, filtragem e recuperação eficientes de registros de memória

Segurança

  • Privilégio mínimo: conceda permissões mínimas necessárias para todas as funções do IAM

  • Criptografia: use a criptografia KMS para buckets do S3 e tópicos do SNS que contêm dados confidenciais