Vista geral do Memory Bank do Vertex AI Agent Engine

O banco de memória do Vertex AI Agent Engine permite-lhe gerar dinamicamente memórias a longo prazo com base nas conversas dos utilizadores com o seu agente. As memórias de longo prazo são informações personalizadas que podem ser acedidas em várias sessões para um determinado utilizador. O agente pode usar as memórias para personalizar as respostas ao utilizador e criar continuidade entre sessões.

Vista geral

O banco de memória ajuda a gerir memórias para que possa personalizar a forma como o seu agente interage com os utilizadores e gerir a janela de contexto. Para cada âmbito, o banco de memórias 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 seu agente. Por exemplo:

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

O banco de memórias inclui as seguintes funcionalidades:

  • Geração de memórias: crie, refine e faça a gestão de memórias através de um modelo de linguagem (conteúdo extenso) (MDI/CE).

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

    • Consolidação de memórias: consolide as informações recém-extraídas com as memórias existentes, o que permite que as memórias evoluam à medida que são carregadas novas informações. Também pode consolidar memórias pré-extraídas (como informações que o seu agente ou um humano no circuito considera significativas) com memórias existentes.

    • Geração assíncrona: as memórias podem ser geradas em segundo plano, para que o seu agente não tenha de esperar pela conclusão da geração de memórias.

    • Extração personalizável: configure as informações que o banco de memória considera significativas fornecendo tópicos específicos e exemplos de poucos disparos.

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

  • Armazenamento e obtenção geridos: tire partido de um armazenamento de memória totalmente gerido, persistente e acessível.

  • Integração de agentes: associe o banco de memória ao seu agente para que este possa orquestrar chamadas para gerar e obter memórias.

    • Integração do Agent Development Kit (ADK): orquestre chamadas do seu agente baseado no ADK através de ferramentas ADK incorporadas e da VertexAiMemoryBankService para ler e escrever no Memory Bank.

    • Outras frameworks: envolva o código do banco de memória em ferramentas e callbacks para orquestrar a geração e a obtenção de memória.

Exemplos de utilização

Pode usar o banco de memória para transformar interações de agentes sem estado em experiências com estado e contextuais, em que o agente se lembra, aprende e se adapta ao longo do tempo. O Memory Bank é ideal para aplicações que requerem:

  • Personalização a longo prazo: crie experiências personalizadas para utilizadores individuais. O Memory Bank limita as memórias a uma identidade específica, o que permite a um agente lembrar-se das preferências, do histórico e dos detalhes importantes de um utilizador em várias sessões.

    • Exemplo: um agente do serviço de apoio ao cliente que se lembra de informações importantes de pedidos de apoio técnico anteriores e preferências de produtos de um utilizador sem ter de perguntar novamente.
  • Extração de conhecimentos baseada em GMLs: use quando precisar de identificar e persistir 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 documentos técnicos e cria uma memória consolidada das principais conclusões, metodologias e conclusões.
  • Contexto dinâmico e em evolução: use o banco de memória quando precisar de uma fonte de conhecimento que não seja estática. O banco de memória foi concebido para integrar continuamente novas informações do seu agente, refinando e atualizando as memórias armazenadas à medida que novos dados ficam disponíveis. Isto garante que o contexto em que o seu agente se baseia está sempre atualizado e correto. Enquanto a RAG tem uma base de conhecimentos externa e estática, o banco de memória pode evoluir com base no contexto fornecido pelo agente.

Exemplo de utilização

Vista geral conceptual do Memory Bank do Vertex AI Agent Engine

Pode usar o banco de memória com sessões do motor de agentes da Vertex AI para gerar memórias a partir de sessões armazenadas através do seguinte processo:

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

  2. (Sessões) AppendEvent: à medida que o utilizador interage com o agente, os eventos (como mensagens do utilizador, respostas do agente e ações de ferramentas) são carregados para as sessões. Os eventos persistem no histórico de conversas e criam um registo da conversa que pode ser usado para gerar memórias.

  3. (Sessões) ListEvents: à medida que o utilizador interage com o agente, o agente obtém o histórico de conversas.

  4. (Banco de memórias) Gere ou crie memórias:

    • GenerateMemories: a 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 com o histórico de conversas. Os factos sobre o utilizador são extraídos automaticamente do histórico de conversas para que estejam disponíveis para sessões atuais ou futuras.

    • CreateMemory: o seu agente pode escrever memórias diretamente no banco de memórias. Por exemplo, o agente pode decidir quando uma memória deve ser escrita e que informações devem ser guardadas (memória como ferramenta). Use CreateMemory quando quiser que o seu agente tenha mais controlo sobre os factos extraídos.

  5. (Banco de memórias) RetrieveMemories: à medida que o utilizador interage com o seu agente, o agente pode aceder às memórias guardadas sobre esse utilizador. Pode obter todas as memórias (obtenção simples) ou apenas as mais relevantes para a conversa atual (obtenção de pesquisa de semelhanças). Em seguida, pode inserir as memórias obtidas no seu comando.

Inícios rápidos

Comece a usar o banco de memória com os seguintes inícios rápidos:

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

Além das responsabilidades de segurança descritas na responsabilidade partilhada do Vertex AI, considere o risco de injeção de comandos e envenenamento da memória que podem afetar o seu agente quando usa memórias a longo prazo. O envenenamento da memória ocorre quando são armazenadas informações falsas no banco de memória. Em seguida, o agente pode operar com base nestas informações falsas ou maliciosas em sessões futuras.

Para mitigar o risco de envenenamento da memória, pode fazer o seguinte:

  • Model Armor: use o Model Armor para inspecionar os comandos enviados para o banco de memória ou do seu agente.

  • Testes adversariais: teste proativamente a sua aplicação de GML quanto a vulnerabilidades de injeção de comandos simulando ataques. Isto é normalmente conhecido como "red teaming".

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

Para mais informações, consulte o artigo A abordagem da Google para agentes de IA seguros.

O que se segue?