

# 使用命名空間指定長期記憶體組織
<a name="specify-long-term-memory-organization"></a>

當您[建立](memory-create-a-memory-store.md) AgentCore 記憶體時，請使用命名空間來指定[記憶體策略](memory-strategies.md)[的長期記憶體](memory-types.md#memory-long-term-memory)在邏輯上分組的位置。每次使用記憶體策略擷取新的長期記憶體時，都會儲存在您設定的命名空間中。這表示所有長期記憶體的範圍都限定在其特定的命名空間，保持它們井然有序，並防止與其他使用者或工作階段進行任何混淆。您應該使用以斜線 `/` 分隔的階層格式。這有助於清晰地整理記憶。如有需要，您可以根據應用程式的組織需求，選擇在命名空間中的括號內使用下列預先定義的變數：
+  **actorId** – 識別長期記憶體所屬的對象。

  演員是指實體，例如最終使用者或代理程式/使用者組合。例如，在編碼支援聊天機器人中，演員通常是提出問題的開發人員。使用演員 ID 可協助系統知道記憶體所屬的使用者，將每個使用者的資料保持個別和整理。
+  **strategyId** – 顯示正在使用的記憶體策略。當您建立 AgentCore 記憶體時，系統會自動產生此策略識別符。
+  **sessionId** – 識別記憶體來自哪個工作階段或對話。

  工作階段通常是使用者與 AI 代理器之間的單一對話或互動期間。它會將對話期間發生的所有相關訊息和事件分組。

例如，如果您在建立 AgentCore 記憶體時將下列命名空間定義為策略的輸入：

```
/strategy/{memoryStrategyId}/actor/{actorId}/session/{sessionId}/
```

建立記憶體後，此命名空間可能看起來像：

```
/strategy/summarization-93483043//actor/actor-9830m2w3/session/session-9330sds8
```

命名空間可以有不同層級的精細程度：

 **組織最精細層級** 

 `/strategy/{memoryStrategyId}/actor/{actorId}/session/{sessionId}/` 

 **跨工作階段演員層級的精細** 

 `/strategy/{memoryStrategyId}/actor/{actorId}/` 

 **跨演員策略層級的精細** 

 `/strategy/{memoryStrategyId}/` 

 **全球所有策略** 

 `/` 

如需範例程式碼，請參閱[啟用長期記憶體](long-term-enabling-long-term-memory.md)。

## 使用 IAM 限制存取
<a name="memory-scope-iam"></a>

您可以建立 IAM 政策，依您定義的範圍限制記憶體存取，例如演員、工作階段和命名空間。使用範圍做為 IAM 政策中的內容索引鍵。

下列政策會將擷取記憶體的存取權限制在特定命名空間或特定namespacePath階層下的記錄。在此範例中，政策僅允許存取具有確切命名空間的記憶體，例如具有命名空間的 `summaries/agent1/` OR，位於具有 的下列namespacePath階層下，例如 `summaries/agent1/` `summaries/agent1/session1/`或 `summaries/agent1/session2/`。

```
{
"Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "SpecificNamespaceAccess",
      "Effect": "Allow",
      "Action": [
        "bedrock-agentcore:RetrieveMemoryRecords"
      ],
      "Resource": "arn:aws:bedrock-agentcore:us-east-1:123456789012:memory/memory_id",
      "Condition": {
        "StringEquals": {
          "bedrock-agentcore:namespace": "summaries/agent1/"
        }
      }
    },
    {
      "Sid": "SpecificNamespacePathAccess",
      "Effect": "Allow",
      "Action": [
        "bedrock-agentcore:RetrieveMemoryRecords"
      ],
      "Resource": "arn:aws:bedrock-agentcore:us-east-1:123456789012:memory/memory_id",
      "Condition": {
        "StringLike": {
          "bedrock-agentcore:namespacePath": "summaries/agent1/*"
        }
      }
    }
  ]
}
```