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 all'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 gestisce una raccolta isolata di ricordi. Ogni memoria è un'informazione indipendente e autonoma che può essere utilizzata per ampliare il contesto a disposizione dell'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 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 i ricordi pre-estratti (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.

    • Inserimento continuo di eventi: trasmetti in streaming e gestisci gli eventi delle conversazioni con l'inserimento di eventi, che attiva automaticamente il salvataggio di informazioni in base alle regole di batch 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 delle memorie sono isolati in un'identità specifica.

    • Spazio di archiviazione persistente e accessibile: archivia 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 dei ricordi: crea e gestisci automaticamente le revisioni dei ricordi, che ti consentono di esaminare come si trasformano i ricordi man mano che vengono acquisite 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 dal tuo agente basato su ADK utilizzando gli strumenti ADK integrati e VertexAiMemoryBankService per leggere e scrivere in Memory Bank.

    • Altri framework: racchiudi il codice del 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 operatore dell'assistenza 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 opzione quando devi identificare e rendere persistenti 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 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 dell'utente, risposte dell'agente, azioni degli strumenti) vengono caricati in Sessioni. Gli eventi mantengono 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 della conversazione.

  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 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: il tuo agente può scrivere ricordi direttamente in 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 il tuo agente, quest'ultimo può recuperare i ricordi salvati sull'utente. Puoi recuperare tutti i ricordi (recupero semplice) o solo quelli più pertinenti alla conversazione attuale (recupero tramite ricerca di somiglianze). Poi puoi inserire i ricordi recuperati nel prompt.

Guide rapide

Inizia a utilizzare Memory Bank con le seguenti guide rapide:

Governance di Memory Bank

Questa sezione descrive le considerazioni sulla governance dei dati quando utilizzi Memory Bank, ad esempio le responsabilità in materia di sicurezza e la residenza dei dati.

Rischi per la sicurezza del prompt injection

Oltre alle responsabilità in materia di sicurezza descritte nella responsabilità condivisa della piattaforma dell'agente, considera il rischio di prompt injection e memory poisoning 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 potrebbe 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 avversariali: testa in modo proattivo la tua applicazione LLM per rilevare vulnerabilità di prompt injection simulando attacchi. Questa attività è 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 cocontrollo dell'accessoso rigoroso e revisione umana.

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

Residenza dei dati

Per rispettare i quadri normativi come il Regolamento generale sulla protezione dei dati (GDPR) e i requisiti regionali di sovranità dei dati, devi assicurarti che i ricordi generati e archiviati in Memory Bank rispettino limiti rigorosi di residenza dei dati e segregazione.

Sebbene Memory Bank fornisca l'isolamento dei dati basato sull'ambito tra le identità all'interno di un'istanza, devi applicare il controllo dell'accesso basato sui ruoli (RBAC) e le policy Identity and Access Management per applicare i confini regionali e impedire la contaminazione transfrontaliera della memoria tra istanze regionali distinte.

Deployment di istanze regionali e residenza dei dati

Quando crei un'istanza di Memory Bank, scegli una località regionale o multiregionale (ad esempio eu per l'Unione Europea o us per gli Stati Uniti) per assicurarti che i dati at-rest rimangano all'interno di questo specifico confine geografico.

La posizione di elaborazione del machine learning (ML) dipende dalla disponibilità regionale del modello sottostante. Se un endpoint regionale non è disponibile per il modello o la località selezionati (ad esempio, i modelli Gemini 3 o le singole regioni dell'Asia), gli endpoint Gemini globali vengono utilizzati per l'elaborazione ML. Per saperne di più, consulta Residenza dei dati ed Endpoint globali e multiregionali.

Prevenire la contaminazione della memoria transfrontaliera

La contaminazione transfrontaliera si verifica quando un runtime dell'agente, un'identità dell'agente, un account di servizio o un'applicazione che opera in una giurisdizione (ad esempio, gli Stati Uniti) scrive o recupera ricordi da un'istanza di Memory Bank che si trova in un'altra giurisdizione (ad esempio, l'UE).

Per evitare la contaminazione transfrontaliera e mantenere la conformità normativa, puoi configurare i seguenti controlli IAM:

  • Identità agente o service account regionali dedicati: crea identità agente o service account separati e specifici per regione per ogni giurisdizione (ad esempio agent-us@PROJECT_ID.iam.gserviceaccount.com per i carichi di lavoro negli Stati Uniti e agent-eu@PROJECT_ID.iam.gserviceaccount.com per i carichi di lavoro nell'UE). Assicurati che alle identità degli agenti regionali e agli account di servizio vengano concessi solo ruoli IAM sulle istanze di Memory Bank che si trovano nella stessa giurisdizione geografica, impedendo ai runtime regionali di accedere alle istanze transfrontaliere.

    • Ruoli specializzati con privilegio minimo: concedi alle entità solo i ruoli Memory Bank specifici richiesti per il loro carico di lavoro (ad esempio roles/aiplatform.memoryViewer per il recupero di sola lettura o roles/aiplatform.memoryEditor per l'accesso in scrittura e alla generazione) associati alla risorsa di regione appropriata. Per informazioni dettagliate sui ruoli disponibili, vedi Ruoli IAM specializzati di Memory Bank.
  • Policy dell'organizzazione: applica le limitazioni della località a livello di organizzazione, cartella o progetto utilizzando il gcp.resourceLocations vincolo dei criteri dell'organizzazione. Ciò limita la creazione e l'utilizzo delle risorse Memory Bank alle regioni conformi approvate e impedisce l'utilizzo non autorizzato dell'endpoint globale.

Per saperne di più sull'implementazione di policy di accesso condizionale, consulta Controllare l'accesso a Memory Bank di Agent Platform con le condizioni IAM.

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.