View a markdown version of this page

メモリ - Amazon Bedrock AgentCore

メモリ

ハーネスは AgentCore Memory で会話状態を自動的に保持します。呼び出しのたびに、会話はセッション ID によって範囲が限定されます (さらに、提供された場合はアクター ID によって範囲が限定されます)。同じセッション ID を持つ後続の呼び出しでは、エージェントの履歴は理由の前にメモリからロードされます。基になるmicroVM セッションの有効期限が切れた後でも、前のターンで何が起こったかを記憶します。以前のメッセージを自分で渡す必要はありません。新しいメッセージを送信するだけです。

メモリの仕組み

  • 短期メモリは、セッション内の raw イベント (メッセージ、ツール呼び出し) をキャプチャします。これは、エージェントにターン間の継続性を与えるものです。

  • 長期メモリは、設定可能な戦略 (セマンティック要約ユーザー設定エピソードカスタム) を通じて永続的な知識を抽出し、後のセッションでセマンティック検索を通じて取得できるようにします。

  • アクター ID は、エージェント (ユーザー、別のエージェント、またはシステム) とやり取りするエンティティを識別します。メモリイベントは actorId + sessionId によってスコープされるため、各アクターには独立したメモリがあります。長期取得では、actorId を名前空間パス (例: /summary/{actorId}/{sessionId}/) のテンプレート変数として使用し、設定されたメモリ戦略にマッピングします。

マネージドメモリ (デフォルト)

デフォルトでは、ハーネスは AgentCoreメモリインスタンスを適切なデフォルト (セマンティック + 要約戦略、30 日間のイベントの有効期限) で自動的にプロビジョニングします。何も作成または設定する必要はありません。メモリは機能します。

作成時にマネージドメモリをカスタマイズするには:

AWS CLI/boto3
aws bedrock-agentcore-control create-harness \ --harness-name "MyHarness" \ --execution-role-arn "arn:aws:iam::123456789012:role/MyHarnessRole" \ --memory '{"managedMemoryConfiguration": {"strategies": ["SEMANTIC", "SUMMARIZATION", "USER_PREFERENCE"], "eventExpiryDuration": 60}}'

既存のハーネスの戦略を更新するには:

aws bedrock-agentcore-control update-harness \ --harness-id "MyHarness-UuFdkQoXSL" \ --memory '{"optionalValue": {"managedMemoryConfiguration": {"strategies": ["SEMANTIC", "SUMMARIZATION", "USER_PREFERENCE", "EPISODIC"]}}}'
AgentCore CLI

メモリは、ハーネスの作成時にデフォルトで有効になっています。

agentcore create --name myagent agentcore deploy

マネージドメモリをスキップするには:

agentcore create --name myagent --no-harness-memory
Interactive

プロジェクトディレクトリagentcoreで を実行し、 の追加 を選択し、ハーネス を選択します。ウィザードにはメモリステップが含まれています。

  1. メモリステップで、永続メモリなしまたは有効を選択して、ハーネスの永続メモリを作成します。

    メモリステップ: 永続メモリがないか、有効になっている
  2. メモリが有効な場合、追加のメモリ調整オプションが詳細設定 に表示されます。Space で有効にし、Enter キーを押して取得を調整します。

    詳細設定: メモリ調整オプション
  3. 必要に応じて、メッセージ数、取得トップ K、関連性スコアを設定します (それぞれスキップできます)。

    メモリ調整: メッセージ数、上位 K、関連性スコア

ウィザードを確認し、 agentcore deployを実行して適用します。

マネージドメモリはハーネスによって完全に管理されます。

  • 戦略設定は を通じて制御されますUpdateHarness。引き続き、Memory APIs を使用してイベントとクエリレコードを直接読み書きできます。

  • マネージドメモリは、Memory APIsから直接削除することはできません。マネージドメモリを通常の AgentCore メモリリソースに変換するには、次の 2 つの方法でハーネスからの関連付けを解除できます。

    • UpdateHarness を使用して BYO (agentCoreMemoryConfiguration) または 無効に切り替えます。

    • 削除deleteManagedMemory=false時に渡すと、代わりに関連付けが解除されます。デフォルトでDeleteHarnessは、マネージドメモリがカスケードによって削除されます。

利用可能な戦略

方針 説明

SEMANTIC

セマンティック検索で取得できる事実に関する知識を会話から抽出します。

SUMMARIZATION

アクターとセッションによってスコープされた会話の実行概要を作成します。

USER_PREFERENCE

会話中に表現されたユーザー設定と設定をキャプチャします。

EPISODIC

重要なイベントと経験を個別のエピソードとして記録します。

既存のメモリを追加する (BYO)

カスタム名前空間テンプレート、KMS 暗号化、複数のハーネスにわたる共有メモリなど、マネージドメモリが提供するもの以外の高度な設定が必要な場合は、代わりに既存の AgentCore Memory インスタンスをアタッチします。

AWS CLI/boto3

メモリインスタンスを作成します。

aws bedrock-agentcore-control create-memory \ --name "MyMemory" \ --event-expiry-duration 30 \ --description "Memory for my harness"

ハーネスにアタッチします。

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"}}}'
AgentCore CLI
agentcore create --name myagent --memory-arn "arn:aws:bedrock-agentcore:us-west-2:123456789012:memory/MyMemory-abc123" agentcore deploy

メモリを無効にする

メモリを完全に無効にするには:

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=10relevanceScore=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メモリストアの作成長期メモリ戦略