Antes de trabalhar com o Vertex AI Agent Engine, você precisa garantir que o ambiente esteja configurado. Você precisa ter um Google Cloud projeto com o faturamento ativado, ter as permissões necessárias, configurar um bucket do Cloud Storage e instalar o SDK da Vertex AI para Python. Confira os tópicos a seguir para começar a trabalhar com o Vertex AI Agent Engine.
Para um exemplo de referência do Terraform que simplifica a configuração e a implantação do ambiente do Vertex AI Agent Engine, confira o agent-starter-pack.
Configurar com Google Cloud
É possível configurar o Google Cloud para o Vertex AI Agent Engine criando um projeto Google Cloud .
Projeto do Google Cloud
Cada projeto pode ser identificado de duas formas: pelo número ou pelo ID. O PROJECT_NUMBER é criado automaticamente quando você
cria o projeto, enquanto o PROJECT_ID é criado por você
ou por quem criou o projeto. Para configurar um projeto:
- Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Vertex AI, Cloud Storage, Cloud Logging, Cloud Monitoring, Telemetry, Cloud Trace, and Resource Manager APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Vertex AI, Cloud Storage, Cloud Logging, Cloud Monitoring, Telemetry, Cloud Trace, and Resource Manager APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
Ter os papéis necessários
Para receber as permissões necessárias
para usar o Vertex AI Agent Engine,
peça ao administrador para conceder a você o
papel do IAM de Usuário da Vertex AI (roles/aiplatform.user)
no projeto.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
Configurar a identidade e as permissões do agente
Você tem as seguintes opções ao configurar a identidade e as permissões:
Identidade do agente (recomendado) (prévia): use a identidade do agente do Identity Access Management (IAM) para fornecer recursos de segurança e gerenciamento de acesso ao usar agentes no tempo de execução do Vertex AI Agent Engine. A identidade do agente está vinculada a cada agente individual.
Contas de serviço: são compartilhadas entre os agentes implantados no Vertex AI Agent Engine. Você tem duas opções para a conta de serviço:
- Agente de serviço padrão:por padrão, os agentes usam o agente de serviço do mecanismo de raciocínio do AI Platform. Essa conta de serviço gerenciado pelo Google tem o papel de
Agente de serviço do Reasoning Engine da Vertex AI
(
roles/aiplatform.reasoningEngineServiceAgent), que inclui as permissões padrão necessárias para agentes implantados. - Conta de serviço personalizada:é possível especificar sua própria conta de serviço para os agentes usarem. Isso oferece um controle mais granular sobre as permissões concedidas aos agentes.
- Agente de serviço padrão:por padrão, os agentes usam o agente de serviço do mecanismo de raciocínio do AI Platform. Essa conta de serviço gerenciado pelo Google tem o papel de
Agente de serviço do Reasoning Engine da Vertex AI
(
Identidade do agente
Para configurar políticas do IAM antes de implantar o agente, você pode
criar uma identidade de agente sem implantar o código dele. Para isso, crie uma instância do Agent Engine com apenas o campo identity_type:
remote_app = client.agent_engines.create(
config={
"identity_type": types.IdentityType.AGENT_IDENTITY,
},
)
Depois de criar a instância do Agent Engine com a identidade do agente, é possível fazer o seguinte:
Provisione a identidade do agente com os seguintes papéis recomendados:
roles/serviceusage.serviceUsageConsumer: conceda ao agente permissão para usar a cota do projeto e o SDK da Vertex AI.
Conceda à identidade do agente papéis adicionais conforme necessário para seu caso de uso.
Adicione o código do agente usando
agent_engine.update(...).
Agente de serviço padrão
O agente de serviço do mecanismo de raciocínio do AI Platform é usado por padrão. Confira a lista completa de permissões padrão na documentação do IAM.
Se o agente de serviço precisar de permissões além do conjunto padrão, conceda outros papéis a ele:
Acesse a página IAM e marque a caixa de seleção "Incluir concessões de papéis fornecidos pelo Google".
Encontre o principal que corresponde a
service-PROJECT_NUMBER@gcp-sa-aiplatform-re.iam.gserviceaccount.com.Adicione os papéis necessários ao principal clicando no botão de edição e, em seguida, no botão "Salvar".
Gerar manualmente o agente de serviço padrão
Embora o agente de serviço do Reasoning Engine seja provisionado automaticamente durante a implantação do Vertex AI Agent Engine, pode haver cenários em que é necessário gerá-lo manualmente com antecedência. Isso é particularmente importante quando você precisa conceder funções específicas ao agente de serviço para garantir que o processo de implantação tenha as permissões necessárias e evitar possíveis falhas de implantação.
Estas são as etapas para gerar manualmente um agente de serviço do mecanismo de raciocínio:
Gere o agente de serviço do Reasoning Engine usando a Google Cloud CLI.
gcloud beta services identity create --service=aiplatform.googleapis.com --project=PROJECT-ID-OR-PROJECT-NUMBERAcesse a página do IAM e clique em Conceder acesso.
Na seção Adicionar principais, no campo Novos principais, digite
service-PROJECT_NUMBER@gcp-sa-aiplatform-re.iam.gserviceaccount.com.Na seção Atribuir papéis, encontre e selecione os papéis necessários.
Clique no botão Salvar.
Conta de serviço personalizada
Para usar sua própria conta de serviço, conceda a ela as permissões necessárias para executar o agente. Sua conta de serviço personalizada provavelmente precisa do papel de
Usuário da Vertex AI (roles/aiplatform.user).
Se você não tiver uma conta de serviço, crie uma. Consulte Criar contas de serviço.
Conceda à conta de serviço o papel de Usuário da Vertex AI (
roles/aiplatform.user).Conceda à conta de serviço todos os outros papéis exigidos pelo código do agente.
Para implantar o agente com essa conta de serviço, conceda a si mesmo o papel Usuário da conta de serviço (
roles/iam.serviceAccountUser) nessa conta de serviço personalizada.Ao implantar o agente, especifique o endereço de e-mail da sua conta de serviço personalizada. Consulte Configurar uma conta de serviço personalizada para mais detalhes.
Conta de serviço personalizada entre projetos
Se a conta de serviço personalizada for de um projeto diferente, serão necessárias outras configurações no projeto em que a conta de serviço reside e no projeto em que você implanta o agente.
Desative a política da organização para uso de contas de serviço entre projetos:no projeto em que a conta de serviço está localizada, verifique se a política da organização
iam.disableCrossProjectServiceAccountUsageNÃO está sendo aplicada. Consulte Desativar a aplicação do uso conta de serviço entre projetos para mais detalhes.Conceda permissões ao agente de serviço da Vertex AI:no projeto em que a conta de serviço está localizada, conceda o papel de Criador de token da conta de serviço (
roles/iam.serviceAccountTokenCreator) ao agente de serviço da Vertex AI (service-RESOURCE_PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com) do projeto em que você planeja implantar o agente.Conceda permissões à conta de serviço personalizada:no projeto em que você planeja implantar o agente, conceda os papéis necessários à conta de serviço personalizada. Isso geralmente inclui a função Usuário da Vertex AI (
roles/aiplatform.user) e qualquer outra função exigida pelo código do seu agente.
(Opcional) Criar um bucket do Cloud Storage
A necessidade de um bucket do Cloud Storage depende de se o SDK da Vertex AI para Python precisa de um lugar para organizar o código do agente antes da implantação:
Implantação de arquivos de origem: o agente existe como arquivos. O SDK da Vertex AI para Python pode agrupar e fazer upload desses arquivos diretamente para o serviço de implantação. Assim, não é necessário um bucket de preparo do Cloud Storage.
Fazer implantação do objeto do agente: o agente existe na memória. O SDK da Vertex AI para Python empacota esse objeto e o envia para um bucket do Cloud Storage, que funciona como uma área de preparo para o serviço de implantação.
Implantar de arquivos de origem
Se você implantar um agente de arquivos de origem, não será necessário um bucket do Cloud Storage.
Implantar do objeto
Ao implantar de um objeto de agente, o Vertex AI Agent Engine organiza os artefatos dos agentes implantados em um bucket do Cloud Storage como parte do processo de implantação. Verifique se o principal autenticado para usar a Vertex AI (você ou uma conta de serviço) tem acesso Storage Admin a esse bucket. Isso é necessário porque o SDK da Vertex AI para Python grava seu código nesse bucket.
Se você já tiver um bucket configurado, pule esta etapa. Caso contrário, siga as instruções padrão para criar um bucket.
Peça ao administrador para conceder a você o papel do IAM de Administrador do Storage (roles/storage.admin) no projeto.
Console doGoogle Cloud
- No console do Google Cloud , acesse a página Buckets do Cloud Storage.
- Clique em Criar.
- Na página Criar um bucket, insira as informações do seu bucket. Para ir à próxima
etapa, clique em Continuar.
-
Na seção Começar, faça o seguinte:
- Insira um nome globalmente exclusivo que atenda aos requisitos de nomeação de bucket.
- Para adicionar um
rótulo de bucket,
abra a seção Rótulos (),
clique em add_box
Adicionar rótulo e especifique um
keye umvaluepara o rótulo.
-
Na seção Escolha onde armazenar seus dados, faça o seguinte:
- Selecione um tipo de local.
- Escolha um local onde os dados do bucket são armazenados permanentemente no menu suspenso Tipo de local.
- Se você selecionar o tipo de local birregional, também poderá ativar a replicação turbo usando a caixa de seleção relevante.
- Para configurar a replicação entre buckets, selecione
Adicionar replicação entre buckets usando o Serviço de transferência do Cloud Storage e
siga estas etapas:
Configurar a replicação entre buckets
- No menu Bucket, selecione um bucket.
Na seção Configurações de replicação, clique em Configurar para definir as configurações do job de replicação.
O painel Configurar a replicação entre buckets aparece.
- Para filtrar objetos a serem replicados por prefixo de nome de objeto, insira um prefixo com que você quer incluir ou excluir objetos e clique em Adicionar um prefixo.
- Para definir uma classe de armazenamento para os objetos replicados, selecione uma classe de armazenamento no menu Classe de armazenamento. Se você pular esta etapa, os objetos replicados vão usar a classe de armazenamento do bucket de destino por padrão.
- Clique em Concluído.
-
Na seção Escolha como armazenar seus dados, faça o seguinte:
- Selecione uma classe de armazenamento padrão para o bucket ou Classe automática para gerenciamento automático da classe de armazenamento dos dados do bucket.
- Para ativar o namespace hierárquico, na seção Otimizar o armazenamento para cargas de trabalho com uso intensivo de dados, selecione Ativar namespace hierárquico neste bucket.
- Na seção Escolha como controlar o acesso a objetos, selecione se o bucket aplica ou não a prevenção de acesso público e selecione um método de controle de acesso para os objetos do bucket.
-
Na seção Escolha como proteger os dados do objeto, faça o
seguinte:
- Selecione qualquer uma das opções em Proteção de dados que
você quer definir para o bucket.
- Para ativar a exclusão reversível, clique na caixa de seleção Política de exclusão reversível (para recuperação de dados) e especifique o número de dias que você quer reter os objetos após a exclusão.
- Para definir o controle de versões de objetos, clique na caixa de seleção Controle de versões de objetos (para controle de versões) e especifique o número máximo de versões por objeto e o número de dias após os quais as versões não atuais expiram.
- Para ativar a política de retenção em objetos e buckets, clique na caixa de seleção Retenção (para compliance) e faça o seguinte:
- Para ativar o bloqueio de retenção de objetos, clique na caixa de seleção Ativar retenção de objetos.
- Para ativar o Bloqueio de buckets, clique na caixa de seleção Definir política de retenção de buckets e escolha uma unidade e um período de armazenamento para a retenção.
- Para escolher como os dados do objeto serão criptografados, expanda a seção Criptografia de dados () e selecione um método de Criptografia de dados.
- Selecione qualquer uma das opções em Proteção de dados que
você quer definir para o bucket.
-
Na seção Começar, faça o seguinte:
- Clique em Criar.
Linha de comando
-
Crie um bucket do Cloud Storage e configure-o da seguinte maneira:
-
Substitua
STORAGE_CLASSpela classe de armazenamento de sua preferência. -
Substitua
LOCATIONpelo local de sua preferência (ASIA,EUouUS) -
Substitua
BUCKET_NAMEpor um nome de bucket que atenda aos requisitos.
gcloud storage buckets create gs://BUCKET_NAME --default-storage-class STORAGE_CLASS --location LOCATION
Instalar e inicializar o SDK do Vertex AI para Python
Esta seção pressupõe que você configurou um ambiente de desenvolvimento Python ou está usando o Colab (ou qualquer outro tempo de execução adequado que tenha feito isso para você).
(Opcional) Configure um ambiente virtual
Também recomendamos configurar um ambiente virtual para isolar suas dependências.
Instalação
Para minimizar o conjunto de dependências que você precisa instalar, separamos as dependências em:
agent_engines: o conjunto de pacotes necessários para a implantação no Vertex AI Agent Engine.adk: o conjunto de pacotes compatíveis do Kit de Desenvolvimento de Agente.langchain: o conjunto de pacotes compatíveis do LangChain e do LangGraph.ag2: o conjunto de pacotes AG2 compatíveis.llama_index: o conjunto de pacotes compatíveis do LlamaIndex.
Ao instalar o SDK da Vertex AI para Python, é possível especificar as dependências necessárias (separadas por vírgulas). Para instalar todos:
pip install google-cloud-aiplatform[agent_engines,adk,langchain,ag2,llama_index]>=1.112.0Para usar o Agent2Agent (A2A) no Agent Engine, instale também o pacote a2a-sdk:
pip install a2a-sdk>=0.3.4Autenticação
Colab
Execute o seguinte código:
from google.colab import auth
auth.authenticate_user(project_id="PROJECT_ID")
Cloud Shell
Nenhuma ação é necessária.
Shell local
Execute este comando:
gcloud auth application-default loginImportar e inicializar o SDK
Execute o código a seguir para importar e inicializar o SDK do Vertex AI Agent Engine:
Projeto do Google Cloud
import vertexai
from vertexai import agent_engines # For the prebuilt templates
client = vertexai.Client( # For service interactions via client.agent_engines
project="PROJECT_ID",
location="LOCATION",
)
em que
PROJECT_IDé o ID do projeto do Google Cloud em que você desenvolve e implanta agentes.LOCATIONé uma das regiões com suporte.
(Opcional) Use seu próprio contêiner (BYOC)
O Vertex AI Agent Engine cria um contêiner para você como parte do processo de implantação. Se você pretende criar seu próprio contêiner para implantação, siga as instruções nas subseções a seguir. Em geral, isso envolve as seguintes etapas:
- Crie e envie uma imagem de contêiner para o Artifact Registry.
- Configure as contas de serviço do Vertex AI Agent Engine que correspondem ao projeto do usuário (em Configurar a identidade e as permissões do agente) e ao projeto de locatário (em que o ambiente de execução é executado).
- Conceda o papel
roles/artifactregistry.readerà conta de serviço do projeto do usuário e à conta de serviço do projeto de locatário.
Criar e enviar uma imagem do contêiner
Para criar e enviar uma imagem de contêiner, siga as instruções em Criar e enviar uma imagem Docker com o Cloud Build.
Configurar as contas de serviço para o Vertex AI Agent Engine
Para configurar as contas de serviço, implante um agente que imprima a conta de serviço do locatário.
Primeiro, configure o código-fonte do agente:
Abrir uma janela de terminal
Crie um novo diretório chamado
byoc_setup.mkdir byoc_setupCrie um arquivo no diretório
byoc_setupchamadometadata_agent.pycom o seguinte conteúdo:class MetadataAgent: def query(self): import requests url = "http://metadata.google.internal/computeMetadata/v1/project/numeric-project-id" try: response = requests.get(url, headers={"Metadata-Flavor": "Google"}) response.raise_for_status() return f"service-{response.text}@serverless-robot-prod.iam.gserviceaccount.com" except Exception: return None root_agent = MetadataAgent()Crie outro arquivo no diretório
byoc_setupchamadorequirements.txtcom o seguinte conteúdo:google-cloud-aiplatform[agent_engines]Se ainda não tiver feito isso, instale e inicialize o SDK da Vertex AI para Python. Na mesma sessão do Python em que você inicializou o SDK da Vertex AI para Python, execute o código a seguir para imprimir um
TENANT_SERVICE_ACCOUNT:remote_agent = client.agent_engines.create( # This deploys the agent config={ "source_packages": ["byoc_setup"], "entrypoint_module": "byoc_setup.metadata_agent", "entrypoint_object": "root_agent", "requirements_file": "byoc_setup/requirements.txt", "class_methods": [{'api_mode': '', 'name': 'query'}], }, ) # This prints the tenant service account # service-{tenant_project_number}@serverless-robot-prod.iam.gserviceaccount.com print(remote_agent.query()) # This cleans up the resources remote_agent.delete(force=True)Procure o
USER_SERVICE_ACCOUNTem Configurar a identidade e as permissões do seu agente. Se você estiver usando o agente de serviço padrão, isso vai corresponder aservice-PROJECT_NUMBER@gcp-sa-aiplatform-re.iam.gserviceaccount.com.
Conceder papéis de leitor do Artifact Registry
Conceda os papéis necessários executando os seguintes comandos:
gcloud projects add-iam-policy-binding <var>PROJECT_NUMBER</var> \ --member="serviceAccount:USER_SERVICE_ACCOUNT" \ --role="roles/artifactregistry.reader"gcloud projects add-iam-policy-binding <var>PROJECT_NUMBER</var> \ --member="serviceAccount:TENANT_SERVICE_ACCOUNT" \ --role="roles/artifactregistry.reader"