Sobre o Agent Sandbox no GKE

O Agent Sandbox no Google Kubernetes Engine (GKE) ajuda a gerenciar cargas de trabalho isoladas, com estado e de réplica única. Ele é otimizado para casos de uso como ambientes de execução de agentes de IA, em que códigos não confiáveis gerados por LLMs precisam ser executados em um ambiente seguro e eficiente.

O complemento do Agent Sandbox no GKE é baseado no projeto de controlador de código aberto do Agent Sandbox e segue os ciclos de lançamento dele. Como um complemento gerenciado do GKE, o Google gerencia todo o ciclo de vida do controlador, incluindo upgrades automáticos e patches de segurança.

Este documento apresenta uma visão geral conceitual do Agent Sandbox no GKE.

Por que usar o Agent Sandbox no GKE

O Agent Sandbox no GKE foi criado para cargas de trabalho de agentes que exigem alta escalonabilidade, extensibilidade e segurança. Dentre os principais benefícios estão:

  • Isolamento no nível do kernel: oferece isolamento forte no nível do kernel para códigos não confiáveis gerados por LLMs. O Agent Sandbox no GKE também funciona com o Kata Containers de código aberto. Para um tutorial sobre como usar o Kata Containers de código aberto com o Agent Sandbox no GKE, consulte Ativar o Kata Containers no GKE.

  • Provisionamento em menos de um segundo: oferece um mecanismo pronto para uso que fornece sandboxes significativamente mais rápido do que o agendamento de pods padrão do Kubernetes permite (normalmente <1s).

  • Extensibilidade nativa da nuvem: aproveita o poder do paradigma do Kubernetes e a infraestrutura gerenciada do GKE.

Ao fornecer uma API declarativa e padronizada, o Agent Sandbox no GKE oferece uma experiência de contêiner único que fornece características de isolamento e persistência semelhantes a uma máquina virtual (VM), totalmente criada em primitivos do Kubernetes.

Casos de uso comuns do Agent Sandbox no GKE

Use o Agent Sandbox no GKE para cargas de trabalho que exigem isolamento, persistência e uma identidade estável. Como exemplos de casos de uso, temos:

  • Ambientes de execução de agentes de IA: execute códigos não confiáveis com segurança em um ambiente isolado por ambientes de execução com foco em segurança, como o gVisor.
  • Ambientes de desenvolvimento: ofereça aos desenvolvedores ambientes de programação persistentes e isolados baseados na nuvem.
  • Notebooks e ferramentas de pesquisa: hospede sessões de contêiner único para ferramentas interativas, como notebooks Jupyter.
  • Serviços de pod único com estado: execute aplicativos que precisam de uma identidade e armazenamento estáveis sem a complexidade de um StatefulSet.
  • Gerenciamento programático de ambientes: use SDKs de biblioteca de cliente fornecidos, como o SDK do Agent Sandbox para Python, para solicitar e gerenciar sandboxes diretamente da lógica do aplicativo sem gerenciar o YAML do Kubernetes.

Como o Agent Sandbox no GKE funciona

O Agent Sandbox no GKE usa um controlador personalizado e várias definições de recursos personalizados (CRDs, na sigla em inglês) do Kubernetes para gerenciar o ciclo de vida de ambientes em sandbox.

Arquitetura principal

  • CRD do sandbox: o recurso principal que representa um único pod com estado. Ele gerencia nomes de host estáveis, identidade de rede e armazenamento persistente.
  • Router do sandbox: um componente que fornece um endpoint estável e tunela o tráfego para os pods do sandbox apropriados, abstraindo a complexidade de rede subjacente.
  • Integração com snapshots de pods: o Agent Sandbox no GKE se integra ao recurso de snapshots de pods do GKE para permitir a pausa e a retomada de cargas de trabalho salvando e restaurando o estado completo de um contêiner.

Modelo de reivindicação

O modelo de reivindicação é um recurso essencial que separa a solicitação do usuário para um ambiente dos detalhes de implementação específicos, como onde e como a carga de trabalho é provisionada. Ao contrário de um StatefulSet padrão do Kubernetes, o modelo de reivindicação permite solicitar um sandbox sem precisar gerenciar diretamente as configurações de pod ou armazenamento subjacentes.

O modelo de reivindicação é gerenciado usando os SandboxClaim e SandboxTemplate CRDs e funciona da seguinte maneira:

  1. Os usuários ou aplicativos solicitam um sandbox criando um SandboxClaim que faz referência a um SandboxTemplate.
  2. O controlador processa o mapeamento da reivindicação para uma instância real do sandbox, oferecendo gerenciamento de back-end flexível. Isso permite que o sistema reutilize sandboxes atuais ou aloque de um pool.

Pools pré-inicializados

O recurso pool pré-inicializado foi projetado para minimizar a latência de inicialização, que é fundamental para cenários interativos de agentes de IA. Esse recurso permite que o Agent Sandbox no GKE forneça ambientes de execução em menos de um segundo, significativamente mais rápido do que o agendamento de pods típico. O recurso é gerenciado usando o SandboxWarmPool CRD e funciona da seguinte maneira:

  1. Um SandboxWarmPool mantém um conjunto de instâncias de pod pré-inicializadas em um estado pronto.
  2. Quando um SandboxClaim é feito, o controlador atribui instantaneamente um pod do pool em vez de esperar que um novo pod extraia imagens e comece do zero.
  3. Quando combinados com snapshots de pods, os pools pré-inicializados fornecem recursos rápidos e "instantâneos" restaurando pods de um estado pré-configurado.

Isolamento de rede.

O Agent Sandbox no GKE implementa uma postura de segurança de rede negar padrão para todos os ambientes em sandbox. Isso garante que a execução de código não confiável em um sandbox não possa acessar redes internas não autorizadas ou o plano de controle do GKE por padrão. É possível definir restrições de rede específicas e regras de saída ou entrada permitidas no SandboxTemplate para fornecer segurança refinada para cargas de trabalho de agentes.

Acesso programático com SDKs

Os engenheiros de IA podem consumir recursos do Agent Sandbox no GKE de maneira programática usando bibliotecas de cliente fornecidas. Por exemplo, o Python SDK fornece uma interface de alto nível que abstrai as configurações subjacentes de SandboxClaim e SandboxTemplate. Isso permite criar e interagir com ambientes isolados diretamente das estruturas de agentes de IA baseadas em Python, como o LangChain ou o SDK agêntico da Vertex AI.

Limitações e requisitos

O Agent Sandbox no GKE tem as seguintes limitações e requisitos:

  • Versão do cluster: requer o GKE versão 1.35.2-gke.1269000 ou mais recente para suporte completo a recursos (incluindo snapshots).
  • Requisitos de infraestrutura: otimizado para configurações de nós específicas (como tipos de máquinas N2) e exige que o controlador do Agent Sandbox seja instalado e configurado no cluster.
  • Ambientes de execução de isolamento: embora ofereça suporte a vários ambientes de execução, ele é destinado principalmente ao uso com ambientes de execução reforçados pela segurança, como o gVisor.
  • Disponibilidade de recursos subjacentes: alguns recursos subjacentes, como snapshots de pods do GKE, podem estar na Prévia ou ter disponibilidade regional específica.

A seguir