Agent Platform Memory Bank

Agent Platform Memory Bank ti consente di generare dinamicamente ricordi a lungo termine in base alle conversazioni tra l'utente e il tuo agente. Questi ricordi sono informazioni personalizzate che persistono in più sessioni, consentendo al tuo agente di adattare e personalizzare le risposte per il contesto e la continuità.

Funzionalità

Memory Bank ti aiuta a gestire le memorie, in modo da poter personalizzare il modo in cui l'agente interagisce con gli utenti e gestire la finestra contestuale. Per ogni ambito, Memory Bank mantiene una raccolta isolata di ricordi. Ogni memoria è un'informazione indipendente e autonoma che può essere utilizzata per ampliare il contesto disponibile per l'agente. Ad esempio:

{
  "name": "projects/.../locations/.../reasoningEngines/.../memories/...",
  "scope": {
    "agent_name": "My agent",
    "user": "my user ID"
  },
  "fact": "I use Memory Bank to manage my memories."
}

Memory Bank include le seguenti funzionalità:

  • Salvataggio di informazioni: Crea, perfeziona e gestisci le informazioni utilizzando un modello linguistico di grandi dimensioni (LLM).

    • Estrazione dei ricordi: estrai solo le informazioni più significative dai dati di origine da conservare come ricordi.

    • Consolidamento della memoria: consolida le informazioni appena estratte con i ricordi esistenti, consentendo ai ricordi di evolversi man mano che vengono acquisite nuove informazioni. Puoi anche consolidare i ricordi preestratti (come le informazioni che il tuo agente o un operatore umano considera significative) con i ricordi esistenti.

    • Generazione asincrona: genera ricordi in background, in modo che l'agente non debba attendere il completamento della generazione dei ricordi.

    • Inserimento continuo di eventi: trasmetti in streaming e gestisci gli eventi di conversazione con l'inserimento di eventi, che attiva automaticamente il salvataggio di informazioni in base alle regole di batching che configuri.

    • Estrazione personalizzabile: configura le informazioni che Memory Bank considera significative fornendo argomenti specifici ed esempi few-shot.

    • Comprensione multimodale: elabora informazioni multimodali per generare e conservare insight testuali.

  • Archiviazione e recupero gestiti: usufruisci di un archivio di memoria completamente gestito, persistente e accessibile.

    • Isolamento dei dati tra le identità: il consolidamento e il recupero della memoria sono isolati in un'identità specifica.

    • Spazio di archiviazione persistente e accessibile: memorizza i ricordi a cui è possibile accedere da più ambienti, tra cui Agent Runtime, l'ambiente locale o altre opzioni di deployment.

    • Ricerca di somiglianze: recupera i ricordi utilizzando la ricerca di somiglianze con ambito limitato a un'identità specifica.

    • Scadenza automatica: imposta una durata (TTL) per i ricordi per assicurarti che le informazioni obsolete vengano eliminate automaticamente. Configura l'istanza di Memory Bank in modo che venga applicato automaticamente un TTL alle informazioni salvate inserite o generate.

    • Revisioni della memoria: crea e gestisci automaticamente le revisioni della memoria, che ti consentono di esaminare come si trasformano i ricordi man mano che vengono inserite nuove informazioni.

    • Autorizzazioni restrittive: utilizza le condizioni IAM per limitare le entità che possono leggere o scrivere i ricordi di ambiti specifici.

  • Integrazione dell'agente: collega Memory Bank al tuo agente, in modo che possa orchestrare le chiamate per generare e recuperare i ricordi.

    • Integrazione di Agent Development Kit (ADK): orchestra le chiamate dall'agente basato su ADK utilizzando gli strumenti ADK integrati e VertexAiMemoryBankService per leggere e scrivere in Memory Bank.

    • Altri framework: racchiudi il codice di Memory Bank in strumenti e callback per orchestrare la generazione e il recupero della memoria.

Casi d'uso

