View a markdown version of this page

Streaming di record di memoria - Fondamento Amazon AgentCore

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Streaming di record di memoria

Lo streaming di 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 interrogare le API per rilevare le modifiche, ricevete eventi push su un Kinesis Data Stream presente nel vostro account, abilitando architetture basate sugli eventi che reagiscono alle modifiche del ciclo di vita dei record di memoria man mano che si verificano.

Con lo streaming di record in 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 API di polling

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

  • Attiva i 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 CreateEvent e strategie di memoria) 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 di streaming

La tabella seguente descrive i tipi di eventi di streaming supportati e il momento in cui vengono attivati.

Operation Tipo di evento di streaming 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 streaming è impostato suFULL_CONTENT. Per ulteriori dettagli, consulta Configurare il livello di contenuto degli eventi.

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 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

  • Conoscenza 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 la CLI. CloudFormation AWS Se abiliti la crittografia lato server Kinesis, annota la chiave KMS ARN: ti servirà per le autorizzazioni dei ruoli IAM.

Passaggio 2: configura un consumatore

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

Concedi al tuo 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 sul tuo 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 sulle autorizzazioni:

Per le strategie di memoria integrata, la politica delle autorizzazioni è la 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 è la 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, aggiungete 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" }

Fase 4: Creare una memoria con lo streaming abilitato

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

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, un StreamingEnabled evento viene pubblicato sul tuo Kinesis Data Stream.

Chiedete al vostro consumatore un evento di convalida 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 di streaming includono tutti i campi di metadati più il memoryRecordText campo contenente il contenuto del record di memoria.

Usalo METADATA_ONLY per notifiche di eventi leggere in cui devi solo sapere che si è verificata una modifica. Da utilizzare FULL_CONTENT quando l'elaborazione downstream richiede il testo del record di 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 visualizzazione 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 la consegna

Controlla il tuo consumatore per confermare che gli eventi sono stati ricevuti. Dovresti vedere 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

Usa l'UpdateMemoryAPI per modificare o rimuovere la risorsa di distribuzione dello streaming.

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 invia CloudWatch metriche e registri al tuo AWS account, offrendoti visibilità sullo stato e sullo stato della distribuzione dei flussi di record di memoria.

Metriche

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

Metrica Description

StreamPublishingSuccess

Il numero di eventi dei record di memoria pubblicati con successo su Kinesis Data Stream.

StreamPublishingFailure

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

StreamUserError

Il numero di eventi che hanno avuto esito negativo a causa di problemi di configurazione da parte del cliente, come la mancanza di autorizzazioni IAM o uno stato della 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 sul terminale (non riutilizzabile).

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 leggibile dall'uomo dell'errore.

eventType

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

memoryRecordId

L'identificatore del record di memoria interessato.