View a markdown version of this page

Memoria - Amazon Bedrock AgentCore

Memoria

L'imbracatura mantiene automaticamente lo stato di conversazione in AgentCore memoria. Ad ogni chiamata, la conversazione viene salvata, suddivisa in base all'ID della sessione (e in aggiunta all'ID dell'attore, se fornito). Nelle chiamate successive con lo stesso ID di sessione, la cronologia dell'agente viene caricata dalla memoria prima che venga eseguita la scansione: ricorda ciò che è accaduto nei turni precedenti, anche dopo la scadenza della sessione MicroVM sottostante. Non è necessario inviare personalmente i messaggi precedenti; è sufficiente inviare il nuovo messaggio.

Come funziona la memoria

  • Short-term la memoria acquisisce eventi non elaborati (messaggi, chiamate di strumenti) all'interno di una sessione. Questo è ciò che dà all'agente la continuità tra i turni.

  • Long-term la memoria estrae conoscenze durevoli tramite strategie configurabili (semantiche, di riepilogo, preferenze dell'utente, episodiche o personalizzate) e le rende recuperabili tramite ricerca semantica nelle sessioni successive.

  • Actor ID identifica l'entità che interagisce con l'agente (un utente, un altro agente o un sistema). Gli eventi di memoria sono definiti da actorID + sessionID, quindi ogni attore ha una memoria isolata. Long-term il recupero utilizza actorID come variabile modello nei percorsi dello spazio dei nomi (ad esempio), mappando le strategie di memoria configurate. /summary/{actorId}/{sessionId}/

Memoria gestita (impostazione predefinita)

Per impostazione predefinita, l'harness esegue automaticamente il provisioning di un'istanza di AgentCore memoria con impostazioni predefinite ragionevoli (semantica e strategie di riepilogo, scadenza degli eventi di 30 giorni). Non è necessario creare o configurare nulla: la memoria funziona e basta.

Per personalizzare la memoria gestita al momento della creazione:

Esempio
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}}'

Per aggiornare le strategie su un cablaggio esistente:

aws bedrock-agentcore-control update-harness \ --harness-id "MyHarness-UuFdkQoXSL" \ --memory '{"optionalValue": {"managedMemoryConfiguration": {"strategies": ["SEMANTIC", "SUMMARIZATION", "USER_PREFERENCE", "EPISODIC"]}}}'
AgentCore CLI

La memoria è abilitata per impostazione predefinita quando si crea un cablaggio:

agentcore create --name myagent agentcore deploy

Per ignorare la memoria gestita:

agentcore create --name myagent --no-harness-memory
Interactive

Esegui agentcore in una directory di progetto, seleziona aggiungi, quindi scegli Harness. La procedura guidata include un passaggio di memoria.

  1. Nella fase Memoria, scegliete Nessuna memoria persistente o Abilitato per creare memoria persistente per il cablaggio.

    Fase di memoria: Nessuna memoria persistente o Attivata
  2. Quando la memoria è abilitata, nelle impostazioni avanzate viene visualizzata un'ulteriore opzione di ottimizzazione della memoria. Attivala con Space e premi Invio per ottimizzare il recupero.

    Impostazioni avanzate: opzione di ottimizzazione della memoria
  3. Opzionalmente, imposta il conteggio dei messaggi, la parte superiore di recupero K e il punteggio di pertinenza (ognuno può essere ignorato).

    Ottimizzazione della memoria: conteggio dei messaggi, top K, punteggio di pertinenza

Conferma la procedura guidata, quindi agentcore deploy esegui per applicare.

La memoria gestita è completamente gestita dal cablaggio:

  • La configurazione della strategia è controllata tramiteUpdateHarness. È comunque possibile effettuare read/write eventi e interrogare i record direttamente tramite le API di memoria.

  • La memoria gestita non può essere eliminata direttamente tramite le API di memoria. Per trasformare la memoria gestita in una normale risorsa di AgentCore memoria, è possibile dissociarla dal cablaggio in due modi:

    • Utilizzatelo UpdateHarness per passare a BYO (agentCoreMemoryConfiguration) o disattivarlo.

    • Passa deleteManagedMemory=false invece l'eliminazione alla dissociazione: per impostazione predefinita, DeleteHarness elimina in cascata la memoria gestita.