Puoi utilizzare Memory Bank per trasformare le interazioni stateless degli agenti in esperienze stateful e contestuali in cui l'agente ricorda, impara e si adatta nel tempo. Memory Bank è ideale per le applicazioni che richiedono:

  • Personalizzazione a lungo termine: crea esperienze su misura per i singoli utenti. Memory Bank limita i ricordi a un'identità specifica, consentendo a un agente di ricordare le preferenze, la cronologia e i dettagli chiave di un utente in più sessioni.

    • Esempio: un operatore dell'assistenza clienti che ricorda le informazioni chiave dei ticket di assistenza e delle preferenze dei prodotti passati di un utente senza doverle chiedere di nuovo.
  • Estrazione di conoscenza basata su LLM: utilizza questa opzione quando devi identificare e conservare automaticamente le informazioni più importanti di conversazioni o contenuti multimodali senza intervento manuale.

    • Esempio: un agente di ricerca che legge una serie di documenti tecnici e crea una memoria consolidata di risultati, metodologie e conclusioni chiave.
  • Contesto dinamico e in evoluzione: utilizza Memory Bank quando hai bisogno di una fonte di conoscenza non statica. Memory Bank è progettato per integrare continuamente nuove informazioni dal tuo agente, perfezionando e aggiornando i ricordi memorizzati man mano che diventano disponibili nuovi dati. In questo modo, il contesto su cui si basa l'agente è sempre attuale e preciso. Mentre RAG ha una knowledge base esterna statica, Memory Bank può evolversi in base al contesto fornito dall'agente.

Esempio di utilizzo

Panoramica concettuale di Agent Platform Memory Bank

Puoi utilizzare Memory Bank con le sessioni di Agent Platform per generare memorie dalle sessioni archiviate utilizzando la seguente procedura:

  1. (Sessioni) CreateSession: all'inizio di ogni conversazione, crea una nuova sessione. La cronologia delle conversazioni utilizzata dall'agente è limitata a questa sessione. Una sessione contiene la sequenza cronologica di messaggi e azioni (SessionEvents) per un'interazione tra un utente e il tuo agente. Tutte le sessioni devono avere un ID utente; i ricordi estratti (vedi GenerateMemories) per questa sessione sono mappati a questo utente.

  2. (Sessioni) AppendEvent: man mano che l'utente interagisce con l'agente, gli eventi (come messaggi dell'utente, risposte dell'agente, azioni degli strumenti) vengono caricati in Sessioni. Gli eventi conservano la cronologia delle conversazioni e creano un record della conversazione che può essere utilizzato per generare ricordi.

  3. (Sessioni) ListEvents: man mano che l'utente interagisce con l'agente, quest'ultimo recupera la cronologia delle conversazioni.

  4. (Memory Bank) Genera o crea ricordi:

    • GenerateMemories: a un intervallo specificato (ad esempio alla fine di ogni sessione o di ogni turno), l'agente può attivare la generazione di ricordi utilizzando la cronologia della conversazione. I fatti relativi all'utente vengono estratti automaticamente dalla cronologia delle conversazioni in modo che siano disponibili per le sessioni attuali o future.

    • CreateMemory: il tuo agente può scrivere ricordi direttamente nel Memory Bank. Ad esempio, l'agente può decidere quando scrivere una memoria e quali informazioni salvare (memoria come strumento). Utilizza CreateMemory quando vuoi che l'agente abbia un maggiore controllo sui fatti estratti.

  5. (Memory Bank) RetrieveMemories: man mano che l'utente interagisce con l'agente, quest'ultimo può recuperare i ricordi salvati sull'utente. Puoi recuperare tutti i ricordi (recupero semplice) o solo quelli più pertinenti alla conversazione in corso (recupero tramite ricerca di similarità). Dopodiché, puoi inserire i ricordi recuperati nel prompt.

Guide rapide

Inizia a utilizzare Memory Bank con le seguenti guide rapide:

Rischi per la sicurezza dell'injection di prompt

Oltre alle responsabilità in materia di sicurezza descritte nella responsabilità condivisa della piattaforma dell'agente, considera il rischio di prompt injection e avvelenamento della memoria che possono influire sul tuo agente quando utilizza ricordi a lungo termine. L'avvelenamento della memoria si verifica quando vengono memorizzate informazioni false in Memory Bank. L'agente può quindi operare su queste informazioni false o dannose nelle sessioni future.

Per ridurre il rischio di memory poisoning, puoi procedere nel seguente modo:

  • Model Armor: utilizza Model Armor per esaminare i prompt inviati a Memory Bank o dal tuo agente.

  • Test contraddittori: testa in modo proattivo la tua applicazione LLM per verificare la presenza di vulnerabilità di prompt injection simulando attacchi. Questa operazione è in genere nota come "red teaming".

  • Esecuzione in sandbox: se l'agente ha la possibilità di eseguire o interagire con sistemi esterni o critici, queste azioni devono essere eseguite in un ambiente sandbox con controllo dell'accesso rigoroso e revisione umana.

Per ulteriori informazioni, consulta L'approccio di Google per gli agenti di AI sicuri.

Passaggi successivi

Guida rapida

Inizia a utilizzare l'API Memory Bank per gestire i ricordi a lungo termine.

Guida rapida

Inizia a utilizzare l'Agent Development Kit (ADK).

Guida

Scopri come configurare Memory Bank.