View a markdown version of this page

Organizzazione della memoria in AgentCore memoria - Fondamento Amazon AgentCore

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Organizzazione della memoria in AgentCore memoria

È possibile impostare il modo in cui i ricordi a breve e lungo termine sono organizzati in una AgentCore memoria. Ciò consente di isolare i ricordi per sessione e per attore. Per la memoria a lungo termine, puoi anche impostare un namespace per organizzare le memorie estratte per una strategia di memoria.

  • Attore: si riferisce a entità come utenti finali o combinazioni. agent/user Ad esempio, in un chatbot di supporto alla programmazione, l'attore è solitamente lo sviluppatore che pone domande. L'uso dell'actor ID aiuta il sistema a sapere a quale utente appartiene la memoria, mantenendo i dati di ogni utente separati e organizzati.

  • Sessione: 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.

  • Strategia (solo Long-term memoria): mostra quale strategia di memoria a lungo termine viene utilizzata. Questo identificatore di strategia viene generato automaticamente quando si crea una AgentCore memoria.

Short-term organizzazione della memoria

Quando si crea un evento di memoria a breve termine con CreateEvent, si specificano un ID di sessione (sessionId) e un ID attore (actorId) che identificano in modo univoco la sessione e l'attore dell'evento. Successivamente, è possibile recuperare gli eventi per un utente o una sessione utilizzando operazioni di memoria a breve termine.

Per esempio di codice, vedi Passaggio 3: acquisizione della cronologia delle conversazioni.

Long-term organizzazione della memoria

Quando si crea o si aggiorna una AgentCore memoria, è possibile creare facoltativamente una o più strategie di memoria. All'interno di una strategia, utilizzate un namespace per specificare AgentCore Memory organizza le memorie a lungo termine.

Ogni volta che AgentCore Memory estrae una nuova memoria a lungo termine con una strategia di memoria, la memoria a lungo termine viene salvata con lo spazio dei nomi impostato. Ciò significa che tutte le memorie a lungo termine sono assegnate al rispettivo namespace specifico, mantenendole organizzate e prevenendo qualsiasi conflitto con altri utenti o sessioni. È necessario utilizzare un formato gerarchico separato da barre in avanti/, che terminano con una barra finale. La barra finale previene le collisioni tra prefissi nelle applicazioni multi-tenant, ad esempio usa invece di. /actors/Alice/ /actors/Alice Se necessario, puoi utilizzare le seguenti variabili predefinite tra parentesi graffe nel namespace in base alle esigenze organizzative dell'applicazione:

  • actorID: identifica a chi appartiene la memoria a lungo termine.

  • StrategyID: mostra quale strategia di memoria viene utilizzata.

  • sessionID: identifica da quale sessione o conversazione proviene la memoria.

Ad esempio, se definisci il seguente namespace come input per la tua strategia durante la creazione di una Memory: AgentCore

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

Dopo la creazione della memoria, questo namespace potrebbe assomigliare a:

/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 tra gli attori

/strategy/{memoryStrategyId}/

Globale in tutte le strategie

/

Per esempio di codice, vedi Abilitare la memoria a lungo termine.

Per ulteriori informazioni sull'organizzazione delle memorie a lungo termine con namespace, comprese le variabili di namespace personalizzate e il controllo degli accessi IAM, vedi Specificare l'organizzazione della memoria a lungo termine con namespace.

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 NamespacePath. In questo esempio, la policy consente l'accesso solo alle memorie con namespace esatti come OR con namespace nella seguente gerarchia NamespacePath con, ad esempio summaries/agent1/ or. 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/*" } } } ] }