Memory Bank da plataforma de agentes

O Memory Bank da Agent Platform permite gerar memórias de longo prazo de forma dinâmica com base em conversas entre o usuário e o agente. Essas memórias são informações personalizadas que persistem em várias sessões, permitindo que o agente adapte e personalize as respostas para contexto e continuidade.

Recursos

O Memory Bank ajuda a gerenciar memórias para que você possa personalizar a forma como o agente interage com os usuários e gerenciar a janela de contexto. Para cada escopo, o Memory Bank mantém uma coleção isolada de memórias. Cada memória é uma informação independente e autônoma que pode ser usada para expandir o contexto disponível para o agente. Exemplo:

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

O Memory Bank inclui os seguintes recursos:

  • Geração de dados de memória: Crie, refine e gerencie dados de memória usando um modelo de linguagem grande (LLM).

    • Extração de memória: extraia apenas as informações mais significativas dos dados de origem para persistir como memórias.

    • Consolidação de memória: consolide as informações recém-extraídas com as memórias atuais, permitindo que elas evoluam à medida que novas informações são ingeridas. Também é possível consolidar memórias pré-extraídas (como informações que o agente ou um humano no loop considera significativas) com as memórias atuais.

    • Geração assíncrona: gere dados de memória em segundo plano para que o agente não precise esperar a conclusão da geração de dados de memória.

    • Ingestão contínua de eventos: transmita e gerencie eventos de conversa com a ingestão de eventos, que aciona automaticamente a geração de dados de memória com base nas regras de lote que você configurar.

    • Extração personalizável: Configure quais informações o Memory Bank considera significativas fornecendo tópicos específicos e exemplos de poucos disparos.

    • Compreensão multimodal: processe informações multimodais para gerar e manter insights textuais.

  • Armazenamento e recuperação gerenciados: aproveite um armazenamento de memória totalmente gerenciado, persistente, e acessível.

  • Integração do agente: conecte o Memory Bank ao agente para que ele possa orquestrar chamadas para gerar e recuperar memórias.

    • Integração do Kit de Desenvolvimento de Agente (ADK): orquestre chamadas do agente baseado no ADK usando ferramentas integradas do ADK e o VertexAiMemoryBankService para ler e gravar no Memory Bank.

    • Outros frameworks: encapsule o código do Memory Bank em ferramentas e callbacks para orquestrar a geração de dados de memória e a recuperação.

Casos de uso

É possível usar o Memory Bank para transformar interações de agentes sem estado em experiências contextuais e com estado em que o agente se lembra, aprende e se adapta ao longo do tempo. O Memory Bank é ideal para aplicativos que exigem:

  • Personalização de longo prazo: crie experiências personalizadas para usuários individuais. O Memory Bank escopa memórias para uma identidade específica, permitindo que um agente se lembre das preferências, do histórico e dos detalhes principais de um usuário em várias sessões.

    • Exemplo: um agente de serviço ao cliente que se lembra das principais informações dos tíquetes de suporte e das preferências de produtos anteriores de um usuário sem precisar perguntar novamente.
  • Extração de conhecimento orientada por LLM: use quando precisar identificar e manter automaticamente as informações mais importantes de conversas ou conteúdo multimodal sem intervenção manual.

    • Exemplo: um agente de pesquisa que lê uma série de artigos técnicos e cria uma memória consolidada de principais descobertas, metodologias e conclusões.
  • Contexto dinâmico e em evolução: use o Memory Bank quando precisar de uma fonte de conhecimento que não seja estática. O Memory Bank foi projetado para integrar continuamente novas informações do agente, refinando e atualizando as memórias armazenadas à medida que novos dados ficam disponíveis. Isso garante que o contexto em que o agente se baseia esteja sempre atualizado e preciso. Enquanto a RAG tem uma base de conhecimento estática e externa, o Memory Bank pode evoluir com base no contexto fornecido pelo agente.

Exemplo de uso

Visão geral conceitual do Memory Bank da Agent Platform

É possível usar o Memory Bank com as sessões da Agent Platform para gerar memórias de sessões armazenadas usando o processo a seguir:

  1. (Sessões) CreateSession: no início de cada conversa, crie uma nova sessão. O histórico de conversas usado pelo agente é definido para essa sessão. Uma sessão contém a sequência cronológica de mensagens e ações (SessionEvents) para uma interação entre um usuário e o agente. Todas as sessões precisam ter um ID de usuário. As memórias extraídas (consulte GenerateMemories) para essa sessão são mapeadas para esse usuário.

  2. (Sessões) AppendEvent: à medida que o usuário interage com o agente, os eventos (como mensagens do usuário, respostas do agente, ações de ferramentas) são enviados para as sessões. Os eventos mantêm o histórico de conversas e criam um registro da conversa que pode ser usado para gerar memórias.

  3. (Sessões) ListEvents: à medida que o usuário interage com o agente, o agente recupera o histórico de conversas.

  4. (Memory Bank) Gere ou crie memórias:

    • GenerateMemories: em um intervalo especificado (como o final de cada sessão ou o final de cada turno), o agente pode acionar a geração de memórias usando o histórico de conversas. Os fatos sobre o usuário são extraídos automaticamente do histórico de conversas para que fiquem disponíveis para sessões atuais ou futuras.

    • CreateMemory: o agente pode gravar memórias diretamente no Memory Bank. Por exemplo, o agente pode decidir quando uma memória deve ser gravada e quais informações devem ser salvas (memória como ferramenta). Use CreateMemory quando quiser que o agente tenha mais controle sobre quais fatos são extraídos.

  5. (Memory Bank) RetrieveMemories: à medida que o usuário interage com o agente, ele pode recuperar as memórias salvas sobre esse usuário. É possível recuperar todas as memórias (recuperação simples) ou apenas as mais relevantes para a conversa atual (recuperação de pesquisa de similaridade). Em seguida, insira as memórias recuperadas no comando.

Guias de início rápido

Comece a usar o Memory Bank com os seguintes guias de início rápido:

Riscos de segurança da injeção de comandos

Além das responsabilidades de segurança descritas na Agent Platform responsabilidade compartilhada, considere o risco de injeção de comando e envenenamento de memória que podem afetar o agente ao usar memórias de longo prazo. O envenenamento de memória ocorre quando informações falsas são armazenadas no Memory Bank. O agente pode operar com essas informações falsas ou maliciosas em sessões futuras.

Para reduzir o risco de envenenamento de memória, faça o seguinte:

  • Model Armor: use o Model Armor para inspecionar os comandos enviados ao Memory Bank ou do agente.

  • Testes adversários: teste proativamente o aplicativo LLM para vulnerabilidades de injeção de comandos simulando ataques. Isso é conhecido como "red teaming".

  • Execução em sandbox: se o agente tiver a capacidade de executar ou interagir com sistemas externos ou críticos, essas ações deverão ser realizadas em um ambiente de sandbox com controle de acesso rigoroso e revisão humana.

Para mais informações, consulte a abordagem do Google para agentes de IA seguros.

A seguir

Guia de início rápido

Comece a usar a API Memory Bank para gerenciar memórias de longo prazo.

Guia de início rápido

Comece a usar o Kit de Desenvolvimento de Agente (ADK).

Guia

Saiba como configurar o Memory Bank.