メモリ
ハーネスは AgentCore Memory で会話状態を自動的に保持します。呼び出しのたびに、会話はセッション ID によって範囲が限定されます (さらに、提供された場合はアクター ID によって範囲が限定されます)。同じセッション ID を持つ後続の呼び出しでは、エージェントの履歴は理由の前にメモリからロードされます。基になるmicroVM セッションの有効期限が切れた後でも、前のターンで何が起こったかを記憶します。以前のメッセージを自分で渡す必要はありません。新しいメッセージを送信するだけです。
メモリの仕組み
-
短期メモリは、セッション内の raw イベント (メッセージ、ツール呼び出し) をキャプチャします。これは、エージェントにターン間の継続性を与えるものです。
-
長期メモリは、設定可能な戦略 (セマンティック、要約、ユーザー設定、エピソード、カスタム) を通じて永続的な知識を抽出し、後のセッションでセマンティック検索を通じて取得できるようにします。
-
アクター ID は、エージェント (ユーザー、別のエージェント、またはシステム) とやり取りするエンティティを識別します。メモリイベントは actorId + sessionId によってスコープされるため、各アクターには独立したメモリがあります。長期取得では、actorId を名前空間パス (例:
/summary/{actorId}/{sessionId}/) のテンプレート変数として使用し、設定されたメモリ戦略にマッピングします。
マネージドメモリ (デフォルト)
デフォルトでは、ハーネスは AgentCoreメモリインスタンスを適切なデフォルト (セマンティック + 要約戦略、30 日間のイベントの有効期限) で自動的にプロビジョニングします。何も作成または設定する必要はありません。メモリは機能します。
作成時にマネージドメモリをカスタマイズするには:
例
マネージドメモリはハーネスによって完全に管理されます。
-
戦略設定は を通じて制御されます
UpdateHarness。引き続き、Memory APIs を使用してイベントとクエリレコードを直接読み書きできます。 -
マネージドメモリは、Memory APIsから直接削除することはできません。マネージドメモリを通常の AgentCore メモリリソースに変換するには、次の 2 つの方法でハーネスからの関連付けを解除できます。
-
UpdateHarnessを使用して BYO (agentCoreMemoryConfiguration) または 無効に切り替えます。 -
削除
deleteManagedMemory=false時に渡すと、代わりに関連付けが解除されます。デフォルトでDeleteHarnessは、マネージドメモリがカスケードによって削除されます。
-
利用可能な戦略
| 方針 | 説明 |
|---|---|
|
|
セマンティック検索で取得できる事実に関する知識を会話から抽出します。 |
|
|
アクターとセッションによってスコープされた会話の実行概要を作成します。 |
|
|
会話中に表現されたユーザー設定と設定をキャプチャします。 |
|
|
重要なイベントと経験を個別のエピソードとして記録します。 |
既存のメモリを追加する (BYO)
カスタム名前空間テンプレート、KMS 暗号化、複数のハーネスにわたる共有メモリなど、マネージドメモリが提供するもの以外の高度な設定が必要な場合は、代わりに既存の AgentCore Memory インスタンスをアタッチします。
例
メモリを無効にする
メモリを完全に無効にするには:
aws bedrock-agentcore-control update-harness \ --harness-id "MyHarness-UuFdkQoXSL" \ --memory '{"optionalValue": {"disabled": {}}}'
アクター ID を使用したユーザーごとのメモリスコープ
呼び出しactorId時に を渡し、メモリの範囲を特定のユーザーに指定します。各アクターは、短期メモリと長期メモリを分離します。
response = client.invoke_harness( harnessArn=HARNESS_ARN, runtimeSessionId=SESSION_ID, actorId="user-123", messages=[{"role": "user", "content": [{"text": "What do you remember about my preferences?"}]}], )
長期メモリ取得
ハーネスにアクティブなメモリ戦略 (マネージドまたは BYO) がある場合、取得は自動的に機能します。ハーネスはメモリインスタンスのアクティブな戦略から取得設定を取得します。呼び出しごとに、エージェントは関連する長期記憶をクエリし、推論の前に会話コンテキストに挿入します。
デフォルトの動作
-
取得は、アクティブな戦略の名前空間ごとにデフォルトのパラメータ (
topK=10、relevanceScore=0.2) で自動的に設定されます。 -
マネージドメモリまたは BYO メモリに手動設定は必要ありません。
デフォルトを上書きする: BYO メモリ設定retrievalConfigで を明示的に指定すると、値が優先され、自動取得は行われません。これにより、クエリする名前空間をカスタマイズしたり、 topK や を調整したりrelevanceScore、特定の戦略の取得を無効にしたりできます。
aws bedrock-agentcore-control update-harness \ --harness-id "MyHarness-UuFdkQoXSL" \ --memory '{"optionalValue": {"agentCoreMemoryConfiguration": {"arn": "arn:aws:bedrock-agentcore:us-west-2:123456789012:memory/MyMemory-abc123", "retrievalConfig": {"/facts/{actorId}/": {"topK": 5, "relevanceScore": 0.5, "strategyId": "FactExtractor-abc123"}}}}}'
重要
ハーネスにアタッチした後に BYO Memory インスタンスの戦略を更新 (追加または削除) する場合は、 を呼び出しUpdateHarnessて取得設定を更新します。マネージドメモリの場合、 によって戦略が自動的に設定UpdateHarnessを更新します。
コンテキスト切り捨て
会話履歴がモデルのコンテキストウィンドウを超えて増加すると、ハーネスは切り捨て戦略を適用します。これをハーネスに設定するか、呼び出しごとに上書きします。
-
sliding_window(デフォルト) - 最新の N メッセージを保持します。シンプルで予測可能です。 -
summarization- 古いメッセージを要約に圧縮し、より少ないトークンでより多くのコンテキストを保持します。 -
none- 切り捨てなし。コンテキストサイズを自分で管理している場合にのみ を使用します。
aws bedrock-agentcore-control update-harness \ --harness-id "MyHarness-UuFdkQoXSL" \ --truncation '{"strategy": "sliding_window", "slidingWindowConfig": {"numMessages": 30}}'
詳細: AgentCore Memory、メモリストアの作成、長期メモリ戦略。
関連トピック
-
モデルと手順 - モデルとシステムプロンプトを設定する
-
環境とファイルシステム - 環境、ファイルシステム、カスタムコンテナ
-
スキル - Git、S3、または Skills から AWS スキルをアタッチする
-
セキュリティとアクセス制御について - メモリアクセスの実行ロールポリシー