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
Argomenti
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:
-
Creazione: estrazione asincrona da eventi di memoria a breve termine (tramite strategie di memoria
CreateEvente) o creazione diretta tramite APIBatchCreateMemoryRecords -
Aggiornamenti: modifica diretta tramite API
BatchUpdateMemoryRecords -
Eliminazione: flussi di lavoro di consolidamento (de-duplication/superseding),
DeleteMemoryRecordAPI o APIBatchDeleteMemoryRecords
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 |
|
Memoria a lungo termine extraction/consolidation, API |
|
Aggiorna |
|
API |
|
Elimina |
|
|
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,,memoryRecordIdnamespacesstrategyId, 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
memoryRecordTextcampo 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 |
|---|---|
|
|
Il numero di eventi di registrazione della memoria pubblicati con successo su Kinesis Data Stream. |
|
|
Il numero di eventi di registrazione della memoria che non sono stati pubblicati su Kinesis Data Stream. |
|
|
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 |
|
Il tipo di operazione di streaming. |
|
Risorsa |
Memoria ARN |
L'ARN della risorsa di memoria (ad esempio, |
Log
Amazon Bedrock AgentCore Memory invia i log al tuo account quando si verificano errori di pubblicazione del terminale (non riutilizzabili).
| Campo | Description |
|---|---|
|
|
Messaggio di errore che descrive l'errore. |
|
|
L'ARN Kinesis Data Stream di destinazione. |
|
|
Il codice di errore specifico. |
|
|
Una descrizione dell'errore leggibile dall'uomo. |
|
|
Il tipo di evento stream ( |
|
|
L'identificatore del record di memoria interessato. |