記憶體記錄串流
Amazon Bedrock AgentCore 記憶體中的記憶體記錄串流會在建立、更新或刪除記憶體記錄時提供即時通知。您不會輪詢 APIs來偵測變更,而是接收推送型事件到帳戶中的 Kinesis Data Stream,讓事件驅動型架構在記憶體記錄生命週期變更發生時做出反應。
透過記憶體記錄串流,您可以:
-
接收即時事件以建立、更新和刪除記憶體記錄
-
建置事件驅動型架構而不輪詢 APIs
-
將記憶體記錄資料串流到資料湖,以進行整合和設定檔管理
-
擷取新洞見時觸發下游工作流程
-
追蹤客服人員和工作階段之間的記憶體記錄狀態變更
運作方式
記憶體記錄串流使用以推送為基礎的交付模型。當記憶體記錄變更時,事件會自動發佈到您的 Kinesis Data Stream。
事件是由下列操作觸發:
-
建立 – 從短期記憶體事件 (透過
CreateEvent和記憶體策略) 非同步擷取,或透過BatchCreateMemoryRecordsAPI 直接建立 -
更新 – 透過
BatchUpdateMemoryRecordsAPI 直接修改 -
刪除 – 合併工作流程 (刪除重複/抑制)、
DeleteMemoryRecordAPI 或BatchDeleteMemoryRecordsAPI
串流事件類型
下表說明支援的串流事件類型以及觸發時間。
| 作業 | 串流事件類型 | 觸發者 |
|---|---|---|
|
建立 |
|
長期記憶體擷取/合併、 |
|
更新 |
|
|
|
刪除 |
|
|
事件結構描述
MemoryRecordCreated/MemoryRecordUpdated
MemoryRecordCreated 和 MemoryRecordUpdated事件共用相同的結構描述。
{ "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>" } }
只有在串流交付組態上的內容層級設定為 FULL_CONTENT 時,才會包含 memoryRecordText 欄位。如需其他詳細資訊,請參閱設定事件內容層級。
MemoryRecordDeleted
{ "memoryStreamEvent": { "eventType": "MemoryRecordDeleted", "eventTime": "2026-02-16T00:13:54.912530116Z", "memoryId": "<memory-id>", "memoryRecordId": "<memory-record-id>" } }
刪除事件僅包含記憶體和記錄識別符,無論設定的內容層級為何。
先決條件
設定記憶體記錄串流之前,請確認您已:
-
具有適當許可 AWS 的帳戶
-
Amazon Bedrock AgentCore 存取
-
對 AWS IAM 和 Amazon Kinesis Data Streams 的基本了解
設定串流
步驟 1:建立 Kinesis Data Stream
在 Amazon Bedrock AgentCore 將發佈記憶體記錄生命週期事件的帳戶中建立 Kinesis Data Stream。
您可以使用 AWS 主控台、CDK、CloudFormation 或 CLI AWS 建立串流。如果您啟用 Kinesis 伺服器端加密,請注意 KMS 金鑰 ARN — 您需要它才能取得 IAM 角色許可。
步驟 2:設定取用者
設定取用者以處理來自 Kinesis Data Stream 的事件。
授予您的取用者 AmazonKinesisReadOnlyAccess(或同等許可),並將 Kinesis Data Stream 新增為觸發條件。
步驟 3:建立 IAM 角色
建立 Amazon Bedrock AgentCore 可擔任的 IAM 角色,以將事件發佈到您的 Kinesis Data Stream。
信任政策:
{ "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/*" } } } ] }
許可政策:
對於內建記憶體策略,許可政策如下所示:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesis:PutRecords", "kinesis:DescribeStream" ], "Resource": "arn:aws:kinesis:<region>:<account-id>:stream/<stream-name>" } ] }
對於自訂記憶體策略,許可政策如下所示:
{ "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}" } } } ] }
如果您的 Kinesis Data Stream 使用伺服器端加密,請將以下內容新增至許可政策:
{ "Sid": "KMSPermissions", "Effect": "Allow", "Action": "kms:GenerateDataKey", "Resource": "arn:aws:kms:<region>:<account-id>:key/your-kinesis-data-stream-key-id" }
步驟 4:建立啟用串流的記憶體
使用 CreateMemory API 建立具有串流交付資源的 Amazon Bedrock AgentCore 記憶體。指定串流交付資源memoryExecutionRoleArn時,您必須提供 。
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" } ] } } ] }'
步驟 5:驗證您的串流整合
當您建立啟用串流的記憶體時,Amazon Bedrock AgentCore 記憶體會驗證組態和許可。成功驗證後,StreamingEnabled事件會發佈到您的 Kinesis Data Stream。
檢查您的消費者是否有以下格式的驗證事件:
{ "memoryStreamEvent": { "eventType": "StreamingEnabled", "eventTime": "2026-03-03T19:27:08.344082626Z", "memoryId": "<memory-id>", "message": "Streaming enabled for memory resource: <memory-id>" } }
設定事件內容層級
contentConfigurations 欄位控制每個事件中包含的資料。您可以選擇兩個內容層級:
-
METADATA_ONLY :串流事件僅包含中繼資料欄位
namespaces(memoryId、memoryRecordId、strategyId、、時間戳記等)。需要 API 呼叫才能擷取完整的記憶體記錄內容。 -
FULL_CONTENT :串流事件包含所有中繼資料欄位,以及包含記憶體記錄內容
memoryRecordText的欄位。
METADATA_ONLY 用於輕量型事件通知,您只需要知道發生變更。當您的下游處理需要記憶體記錄文字而不進行其他 API 呼叫FULL_CONTENT時使用 。
測試您的實作
步驟 1:建立測試事件
使用資料平面 APIs產生記憶體記錄生命週期事件,並確認它們出現在您的取用者中。
透過短期記憶體建立事件 (觸發非同步擷取):
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" } } ]'
直接建立記錄:
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" } ]'
步驟 2:驗證交付
檢查您的取用者以確認收到事件。您應該會看到透過任一方法建立之記錄MemoryRecordCreated的事件。
您可以使用 ListMemoryRecords API 進行交叉參考:
aws bedrock-agentcore list-memory-records \ --memory-id "<memory-id>" \ --namespace "<namespace>"
管理串流組態
更新串流組態
使用 UpdateMemory API 來修改或移除串流交付資源。
移除串流:
aws bedrock-agentcore-control update-memory \ --region us-east-1 \ --memory-id "<memory-id>" \ --stream-delivery-resources '{"resources": []}'
變更內容層級
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" } ] } } ] }'
可觀測性
Amazon Bedrock AgentCore Memory 會將 CloudWatch 指標和日誌提供給 AWS 您的帳戶,讓您了解記憶體記錄串流交付的運作狀態和狀態。
指標
指標會在 AWS/Bedrock-AgentCore 命名空間下發佈至您的帳戶。
| 指標 | 說明 |
|---|---|
|
|
成功發佈至 Kinesis Data Stream 的記憶體記錄事件數目。 |
|
|
無法發佈至 Kinesis Data Stream 的記憶體記錄事件數目。 |
|
|
由於客戶端組態問題而失敗的事件數量,例如缺少 IAM 許可或無效的 KMS 金鑰狀態。 |
所有指標都會以具有下列維度的Count單位發出:
| 維度 | Value | 說明 |
|---|---|---|
|
作業 |
|
串流操作類型。 |
|
資源 |
記憶體 ARN |
記憶體資源的 ARN (例如 |
日誌
發生終端機 (不可重試) 發佈失敗時,Amazon Bedrock AgentCore 記憶體會將日誌提供給您的帳戶。
| 欄位 | 說明 |
|---|---|
|
|
描述失敗的錯誤訊息。 |
|
|
目標 Kinesis Data Stream ARN。 |
|
|
特定錯誤代碼。 |
|
|
人類可讀取的錯誤描述。 |
|
|
串流事件類型 |
|
|
受影響記憶體記錄的識別符。 |