Specificare l'organizzazione della memoria a lungo termine con namespace
Quando crei una AgentCore memoria, usa uno spazio dei nomi per specificare dove sono raggruppate logicamente le memorie a lungo termine per una strategia di memoria. Ogni volta che una nuova memoria a lungo termine viene estratta utilizzando la strategia di memoria, viene salvata nello spazio dei nomi impostato. Ciò significa che tutte le memorie a lungo termine sono limitate al rispettivo namespace specifico, mantenendole organizzate ed evitando qualsiasi confusione con altri utenti o sessioni. È necessario utilizzare un formato gerarchico separato da barre. / Questo aiuta a mantenere i ricordi organizzati in modo chiaro. Se necessario, potete scegliere di utilizzare le seguenti variabili predefinite racchiuse tra parentesi nello spazio dei nomi in base alle esigenze organizzative dell'applicazione:
-
actorID: identifica a chi appartiene la memoria a lungo termine.
Un attore si riferisce a entità come utenti finali o combinazioni. agent/user Ad esempio, in un chatbot di supporto alla codifica, l'attore è in genere lo sviluppatore che pone domande. L'utilizzo dell'ID attore aiuta il sistema a sapere a quale utente appartiene la memoria, mantenendo i dati di ogni utente separati e organizzati.
-
StrategyID: mostra quale strategia di memoria viene utilizzata. Questo identificatore di strategia viene generato automaticamente quando si crea una AgentCore memoria.
-
SessionID: identifica la sessione o la conversazione da cui proviene la memoria.
Una sessione è in genere un singolo periodo di conversazione o interazione tra l'utente e l'agente AI. Raggruppa tutti i messaggi e gli eventi correlati che si verificano durante quella conversazione.
Ad esempio, se definisci il seguente namespace come input per la tua strategia durante la creazione di una AgentCore memoria:
/strategy/{memoryStrategyId}/actor/{actorId}/session/{sessionId}/
Dopo la creazione della memoria, questo namespace potrebbe avere il seguente aspetto:
/strategy/summarization-93483043//actor/actor-9830m2w3/session/session-9330sds8
Un namespace può avere diversi livelli di granularità:
Livello di organizzazione più granulare
/strategy/{memoryStrategyId}/actor/{actorId}/session/{sessionId}/
Granulare a livello di attore in tutte le sessioni
/strategy/{memoryStrategyId}/actor/{actorId}/
Granulare a livello di strategia per tutti gli attori
/strategy/{memoryStrategyId}/
Globale in tutte le strategie
/
Per esempio di codice, vedi Abilitare la memoria a lungo termine.
Limita l'accesso con IAM
Puoi creare policy IAM per limitare l'accesso alla memoria in base agli ambiti che definisci, come attore, sessione e namespace. Usa gli ambiti come chiavi di contesto nelle tue policy IAM.
La seguente policy limita l'accesso al recupero delle memorie a uno o più record specifici in una particolare gerarchia di NamespacePath. In questo esempio, la policy consente l'accesso solo alle memorie con namespace esatti come OR con namespace nella seguente gerarchia NamespacePath con, come summaries/agent1/ o. 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/*" } } } ] }