View a markdown version of this page

記憶體 - Amazon Bedrock AgentCore

記憶體

繫帶會自動在 AgentCore 記憶體中保持對話狀態。每次調用時,對話都會儲存,範圍依工作階段 ID 而定 (如果提供,還會依演員 ID 而定)。在具有相同工作階段 ID 的後續調用中,代理程式的歷史記錄會在原因發生之前從記憶體載入 - 它會記住先前輪換中發生的情況,即使在基礎 microVM 工作階段過期之後也是如此。您不需要自行傳遞先前的訊息,只要傳送新訊息即可。

記憶體的運作方式

  • 短期記憶體會擷取工作階段中的原始事件 (訊息、工具呼叫)。這是代理程式跨回合的連續性。

  • 長期記憶體透過可設定的策略 (語意摘要使用者偏好設定偶發自訂) 擷取耐久知識,並在稍後的工作階段中透過語意搜尋擷取。

  • 演員 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. 啟用記憶體時,額外的記憶體調校選項會顯示在進階設定 中。使用空格啟用它,然後按 Enter 來調整擷取。

    進階設定:記憶體調校選項
  3. 選擇性地設定訊息計數、擷取前 K 和相關性分數 (每個都可以略過)。

    記憶體調校:訊息計數、最高 K、相關性分數

確認精靈,然後執行 agentcore deploy以套用。

受管記憶體完全由 集合管理:

  • 策略組態是透過 控制UpdateHarness。您仍然可以透過記憶體 APIs直接讀取/寫入事件和查詢記錄。

  • 無法直接透過記憶體 APIs 刪除受管記憶體。若要將受管記憶體轉換為一般 AgentCore 記憶體資源,您可以透過兩種方式取消其與集合的關聯:

    • 使用 UpdateHarness 切換到 BYO (agentCoreMemoryConfiguration) 或停用。

    • 在刪除deleteManagedMemory=false時傳遞以取消關聯 - DeleteHarness 依預設,層疊刪除受管記憶體。

可用的策略

策略 說明

SEMANTIC

從對話中擷取事實知識,可透過語意搜尋擷取。

SUMMARIZATION

建立對話的執行摘要,以演員和工作階段為範圍。

USER_PREFERENCE

擷取對話期間所表達的使用者偏好設定和設定。

EPISODIC

將重大事件和體驗記錄為離散事件。

新增現有記憶體 (BYO)

如果您需要超出受管記憶體提供的進階組態 - 自訂命名空間範本、KMS 加密,或跨多個機制的共用記憶體 - 請改為連接現有的 AgentCore 記憶體執行個體。

範例
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中明確提供 ,您的值會優先,不會發生自動衍生。這可讓您自訂要查詢、調整topKrelevanceScore或停用特定策略擷取的命名空間。

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 記憶體執行個體連接到繫帶之後更新其策略 (新增或移除),請呼叫 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 記憶體建立記憶體存放區長期記憶體策略