View a markdown version of this page

Streaming di registrazioni di memoria - Amazon Bedrock AgentCore

Streaming di registrazioni di memoria

Lo streaming dei record di memoria in Amazon Bedrock AgentCore Memory fornisce notifiche in tempo reale quando i record di memoria vengono creati, aggiornati o eliminati. Invece di eseguire il polling delle API per rilevare le modifiche, ricevi eventi basati su push su un Kinesis Data Stream nel tuo account, abilitando architetture basate sugli eventi che reagiscono ai cambiamenti del ciclo di vita dei record di memoria non appena si verificano.

Con lo streaming dei record di memoria, puoi:

  • Ricevi eventi in tempo reale per la creazione, l'aggiornamento e l'eliminazione dei record di memoria

  • Crea architetture basate sugli eventi senza eseguire il polling delle API

  • Trasmetti i dati dei record di memoria nei data lake per il consolidamento e la gestione dei profili

  • Attiva flussi di lavoro a valle quando vengono estratte nuove informazioni

  • Tieni traccia delle modifiche allo stato dei record di memoria tra agenti e sessioni

Come funziona

Lo streaming dei record di memoria utilizza un modello di distribuzione basato su push. Quando i record di memoria cambiano, gli eventi vengono pubblicati automaticamente su Kinesis Data Stream.

Gli eventi vengono attivati dalle seguenti operazioni:

  1. Creazione: estrazione asincrona da eventi di memoria a breve termine (tramite strategie di memoria CreateEvent e) o creazione diretta tramite API BatchCreateMemoryRecords

  2. Aggiornamenti: modifica diretta tramite API BatchUpdateMemoryRecords

  3. Eliminazione: flussi di lavoro di consolidamento (de-duplication/superseding), DeleteMemoryRecord API o API BatchDeleteMemoryRecords

Tipi di eventi in streaming

La tabella seguente descrive i tipi di eventi di streaming supportati e quando vengono attivati.

Operation Tipo di evento Stream Attivato da

Crea

MemoryRecordCreated

Memoria a lungo termine extraction/consolidation, API BatchCreateMemoryRecords

Aggiorna

MemoryRecordUpdated

API BatchUpdateMemoryRecords

Elimina

MemoryRecordDeleted

BatchDeleteMemoryRecords, DeleteMemoryRecord API, consolidamento della memoria a lungo termine

Schema degli eventi

MemoryRecordCreated / MemoryRecordUpdated

MemoryRecordCreatede MemoryRecordUpdated gli eventi condividono lo stesso schema.

{ "memoryStreamEvent": { "eventType": "<MemoryRecordCreated, MemoryRecordUpdated>", "eventTime": "2026-03-06T16:45:00.000Z", "memoryId": "<memory-id>", "memoryRecordId": "<memory-record-id>", "namespaces": ["<namespace>"], "createdAt": 1736622300000, "memoryStrategyId": "<memory-strategy-id>", "memoryStrategyType": "<memory-strategy-type>", "metadata": {<metadata>}, "memoryRecordText": "<memory-record-text>" } }

Il memoryRecordText campo è incluso solo quando il livello di contenuto nella configurazione di distribuzione dello stream è impostato suFULL_CONTENT. Per ulteriori dettagli, consulta Configurare il livello di contenuto dell'evento.

MemoryRecordDeleted

{ "memoryStreamEvent": { "eventType": "MemoryRecordDeleted", "eventTime": "2026-02-16T00:13:54.912530116Z", "memoryId": "<memory-id>", "memoryRecordId": "<memory-record-id>" } }

Gli eventi di eliminazione contengono solo gli identificatori di memoria e di record, indipendentemente dal livello di contenuto configurato.

Prerequisiti

Prima di configurare lo streaming dei record di memoria, verifica di disporre di:

  • Un AWS account con le autorizzazioni appropriate

  • Accesso ad Amazon Bedrock AgentCore

  • Conoscenze di base di AWS IAM e Amazon Kinesis Data Streams

Configura lo streaming

Fase 1: Creazione di un flusso di dati Kinesis

Crea un Kinesis Data Stream nel tuo account in cui Amazon Bedrock AgentCore pubblicherà gli eventi del ciclo di vita dei record di memoria.

