Streaming von Speicheraufzeichnungen
Beim Streaming von Speicherdatensätzen in Amazon Bedrock AgentCore Memory erhalten Sie Benachrichtigungen in Echtzeit, wenn Speicherdatensätze erstellt, aktualisiert oder gelöscht werden. Anstatt APIs abzufragen, um Änderungen zu erkennen, erhalten Sie Push-basierte Ereignisse an einen Kinesis Data Stream in Ihrem Konto. Dies ermöglicht ereignisgesteuerte Architekturen, die auf Änderungen des Lebenszyklus von Speicherdatensätzen reagieren, sobald sie auftreten.
Mit dem Streaming von Speicheraufzeichnungen können Sie:
-
Empfangen von Ereignissen in Echtzeit für die Erstellung, Aktualisierung und Löschung von Speicherdatensätzen
-
Erstellen Sie ereignisgesteuerte Architekturen ohne Abfragen von APIs
-
Streamen Sie Speicherdatensatzdaten zur Konsolidierung und Profilverwaltung in Data Lakes
-
Lösen Sie nachgelagerte Workflows aus, wenn neue Erkenntnisse gewonnen werden
-
Verfolgen Sie Änderungen des Speicheraufzeichnungsstatus zwischen Agenten und Sitzungen
Themen
Funktionsweise
Beim Streaming von Speicherdatensätzen wird ein Push-basiertes Bereitstellungsmodell verwendet. Wenn sich Speicherdatensätze ändern, werden Ereignisse automatisch in Ihrem Kinesis Data Stream veröffentlicht.
Ereignisse werden durch die folgenden Operationen ausgelöst:
-
Erstellung — Asynchrone Extraktion aus Kurzzeitgedächtnisereignissen (über
CreateEvent- und Speicherstrategien) oder direkte Erstellung über APIBatchCreateMemoryRecords -
Updates — Direkte Änderung über
BatchUpdateMemoryRecordsdie API -
Löschung — Konsolidierungs-Workflows (de-duplication/superseding),
DeleteMemoryRecordAPI oderBatchDeleteMemoryRecordsAPI
Ereignistypen streamen
In der folgenden Tabelle werden die unterstützten Stream-Ereignistypen und wann sie ausgelöst werden beschrieben.
| Operation | Stream-Ereignistyp | Ausgelöst durch |
|---|---|---|
|
Create |
|
Langzeitgedächtnis extraction/consolidation, |
|
Aktualisierung |
|
|
|
Delete |
|
|
Schema des Ereignisses
MemoryRecordCreated / MemoryRecordUpdated
MemoryRecordCreatedund MemoryRecordUpdated Ereignisse haben dasselbe 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>" } }
Das memoryRecordText Feld ist nur enthalten, wenn die Inhaltsebene in der Stream-Bereitstellungskonfiguration auf eingestellt istFULL_CONTENT. Weitere Informationen finden Sie unter Inhaltsebene für Ereignisse konfigurieren.
MemoryRecordDeleted
{ "memoryStreamEvent": { "eventType": "MemoryRecordDeleted", "eventTime": "2026-02-16T00:13:54.912530116Z", "memoryId": "<memory-id>", "memoryRecordId": "<memory-record-id>" } }
Löschereignisse enthalten unabhängig von der konfigurierten Inhaltsebene nur die Speicher- und Datensatz-IDs.
Voraussetzungen
Bevor Sie das Streaming von Speicherdatensätzen einrichten, stellen Sie sicher, dass Sie über Folgendes verfügen:
-
Ein AWS Konto mit den entsprechenden Berechtigungen
-
Zugriff auf Amazon Bedrock AgentCore
-
Grundlegendes Verständnis von AWS IAM und Amazon Kinesis Data Streams
Streaming einrichten
Schritt 1: Erstellen Sie einen Kinesis-Datenstrom
Erstellen Sie in Ihrem Konto einen Kinesis Data Stream, in dem Amazon Bedrock Ereignisse AgentCore im Lebenszyklus von Speicherdatensätzen veröffentlicht.
Sie können den Stream mit der AWS Konsole, CDK oder der AWS CLI erstellen. CloudFormation Wenn Sie die serverseitige Kinesis-Verschlüsselung aktivieren, notieren Sie sich den KMS-Schlüssel ARN — Sie benötigen ihn für die IAM-Rollenberechtigungen.
Schritt 2: Richten Sie einen Verbraucher ein
Richten Sie einen Verbraucher ein, der Ereignisse aus Ihrem Kinesis Data Stream verarbeitet.
Erteilen Sie Ihrem Verbraucher AmazonKinesisReadOnlyAccess (oder gleichwertige Berechtigungen) und fügen Sie den Kinesis Data Stream als Auslöser hinzu.
Schritt 3: Erstellen Sie eine IAM-Rolle
Erstellen Sie eine IAM-Rolle, die Amazon Bedrock übernehmen AgentCore kann, um Ereignisse in Ihrem Kinesis Data Stream zu veröffentlichen.
Vertrauensrichtlinie:
{ "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/*" } } } ] }
Richtlinie für Berechtigungen:
Für integrierte Speicherstrategien sieht die Berechtigungsrichtlinie wie folgt aus:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesis:PutRecords", "kinesis:DescribeStream" ], "Resource": "arn:aws:kinesis:<region>:<account-id>:stream/<stream-name>" } ] }
Für benutzerdefinierte Speicherstrategien sieht die Berechtigungsrichtlinie wie folgt aus:
{ "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}" } } } ] }
Wenn Ihr Kinesis Data Stream serverseitige Verschlüsselung verwendet, fügen Sie der Berechtigungsrichtlinie Folgendes hinzu:
{ "Sid": "KMSPermissions", "Effect": "Allow", "Action": "kms:GenerateDataKey", "Resource": "arn:aws:kms:<region>:<account-id>:key/your-kinesis-data-stream-key-id" }
Schritt 4: Erstellen Sie einen Speicher mit aktiviertem Streaming
Verwenden Sie die CreateMemory API, um einen Amazon Bedrock AgentCore Memory mit einer Stream-Bereitstellungsressource zu erstellen. Sie müssen das angeben, memoryExecutionRoleArn wenn Sie eine Stream-Bereitstellungsressource angeben.
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" } ] } } ] }'
Schritt 5: Überprüfen Sie Ihre Streaming-Integration
Wenn Sie einen Speicher mit aktiviertem Streaming erstellen, überprüft Amazon Bedrock AgentCore Memory die Konfiguration und die Berechtigungen. Nach erfolgreicher Validierung wird ein StreamingEnabled Ereignis in Ihrem Kinesis Data Stream veröffentlicht.
Informieren Sie sich bei Ihrem Kunden über ein Validierungsereignis im folgenden Format:
{ "memoryStreamEvent": { "eventType": "StreamingEnabled", "eventTime": "2026-03-03T19:27:08.344082626Z", "memoryId": "<memory-id>", "message": "Streaming enabled for memory resource: <memory-id>" } }
Konfigurieren Sie die Inhaltsebene der Veranstaltung
Das contentConfigurations Feld steuert, welche Daten in den einzelnen Ereignissen enthalten sind. Sie können zwischen zwei Inhaltsebenen wählen:
-
METADATA_ONLY: Stream-Ereignisse enthalten nur Metadatenfelder (
memoryId,memoryRecordId,,namespacesstrategyId, Zeitstempel usw.). Erfordert einen API-Aufruf, um den gesamten Inhalt des Speicherdatensatzes abzurufen. -
FULL_CONTENT: Stream-Ereignisse umfassen alle Metadatenfelder sowie das
memoryRecordTextFeld, das den Inhalt des Speicherdatensatzes enthält.
Wird METADATA_ONLY für einfache Ereignisbenachrichtigungen verwendet, bei denen Sie nur wissen müssen, dass eine Änderung eingetreten ist. Verwenden Sie diese FULL_CONTENT Option, wenn Ihre nachgelagerte Verarbeitung den Text des Speicherdatensatzes benötigt, ohne zusätzliche API-Aufrufe zu tätigen.
Testen Sie Ihre Implementierung
Schritt 1: Erstellen Sie Testereignisse
Verwenden Sie die Data Plane-APIs, um Ereignisse im Lebenszyklus von Speicherdatensätzen zu generieren und zu überprüfen, ob sie in Ihrem Endverbraucher angezeigt werden.
Ereignisse über das Kurzzeitgedächtnis erstellen (löst asynchrone Extraktion aus):
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" } } ]'
Datensätze direkt erstellen:
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" } ]'
Schritt 2: Lieferung verifizieren
Erkundigen Sie sich bei Ihrem Kunden, ob Ereignisse eingegangen sind. Sie sollten MemoryRecordCreated Ereignisse für Datensätze sehen, die mit einer der beiden Methoden erstellt wurden.
Sie können den Status der Lieferung auch mithilfe von Metriken und Protokollen überwachen.
Sie können die ListMemoryRecords API für Querverweise verwenden:
aws bedrock-agentcore list-memory-records \ --memory-id "<memory-id>" \ --namespace "<namespace>"
Streaming-Konfiguration verwalten
Streaming-Konfiguration aktualisieren
Verwenden Sie die UpdateMemory API, um die Stream-Bereitstellungsressource zu ändern oder zu entfernen.
Streaming entfernen:
aws bedrock-agentcore-control update-memory \ --region us-east-1 \ --memory-id "<memory-id>" \ --stream-delivery-resources '{"resources": []}'
Inhaltsebene ändern
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" } ] } } ] }'
Beobachtbarkeit
Amazon Bedrock AgentCore Memory verkauft CloudWatch Metriken und Protokolle an Ihr AWS Konto, sodass Sie Einblick in den Zustand und den Status der Speicherdaten-Stream-Lieferung erhalten.
Kennzahlen
Metriken werden auf Ihrem Konto unter dem AWS/Bedrock-AgentCore Namespace veröffentlicht.
| Metrik | Description |
|---|---|
|
|
Die Anzahl der Speicheraufzeichnungsereignisse, die erfolgreich in Ihrem Kinesis Data Stream veröffentlicht wurden. |
|
|
Die Anzahl der Speicheraufzeichnungsereignisse, die nicht in Ihrem Kinesis Data Stream veröffentlicht werden konnten. |
|
|
Die Anzahl der Ereignisse, die aufgrund von Konfigurationsproblemen auf Kundenseite fehlgeschlagen sind, z. B. aufgrund fehlender IAM-Berechtigungen oder eines ungültigen KMS-Schlüsselstatus. |
Alle Metriken werden als Count Einheiten mit den folgenden Dimensionen ausgegeben:
| Dimension | Wert | Description |
|---|---|---|
|
Operation |
|
Der Typ des Streaming-Vorgangs. |
|
Ressource |
Speicher-ARN |
Der ARN der Speicherressource (zum Beispiel |
Protokolle
Amazon Bedrock AgentCore Memory sendet Protokolle an Ihr Konto, wenn Terminal-Veröffentlichungsfehler (nicht wiederholbar) auftreten.
| Feld | Description |
|---|---|
|
|
Fehlermeldung, die den Fehler beschreibt. |
|
|
Der Ziel-Kinesis Data Stream ARN. |
|
|
Der spezifische Fehlercode. |
|
|
Eine menschenlesbare Beschreibung des Fehlers. |
|
|
Der Stream-Ereignistyp ( |
|
|
Die Kennung des betroffenen Speicherdatensatzes. |