Strategie disponibili

Strategia Description

SEMANTIC

Estrae conoscenze fattuali dalle conversazioni, recuperabili tramite ricerca semantica.

SUMMARIZATION

Crea riassunti ricorrenti delle conversazioni, suddivisi per attore e sessione.

USER_PREFERENCE

Cattura le preferenze e le impostazioni dell'utente espresse durante le conversazioni.

EPISODIC

Registra eventi ed esperienze significativi come episodi distinti.

Aggiungi memoria esistente (BYO)

Se hai bisogno di una configurazione avanzata oltre a quella fornita dalla memoria gestita (modelli di namespace personalizzati, crittografia KMS o memoria condivisa su più cablaggi), collega invece un'istanza di memoria esistente. AgentCore

Esempio
AWS CLI/boto3

Crea un'istanza di memoria:

aws bedrock-agentcore-control create-memory \ --name "MyMemory" \ --event-expiry-duration 30 \ --description "Memory for my harness"

Attaccalo all'imbracatura:

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 --name myagent --memory-arn "arn:aws:bedrock-agentcore:us-west-2:123456789012:memory/MyMemory-abc123" agentcore deploy

Disattiva la memoria

Per disabilitare completamente la memoria:

aws bedrock-agentcore-control update-harness \ --harness-id "MyHarness-UuFdkQoXSL" \ --memory '{"optionalValue": {"disabled": {}}}'

Per-user ambito della memoria con ID attore

Passa actorId al momento della chiamata l'ambito della memoria a un utente specifico. Ogni attore ottiene una memoria isolata a breve e lungo termine:

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?"}]}], )

Long-term recupero della memoria

Quando un cablaggio dispone di strategie di memoria attive (gestite o BYO), il recupero avviene automaticamente: il cablaggio ricava una configurazione di recupero dalle strategie attive dell'istanza di memoria. Ad ogni chiamata, l'agente interroga i ricordi a lungo termine pertinenti e li inserisce nel contesto della conversazione prima di ragionare.

Comportamento predefinito:

  • Il recupero viene configurato automaticamente con i parametri predefiniti (topK=10,relevanceScore=0.2) per lo spazio dei nomi di ogni strategia attiva.

  • Non è necessaria alcuna configurazione manuale per la memoria gestita o BYO.

Sostituisci le impostazioni predefinite: se fornisci esplicitamente un retrievalConfig nella configurazione della memoria BYO, i tuoi valori hanno la priorità e non si verifica alcuna derivazione automatica. Ciò consente di personalizzare gli spazi dei nomi su cui eseguire le query, modificare o disabilitare il recupero per strategie specifiche. topK relevanceScore

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"}}}}}'
Importante

Se aggiorni le strategie dell'istanza di memoria BYO (aggiungi o rimuovi) dopo averla collegata a un cablaggio, chiama per aggiornare la configurazione di recupero. UpdateHarness Per quanto riguarda la memoria gestita, la strategia cambia aggiornando automaticamente la configurazione. UpdateHarness

Troncamento del contesto

Quando la cronologia delle conversazioni si estende oltre la finestra di contesto del modello, l'harness applica una strategia di troncamento. Configuralo sul cablaggio o esegui l'override per ogni invocazione.

  • sliding_window(impostazione predefinita): mantiene gli N messaggi più recenti. Semplice e prevedibile.

  • summarization- comprime i messaggi più vecchi in un riepilogo, preservando più contesto con un minor numero di token.

  • none- nessun troncamento. Utilizzalo solo se gestisci tu stesso le dimensioni del contesto.

aws bedrock-agentcore-control update-harness \ --harness-id "MyHarness-UuFdkQoXSL" \ --truncation '{"strategy": "sliding_window", "slidingWindowConfig": {"numMessages": 30}}'

Ulteriori informazioni: AgentCore memoria, creazione di un archivio di memoria, strategie di memoria a lungo termine.