View a markdown version of this page

記憶體 - Amazon Bedrock AgentCore

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

記憶體

啟用記憶體時,繫帶會在 AgentCore 記憶體中保持對話狀態。在具有相同工作階段 ID 的後續調用上,代理程式會在其原因之前載入儲存的歷史記錄。

記憶體的運作方式

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

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

  • 演員 ID 識別與客服人員 (使用者、其他客服人員或系統) 互動的實體。記憶體事件的範圍是 actorId + sessionId,因此每個演員都有隔離的記憶體。長期擷取使用 actorId 做為命名空間路徑 (例如 /summary/{actorId}/{sessionId}/) 中的範本變數,對應至設定的記憶體策略。

受管記憶體

當您直接使用服務 API 建立設備並省略記憶體組態時,服務會佈建受管記憶體。AgentCore CLI 使用不同的預設值:除非您選取受管記憶體或現有的記憶體資源,否則新的 CLI 機制會停用記憶體。

記憶體費用

繫帶本身不收取額外費用。受管記憶體會產生短期事件、存放長期記憶體記錄和擷取請求的標準 AgentCore 記憶體費用。若要避免持續的記憶體費用,請在建立繫帶時停用記憶體。如需詳細資訊,請參閱 了解輸送成本和 Amazon Bedrock AgentCore 定價。

若要在建立時間自訂受管記憶體:

範例
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 --project-name MyHarnessProject --no-agent cd MyHarnessProject agentcore add harness \ --name myagent \ --memory-mode managed \ --memory-strategies SEMANTIC,SUMMARIZATION \ --memory-event-expiry-days 30 agentcore deploy

記憶體預設為停用。若要建立沒有記憶體的繫帶,請執行下列命令,而非上述agentcore add harness命令:

agentcore add harness --name myagent --no-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 --project-name MyHarnessProject --no-agent cd MyHarnessProject agentcore add harness --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=10、relevanceScore=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 記憶體、建立記憶體存放區、長期記憶體策略。