翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
イベントを作成する
イベントは、構造化された情報が AgentCore Memory の長期メモリに抽出される短期の基本的な単位です。CreateEvent オペレーションを使用すると、アクターとセッション別に整理されたさまざまなタイプのデータを AgentCore Memory に保存できます。イベントの範囲は、以下のメモリ内にあります。
- ActorId
-
エンドユーザーやエージェント/ユーザーの組み合わせなど、イベントに関連付けられたエンティティを識別します
- SessionId
-
会話セッションなどの関連イベントをグループ化する
CreateEvent オペレーションは、指定されたメモリセッション内に新しいイミュータブルイベントを保存します。イベントは、会話メッセージ、ユーザーアクション、システムイベントなど、エージェントが記憶したい個々の情報を表します。
このオペレーションは、次の場合に便利です。
-
ユーザー、エージェント、ツール間の会話履歴の記録
-
ユーザーとのやり取りと動作の保存
-
システムイベントと状態変更のキャプチャ
-
セッション内のアクティビティの時系列レコードの構築
コード例については、「シナリオ: AgentCore Memory を使用するカスタマーサポート AI エージェント」を参照してください。
注記
取得可能な短期イベントとして保持せずにコンテンツを長期メモリにフィードする場合は、代わりに IngestData オペレーションを使用します。
イベントペイロードタイプ
payload パラメータはペイロード項目のリストを受け入れ、1 つのイベントにさまざまなタイプのデータを保存できます。一般的なペイロードタイプは次のとおりです。
- 会話型
-
ロール (「ユーザー」や「アシスタント」など) とコンテンツを含む会話メッセージを保存する場合。
- JSON
-
動作イベント、アクティビティログ、システムイベントなどの非対話型の JSON 形式のデータを保存する場合、ペイロードごとに最大 100 KB です。
- blob
-
イメージやドキュメントなどのバイナリ形式のデータ、または JSON 形式で保存されるデータなど、エージェントに固有のデータを保存する場合。
注記
会話ペイロードと JSON ペイロードは長期メモリに抽出されます。Blob ペイロードは短期メモリにのみ保存され、抽出されません。
payload はリストであるため、1 つのイベントに複数のペイロード項目と混合ペイロードタイプを含めることができます。次の例は、会話メッセージ、JSON アクティビティログ、バイナリ BLOB (base64 でエンコードされたイメージ) を 1 つのイベントに保存する JSON リクエスト本文を示しています。
例 – マルチペイロードイベントリクエスト
{ "memoryId": "mem-12345abcdef", "actorId": "agent-support-123/customer-456", "sessionId": "session-789", "eventTimestamp": 1718806000000, "payload": [ { "conversational": { "content": { "text": "Here's a photo of the camera I'm interested in." }, "role": "USER" } }, { "json": { "content": { "eventType": "product_viewed", "productId": "cam-9921", "category": "action-cameras", "priceUsd": 349.99 } } }, { "blob": "iVBORw0KGgoAAAANSUhEUg..." } ] }
抽出設定
extractionConfig パラメータを使用して、このイベントの長期メモリ抽出の動作を設定します。このパラメータを使用して、抽出namespaceTemplates中にサービスが置き換えるカスタム名前空間変数値を渡します。
- namespaceVariables
-
カスタム名前空間変数キーの値へのマップ。メモリの作成時に
namespaceKeysパラメータを使用してカスタム名前空間変数を定義した場合は、ここで値を渡して、サービスが長期メモリストレージの名前空間階層を解決できるようにします。すべてのキーと値は小文字である必要があります。
次の例は、イベントの作成時にカスタム名前空間変数値を渡す方法を示しています。
{ "memoryId": "mem-12345abcdef", "actorId": "user456", "sessionId": "session789", "eventTimestamp": 1692804206123, "payload": [ { "conversational": { "content": {"text": "I need help with my deployment."}, "role": "USER" } } ], "extractionConfig": { "namespaceVariables": { "orgname": "engineering", "teamname": "backend" } } }
注記
の必須値がないか無効extractionConfigである場合、CreateEventオペレーションは成功し、イベントは短期メモリに保持されます。ただし、長期的なメモリ抽出は、影響を受ける戦略では開始されない場合があります。提供されたログを設定して、抽出の失敗をモニタリングします。
イベントの分岐
branch パラメータを使用すると、高度な分岐を通じてイベントを整理できます。これは、メッセージ編集や代替会話パスなどのシナリオに役立ちます。例えば、長時間の会話があり、5 つ前のメッセージから別の会話を試したいと考えているとします。branch パラメータを使用して、新しいブランチに保存されているそのメッセージから新しい会話を開始できます。これにより、元の会話に戻ることもできます。また、より日常的には、ユーザーが最新のメッセージを編集し (ユーザーが早く入力を押すか、タイプミスがある場合)、会話を続行できるようにする場合に便利です。
ブランチを作成するときは、以下を指定します。
- name
-
「編集済み会話」など、ブランチのわかりやすい名前。
- rootEventId
-
ブランチの送信元のイベントの ID。
編集されたメッセージを表すブランチイベントを作成する例を次に示します。
{ "memoryId": "mem-12345abcdef", "actorId": "agent-support-123/customer-456", "sessionId": "session-789", "eventTimestamp": 1718806000000, "payload": [ { "conversational": { "content": { "text": "I'm looking for a waterproof action camera for extreme sports." }, "role": "USER" } } ], "branch": { "name": "edited-conversation", "rootEventId": "evt-67890" } }