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 ricordo è un'informazione indipendente e autonoma che può essere utilizzata per espandere 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 di ricordi: estrai solo le informazioni più significative dai dati di origine da conservare come ricordi.

    • Consolidamento dei ricordi: consolida le informazioni appena estratte con i ricordi esistenti, consentendo ai ricordi di evolversi man mano che vengono acquisite nuove informazioni. Puoi anche consolidare ricordi preestratti (ad esempio le informazioni che l'agente o un operatore umano considera significative) con i ricordi esistenti.

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

    • Acquisizione continua di eventi: esegui lo streaming e gestisci gli eventi di conversazione con l'acquisizione 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 le informazioni multimodali per generare e conservare insight testuali.

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

  • 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 dal tuo agente basato su ADK utilizzando gli strumenti ADK integrati e la 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 dei ricordi.

Casi d'uso

Puoi utilizzare Memory Bank per trasformare le interazioni degli agenti senza stato in esperienze contestuali con stato 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 personalizzate 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 agente del servizio clienti che ricorda le informazioni chiave dei ticket di assistenza e delle preferenze di prodotto passati di un utente senza doverle chiedere di nuovo.
  • Estrazione di conoscenza basata su LLM: utilizza questa funzionalità quando devi identificare e conservare automaticamente le informazioni più importanti dalle conversazioni o dai contenuti multimodali senza intervento manuale.

    • Esempio: un agente di ricerca che legge una serie di documenti tecnici e crea un ricordo consolidato di risultati, metodologie e conclusioni chiave.
  • Contesto dinamico ed evolutivo: utilizza Memory Bank quando hai bisogno di un'origine di conoscenza non statica. Memory Bank è progettato per integrare continuamente nuove informazioni dal tuo agente, perfezionando e aggiornando i ricordi archiviati man mano che diventano disponibili nuovi dati. In questo modo, il contesto su cui si basa l'agente è sempre aggiornato e accurato. 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 ricordi 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 (ad esempio messaggi utente, risposte dell'agente, azioni degli strumenti) vengono caricati nelle 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 alla fine di ogni turno), l'agente può attivare la generazione dei ricordi utilizzando la cronologia delle conversazioni. I fatti relativi all'utente vengono estratti automaticamente dalla cronologia delle conversazioni in modo che siano disponibili per le sessioni attuali o future.

    • CreateMemory: l'agente può scrivere i ricordi direttamente in Memory Bank. Ad esempio, l'agente può decidere quando scrivere un ricordo e quali informazioni salvare (ricordo 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 i ricordi più pertinenti alla conversazione corrente (recupero tramite ricerca di similarità). Poi puoi inserire i ricordi recuperati nel prompt.

Guide rapide

Inizia a utilizzare Memory Bank con le seguenti guide rapide:

Rischi per la sicurezza dell'iniezione di prompt

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

Per ridurre il rischio di avvelenamento della memoria, puoi:

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

  • Test avversari: testa in modo proattivo la tua applicazione LLM per verificare la presenza di vulnerabilità di iniezione di prompt simulando attacchi. Questa procedura è 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 un controllo dell'accesso rigoroso e una revisione umana.

Per ulteriori informazioni, consulta l'approccio di Google per gli agenti 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 Agent Development Kit (ADK).

Guida

Scopri come configurare Memory Bank.