Puoi creare lo stream utilizzando la AWS console, il CDK o CloudFormation la AWS CLI. Se abiliti la crittografia lato server Kinesis, prendi nota dell'ARN della chiave KMS: ti servirà per le autorizzazioni dei ruoli IAM.

Fase 2: Configura un consumatore

Configura un consumatore per elaborare gli eventi dal tuo Kinesis Data Stream.

Concedi al consumatore AmazonKinesisReadOnlyAccess (o autorizzazioni equivalenti) e aggiungi Kinesis Data Stream come trigger.

Fase 3: Creare un ruolo IAM

Crea un ruolo IAM che Amazon Bedrock AgentCore possa assumere per pubblicare eventi su Kinesis Data Stream.

Policy di trust:

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

Politica in materia di autorizzazioni:

Per le strategie di memoria integrate, la politica delle autorizzazioni è simile alla seguente:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesis:PutRecords", "kinesis:DescribeStream" ], "Resource": "arn:aws:kinesis:<region>:<account-id>:stream/<stream-name>" } ] }

Per le strategie di memoria personalizzate, la politica delle autorizzazioni è simile alla seguente:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesis:PutRecords", "kinesis:DescribeStream" ], "Resource": "arn:aws:kinesis:<region>:<account-id>:stream/<stream-name>" }, { "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:*::foundation-model/*", "arn:aws:bedrock:*:*:inference-profile/*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "${aws:PrincipalAccount}" } } } ] }

Se Kinesis Data Stream utilizza la crittografia lato server, aggiungi quanto segue alla politica delle autorizzazioni:

{ "Sid": "KMSPermissions", "Effect": "Allow", "Action": "kms:GenerateDataKey", "Resource": "arn:aws:kms:<region>:<account-id>:key/your-kinesis-data-stream-key-id" }

Passaggio 4: crea una memoria con lo streaming abilitato

Usa l'CreateMemoryAPI per creare una AgentCore memoria Amazon Bedrock con una risorsa di distribuzione di stream. È necessario fornire memoryExecutionRoleArn quando si specifica una risorsa di distribuzione dello stream.

aws bedrock-agentcore-control create-memory \ --name "MyStreamingMemory" \ --description "Memory with long term memory record streaming enabled" \ --event-expiry-duration 30 \ --memory-execution-role-arn "arn:aws:iam::<account-id>:role/AgentCoreMemoryRole" \ --stream-delivery-resources '{ "resources": [ { "kinesis": { "dataStreamArn": "arn:aws:kinesis:<region>:<account-id>:stream/<stream-name>", "contentConfigurations": [ { "type": "MEMORY_RECORDS", "level": "FULL_CONTENT" } ] } } ] }'

Passaggio 5: verifica l'integrazione dello streaming

Quando crei una memoria con lo streaming abilitato, Amazon Bedrock AgentCore Memory convalida la configurazione e le autorizzazioni. Una volta completata la convalida, viene pubblicato un StreamingEnabled evento su Kinesis Data Stream.

Verifica la presenza di un evento di convalida presso il consumatore nel seguente formato:

{ "memoryStreamEvent": { "eventType": "StreamingEnabled", "eventTime": "2026-03-03T19:27:08.344082626Z", "memoryId": "<memory-id>", "message": "Streaming enabled for memory resource: <memory-id>" } }

Configura il livello di contenuto dell'evento

Il contentConfigurations campo controlla quali dati sono inclusi in ogni evento. Puoi scegliere tra due livelli di contenuto:

  • METADATA_ONLY: gli eventi di streaming includono solo campi di metadati (memoryId,, memoryRecordId namespacesstrategyId, timestamp e così via). Richiede una chiamata API per recuperare l'intero contenuto del record di memoria.

  • FULL_CONTENT: gli eventi Stream includono tutti i campi di metadati più il memoryRecordText campo contenente il contenuto del record di memoria.

Utilizzatelo METADATA_ONLY per notifiche di eventi leggere in cui è sufficiente sapere che è avvenuta una modifica. Da utilizzare FULL_CONTENT quando l'elaborazione a valle richiede il testo della registrazione in memoria senza effettuare chiamate API aggiuntive.

Testa la tua implementazione

Fase 1: Creare eventi di test

Utilizza le API Data Plane per generare eventi del ciclo di vita dei record di memoria e verificarne la presenza nel consumatore.

Crea eventi tramite memoria a breve termine (attiva l'estrazione asincrona):

aws bedrock-agentcore create-event \ --memory-id "<memory-id>" \ --actor-id "test-user" \ --session-id "test-session-1" \ --event-timestamp "$(date -u +"%Y-%m-%dT%H:%M:%S.%3NZ")" \ --payload '[ { "conversational": { "content": {"text": "I prefer Italian restaurants with outdoor seating"}, "role": "USER" } }, { "conversational": { "content": {"text": "Noted! I will remember your preference for Italian restaurants with outdoor seating."}, "role": "ASSISTANT" } } ]'

Crea record direttamente:

aws bedrock-agentcore batch-create-memory-records \ --memory-id "<memory-id>" \ --records '[ { "requestIdentifier": "test-1", "content": {"text": "User prefers window seats on flights"}, "namespaces": ["travel/test-user"], "timestamp": "1729525989" } ]'

Fase 2: Verifica della consegna

Controlla il consumatore per confermare che gli eventi siano stati ricevuti. Dovresti visualizzare MemoryRecordCreated gli eventi per i record creati con entrambi i metodi.

Puoi anche monitorare lo stato della consegna utilizzando Metrics and Logs.

Puoi utilizzare l'ListMemoryRecordsAPI per fare riferimenti incrociati:

aws bedrock-agentcore list-memory-records \ --memory-id "<memory-id>" \ --namespace "<namespace>"

Gestisci la configurazione dello streaming

Aggiorna la configurazione dello streaming

Utilizza l'UpdateMemoryAPI per modificare o rimuovere la risorsa di distribuzione dello stream.

Rimuovi lo streaming:

aws bedrock-agentcore-control update-memory \ --region us-east-1 \ --memory-id "<memory-id>" \ --stream-delivery-resources '{"resources": []}'

Cambia il livello dei contenuti

aws bedrock-agentcore-control update-memory \ --memory-id "<memory-id>" \ --stream-delivery-resources '{ "resources": [ { "kinesis": { "dataStreamArn": "arn:aws:kinesis:us-east-1:<account-id>:stream/<stream-name>", "contentConfigurations": [ { "type": "MEMORY_RECORDS", "level": "METADATA_ONLY" } ] } } ] }'

Osservabilità

Amazon Bedrock AgentCore Memory trasferisce i CloudWatch parametri e i log al tuo AWS account, offrendoti visibilità sullo stato e sullo stato della distribuzione dei flussi di record di memoria.

Metriche

Le metriche vengono pubblicate sul tuo account nel namespace. AWS/Bedrock-AgentCore

Metrica Description

StreamPublishingSuccess

Il numero di eventi di registrazione della memoria pubblicati con successo su Kinesis Data Stream.

StreamPublishingFailure

Il numero di eventi di registrazione della memoria che non sono stati pubblicati su Kinesis Data Stream.

StreamUserError

Il numero di eventi che non sono riusciti a causa di problemi di configurazione lato cliente, come la mancanza di autorizzazioni IAM o lo stato di una chiave KMS non valido.

Tutte le metriche vengono emesse come unità con le seguenti dimensioni: Count

Dimensione Valore Description

Operation

MemoryStreamEvent

Il tipo di operazione di streaming.

Risorsa

Memoria ARN

L'ARN della risorsa di memoria (ad esempio,arn:aws:bedrock-agentcore:us-east-1:123456789012:memory/memory-123).

Log

Amazon Bedrock AgentCore Memory invia i log al tuo account quando si verificano errori di pubblicazione del terminale (non riutilizzabili).

Campo Description

log

Messaggio di errore che descrive l'errore.

streamArn

L'ARN Kinesis Data Stream di destinazione.

errorCode

Il codice di errore specifico.

errorMessage

Una descrizione dell'errore leggibile dall'uomo.

eventType

Il tipo di evento stream (MemoryRecordCreated,MemoryRecordUpdated, or). MemoryRecordDeleted

memoryRecordId

L'identificatore del record di memoria interessato.