(Opcional) Configure o agente para a implementação
Pode fazer as seguintes configurações opcionais para o seu agente:
Defina os requisitos do pacote
Forneça o conjunto de pacotes exigidos pelo agente para a implementação. O conjunto de pacotes pode ser uma lista de itens a serem instalados pelo pip ou o caminho para um ficheiro que segue o formato de ficheiro de requisitos.
Use as seguintes práticas recomendadas:
Fixe as versões dos pacotes para compilações reproduzíveis. Os pacotes comuns para acompanhar incluem o seguinte: google-cloud-aiplatform,
cloudpickle, langchain, langchain-core,
langchain-google-vertexai e pydantic.
Minimize o número de dependências no seu agente. Isto reduz o número de alterações
destrutivas quando atualiza as dependências e o agente.
Se o agente não tiver dependências, pode definir requirements
para None:
requirements=None
Se o agente usar um modelo específico da framework, deve especificar a versão do SDK que é importada (como 1.112.0) ao desenvolver o agente.
Pode incluir ficheiros ou diretórios locais que contenham ficheiros de origem Python necessários localmente. Em comparação com os requisitos de pacotes, isto permite-lhe usar utilitários privados que desenvolveu e que, de outra forma, não estão disponíveis no PyPI nem no GitHub.
Se o agente não precisar de pacotes adicionais, pode definir
extra_packages como None:
extra_packages=None
Também pode fazer o seguinte com o extra_packages:
Incluir um único ficheiro (como agents/agent.py):
extra_packages=["agents/agent.py"]
Inclua o conjunto de ficheiros num diretório completo (por exemplo,
agents/):
extra_packages=["agents"]# directory that includes agents/agent.py
requirements=["google-cloud-aiplatform[agent_engines,adk]","cloudpickle==3.0","python_package.whl",# install from the whl file that was uploaded]extra_packages=["path/to/python_package.whl"]# bundle the whl file for uploading
Defina variáveis de ambiente
Se existirem variáveis de ambiente das quais o seu agente depende, pode especificá-las no argumento env_vars=. Se o agente não depender de nenhuma variável de ambiente, pode defini-lo como None:
env_vars=None
Para especificar as variáveis de ambiente, existem algumas opções diferentes disponíveis:
Pode especificar controlos de recursos de tempo de execução para o agente, como o número mínimo e máximo de instâncias da aplicação, limites de recursos para cada contentor e simultaneidade para cada contentor.
min_instances: o número mínimo de instâncias da aplicação a manter em execução em todos os momentos, com um intervalo de [0, 10]. O valor predefinido é 1.
max_instances: o número máximo de instâncias da aplicação que podem ser iniciadas para processar o aumento do tráfego, com um intervalo de [1, 1000].
O valor predefinido é 100. Se o VPC-SC ou o PSC-I estiver ativado, o intervalo aceitável é [1, 100].
resource_limits: limites de recursos para cada contentor. Apenas são suportadas as chaves cpu e memory. O valor predefinido é {"cpu": "4", "memory": "4Gi"}.
Os únicos valores suportados para cpu são 1, 2, 4, 6 e
8. Para mais informações, consulte o artigo
Configure a atribuição de CPU.
Os únicos valores suportados para memory são 1Gi, 2Gi, ...
32Gi.
container_concurrency: concorrência para cada contentor e servidor
de agente. O valor recomendado é 2 * cpu + 1. O valor predefinido é 9.
remote_agent=client.agent_engines.create(agent=local_agent,config={"min_instances":1,"max_instances":10,"resource_limits":{"cpu":"4","memory":"8Gi"},"container_concurrency":9,# ... other configs})
Defina as opções de compilação
Pode especificar opções de compilação para o agente, como scripts de instalação a executar quando compila a imagem do contentor do agente. Isto é útil para instalar dependências do sistema (por exemplo, gcloud cli, npx) ou outras configurações personalizadas. Os scripts são executados com autorizações de raiz.
Para usar scripts de instalação, crie um diretório com o nome installation_scripts e coloque os seus scripts de shell no diretório installation_scripts:
Os artefactos de preparação são substituídos se corresponderem a uma pasta existente num contentor do Cloud Storage.
Se necessário, pode especificar a pasta do Cloud Storage para os artefactos de preparação. Pode definir gcs_dir_name como None se não se importar de substituir potencialmente os ficheiros na pasta predefinida:
gcs_dir_name=None
Para evitar substituir os ficheiros (por exemplo, para diferentes ambientes, como desenvolvimento, preparação e produção), pode configurar a pasta correspondente e especificar a pasta para preparar o artefacto em:
gcs_dir_name="dev"# or "staging" or "prod"
Se quiser ou precisar de evitar colisões, pode gerar um
uuid aleatório:
importuuidgcs_dir_name=str(uuid.uuid4())
Defina o nome a apresentar
Pode definir o nome a apresentar para o recurso ReasoningEngine
Pode definir a descrição do recurso ReasoningEngine
da seguinte forma:
description="""An agent that has access to tools for looking up the exchange rate.If you run into any issues, please contact the dev team."""
Defina as etiquetas
Pode definir as etiquetas do recurso ReasoningEngine
como um dicionário de pares de strings de chave-valor. Segue-se um exemplo:
labels={"author":"username","version":"latest"}
Configure uma conta de serviço personalizada
Pode configurar uma conta de serviço personalizada como a identidade do seu agente implementado, em vez da identidade predefinida.
Para tal, especifique o email da sua conta de serviço personalizada como o
service_account quando criar ou atualizar a instância do Agent Engine, por exemplo:
# Create a new instanceclient.agent_engines.create(agent=local_agent,config={"service_account":"my-custom-service-account@my-project.iam.gserviceaccount.com",# ...},)# Update an existing instanceresource_name="projects/{project_id}/locations/{location}/reasoningEngines/{reasoning_engine_id}"client.agent_engines.update(name=resource_name,agent=local_agent,config={"service_account":"my-new-custom-service-account@my-project.iam.gserviceaccount.com",# ...},)
NETWORK_ATTACHMENT é o nome ou o caminho completo do anexo de rede. Se a associação de rede for criada num projeto (como o projeto anfitrião de VPC partilhada) diferente daquele onde usa o Agent Engine, tem de transmitir o caminho completo da associação de rede.
DOMAIN_SUFFIX é o nome DNS da zona do Cloud DNS privado que criou quando configurou o peering de DNS privado.
TARGET_PROJECT é o projeto que aloja a rede VPC. Pode ser diferente do projeto de associação à rede.
TARGET_NETWORK é o nome da rede VPC.
Pode configurar vários agentes para usar um único anexo de rede partilhado ou anexos de rede únicos e dedicados. Para usar um anexo de rede partilhado, forneça o mesmo anexo de rede no elemento psc_interface_config para cada agente que criar.
Configure chaves de encriptação geridas pelo cliente
Para configurar a chave personalizada (CMEK) do seu agente, tem de fornecer o nome do recurso da chave ao parâmetro encryption_spec quando criar a instância do Agent Engine.
# The fully qualified key namekms_key_name="projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"remote_agent=client.agent_engines.create(agent=local_agent,config={"encryption_spec":{"kms_key_name":kms_key_name},# ... other parameters},)
Crie uma instância do AgentEngine
Para implementar o agente no Vertex AI, use client.agent_engines.create para
transmitir o objeto local_agent juntamente com quaisquer configurações opcionais:
O pacote é carregado para o Cloud Storage (na pasta correspondente) para a preparação dos artefactos.
Os URIs do Cloud Storage para os artefactos respetivos são especificados no elemento
PackageSpec.
O serviço Vertex AI Agent Engine recebe o pedido, cria contentores e inicia servidores HTTP no back-end.
A latência da implementação depende do tempo total necessário para instalar os pacotes necessários. Após a implementação, remote_agent corresponde a uma instância de local_agent que está a ser executada no Vertex AI e pode ser consultada ou eliminada. Está separada das instâncias locais do agente.
O objeto remote_agent corresponde a uma classe AgentEngine que contém os seguintes atributos:
Um remote_agent.api_resource com informações sobre o agente implementado.
Também pode chamar agent.operation_schemas() para devolver a lista de operações que o agente suporta. Consulte o artigo Liste as operações suportadas para ver detalhes.
PROJECT_ID é o Google Cloud ID do projeto
onde o agente implementado é executado.
LOCATION é a região
onde o agente implementado é executado.
RESOURCE_ID é o ID do agente implementado como um recurso reasoningEngine.
(Opcional) Indique as operações suportadas
Cada agente implementado tem uma lista de operações suportadas. Pode executar o seguinte comando para obter a lista de operações suportadas pelo agente implementado:
remote_agent.operation_schemas()
O esquema de cada operação é um dicionário que documenta as informações de um método para o agente que pode chamar. O conjunto de operações suportadas depende da framework que usou para desenvolver o seu agente:
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-10-19 UTC."],[],[]]