View a markdown version of this page

Organizzazione della memoria nella AgentCore memoria - Amazon Bedrock AgentCore

Organizzazione della memoria nella 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 uno spazio dei nomi 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 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.

  • 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, potete 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 facoltativamente creare una o più strategie di memoria. All'interno di una strategia, usa uno spazio dei nomi 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 nello spazio dei nomi impostato. Ciò significa che tutte le memorie a lungo termine sono limitate al rispettivo namespace specifico, mantenendole organizzate e prevenendo eventuali conflitti con altri utenti o sessioni. È necessario utilizzare un formato gerarchico separato da barre in avanti/, che terminino con una barra finale. La barra finale impedisce le collisioni di prefissi nelle applicazioni multi-tenant, ad esempio, usa invece di. /actors/Alice/ /actors/Alice Se necessario, potete 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.

  • StrategyID: mostra quale strategia di memoria viene utilizzata.

  • SessionID: identifica la sessione o la conversazione da cui proviene la memoria.

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

/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/*" } } } ] }