A implantação de um agente no Agent Runtime o disponibiliza remotamente para processar solicitações. Neste documento, explicamos como implantar um agente com base no seu fluxo de trabalho de desenvolvimento: de um objeto de execução, arquivos de origem locais, um Dockerfile, uma imagem de contêiner hospedada no Artifact Registry ou diretamente por um repositório Git conectado.
Para implantar um agente no Agent Runtime, escolha um dos seguintes métodos:
Developer Connect
Recomendado para projetos gerenciados em um repositório Git vinculados pelo Developer Connect. Esse método simplifica a implantação de agentes diretamente do código-fonte e oferece suporte nativo ao controle de versões, à colaboração em equipe e aos pipelines de CI/CD. Antes de usar esse método, configure o link do repositório Git seguindo as instruções em Configurar o link do repositório Git do Developer Connect.
Esse método de implantação só pode ser usado com o Python.
Arquivos de origem
Adequado para fluxos de trabalho automatizados, como pipelines de CI/CD e ferramentas de infraestrutura como código, como o Terraform, permitindo implantações totalmente declarativas e automatizadas. Ele implanta seu agente diretamente do código-fonte local e não requer um bucket do Cloud Storage.
Esse método de implantação só pode ser usado com o Python.
Dockerfile
Semelhante à implantação de arquivos de origem. Você implanta o agente diretamente do código-fonte local sem precisar de um bucket do Cloud Storage. Esse método é adequado se você precisar definir e controlar o servidor de API implantado. O contêiner implantado precisa seguir o contrato de ambiente de execução.
É possível usar esse método de implantação com qualquer linguagem. Os exemplos nesta página usam Python.
Imagem do contêiner
Semelhante à implantação do Dockerfile. Implante uma imagem de contêiner hospedada no Artifact Registry. Use esse método se você precisar de controle sobre o processo de criação da imagem do contêiner e menor latência de implantação. A imagem do contêiner precisa seguir o contrato de ambiente de execução.
É possível usar esse método de implantação com qualquer linguagem. Os exemplos nesta página usam Python.
SDK da plataforma de agentes
Ideal para desenvolvimento interativo em ambientes como o Colab, permitindo
a implantação de objetos local_agent na memória. Esse método funciona melhor para agentes
com estruturas que não contêm componentes complexos e não serializáveis.
Para começar, siga estas etapas:
- Concluir pré-requisitos
- Opcional: configurar o agente para implantação
- Criar uma instância da Agent Platform
- Opcional: receber o ID do recurso do agente
- Opcional: listar as operações compatíveis
- Opcional: conceder as permissões do agente implantado
Pré-requisitos
Antes de implantar um agente, conclua as seguintes tarefas:
Opcional: configurar o agente para implantação
É possível fazer configurações opcionais para o agente. Os exemplos nesta seção usam Python.
Criar uma instância da Agent Platform
Nesta seção, descrevemos como criar uma instância da Agent Platform para implantar um agente. Você pode escolher entre os seguintes métodos:
Developer Connect
Para implantar do Developer Connect na Agent Platform, use client.runtimes.create fornecendo developer_connect_source, entrypoint_module e entrypoint_object no dicionário de configuração, além de outras configurações opcionais. Esse método permite implantar código diretamente de um repositório Git conectado.
Esse método de implantação só pode ser usado com o Python.
remote_agent = client.runtimes.create( config={ "developer_connect_source": { # Required. "git_repository_link": "projects/PROJECT_ID/locations/LOCATION/connections/CONNECTION_ID/gitRepositoryLinks/REPO_ID", "revision": "main", "dir": "path/to/dir", }, "entrypoint_module": "agent", # Required. "entrypoint_object": "root_agent", # Required. "requirements_file": "requirements.txt", # Optional. # Other optional configs: # "env_vars": {...}, # "service_account": "...", }, )
Os parâmetros para a implantação do Developer Connect são:
developer_connect_source(dict): a configuração para buscar o código-fonte. Consulte Configurar o link do repositório Git do Developer Connect para mais detalhes.git_repository_link(str): o nome do recurso do link do repositório Git do Developer Connect.revision(str): a revisão a ser buscada (ramificação, tag ou SHA de commit).dir(str): o diretório raiz do código do agente no repositório.
entrypoint_module(str): o nome do módulo Python que contém o ponto de entrada do agente, relativo ao diretório especificado emdeveloper_connect_source.dir.entrypoint_object(str): o nome do objeto chamável dentro doentrypoint_moduleque representa o aplicativo do agente (por exemplo,root_agent).requirements_file(str): opcional. O caminho para um arquivo de requisitos do pip em relação à raiz de origem. O padrão érequirements.txt.
A implantação leva alguns minutos, durante os quais as seguintes etapas acontecem em segundo plano:
- O serviço do Agent Runtime busca o código-fonte da revisão do repositório Git especificada.
- O serviço instala dependências de
requirements_file(se fornecido). - O serviço inicia o aplicativo do agente usando os valores especificados para
entrypoint_moduleeentrypoint_object.
A latência da implantação depende do tempo total necessário para instalar os pacotes
necessários. Depois de implantado, remote_agent corresponde a uma instância de
local_agent que está em execução na plataforma de agentes e pode ser consultada ou
excluída.
O objeto remote_agent corresponde a uma classe AgentRuntime que contém o seguinte:
remote_agent.api_resourcecom informações sobre o agente implantado. Também é possível chamarremote_agent.operation_schemas()para retornar a lista de operações compatíveis com oremote_agent. Consulte Operações compatíveis para mais detalhes.remote_agent.api_clientque permite interações de serviço síncronasremote_agent.async_api_clientque permite interações de serviço assíncronas
Arquivos de origem
Para implantar de arquivos de origem na Agent Platform, use client.runtimes.create fornecendo source_packages, entrypoint_module, entrypoint_object e class_methods no dicionário de configuração, além de outras configurações opcionais. Com esse método, não é necessário transmitir um objeto de agente ou um bucket do Cloud Storage.
Esse método de implantação só pode ser usado com o Python.
# Example file structure: # /agent_directory # ├── agent.py # ├── requirements.txt # Example agent_directory/agent.py: # class MyAgent: # def ask(self, question: str) -> str: # return f"Answer to {question}" # root_agent = MyAgent() remote_agent = client.runtimes.create( config={ "source_packages": source_packages, # Required. "entrypoint_module": entrypoint_module, # Required. "entrypoint_object": entrypoint_object, # Required. "class_methods": class_methods, # Required. "requirements_file": requirements_file, # Optional. "display_name": display_name, # Optional. "description": description, # Optional. "labels": labels, # Optional. "env_vars": env_vars, # Optional. "build_options": build_options, # Optional. "identity_type": identity_type, # Optional. "service_account": service_account, # Optional. "min_instances": min_instances, # Optional. "max_instances": max_instances, # Optional. "resource_limits": resource_limits, # Optional. "container_concurrency": container_concurrency, # Optional "encryption_spec": encryption_spec, # Optional. "agent_framework": agent_framework, # Optional. }, )
Os parâmetros para implantação de origem inline são:
source_packages(list[str]): uma lista de caminhos de arquivos ou diretórios locais para incluir na implantação. O tamanho total dos arquivos e diretórios emsource_packagesnão pode exceder 8 MB.entrypoint_module(str): o nome totalmente qualificado do módulo Python que contém o ponto de entrada do agente (por exemplo,agent_dir.agent).entrypoint_object(str): o nome do objeto chamável dentro doentrypoint_moduleque representa o aplicativo do agente (por exemplo,root_agent).class_methods(list[dict]): uma lista de dicionários que definem os métodos expostos do agente. Cada dicionário inclui um camponame,api_modee um campo opcionalparameters. Consulte Listar operações compatíveis para mais informações sobre os métodos de um agente personalizado.Exemplo:
class_methods = [ { "name": "method_name", "api_mode": "", # Options: "", "async", "async_stream", "stream", "bidi_stream" "parameters": { "type": "object", "properties": { "param1": {"type": "string", "description": "Description of param1"}, "param2": {"type": "integer"} }, "required": ["param1"] } } ]
requirements_file(str): opcional. O caminho para um arquivo de requisitos do pip nos caminhos especificados emsource_packages. O padrão érequirements.txtno diretório raiz da origem empacotada.
A implantação leva alguns minutos, durante os quais as seguintes etapas acontecem em segundo plano:
- O SDK da Plataforma de Agentes cria um arquivo
tar.gzdos caminhos especificados emsource_packages. - Esse arquivo é codificado e enviado diretamente para a API Agent Platform.
- O serviço Agent Runtime recebe o arquivo, o extrai, instala as dependências de
requirements_file(se fornecido) e inicia o aplicativo do agente usando osentrypoint_moduleeentrypoint_objectespecificados.
A latência da implantação depende do tempo total necessário para instalar os pacotes
necessários. Depois de implantado, remote_agent corresponde a uma instância de
local_agent que está em execução na plataforma de agentes e pode ser consultada ou
excluída.
O objeto remote_agent corresponde a uma classe AgentRuntime que contém o seguinte:
remote_agent.api_resourcecom informações sobre o agente implantado. Também é possível chamarremote_agent.operation_schemas()para retornar a lista de operações compatíveis com oremote_agent. Consulte Operações compatíveis para mais detalhes.remote_agent.api_clientque permite interações de serviço síncronasremote_agent.async_api_clientque permite interações de serviço assíncronas
Dockerfile
A implantação do Dockerfile na plataforma de agentes segue uma abordagem semelhante
à implantação de arquivos de origem, exceto que você usa
image_spec na configuração em vez de entrypoint_module,
entrypoint_object e requirements_file. O contêiner criado com base no
Dockerfile precisa seguir o contrato de ambiente de execução.
É possível usar esse método de implantação com qualquer linguagem. O exemplo nesta seção usa Python.
Veja a seguir um exemplo de implantação de um agente usando um Dockerfile:
# Example file structure: # /current_directory # ├── agent.py # ├── main.py # ├── requirements.txt # ├── Dockerfile remote_agent = client.runtimes.create( config={ "source_packages": [ "agent.py", "main.py", "requirements.txt", "Dockerfile", ], "image_spec": {}, # tells Agent Runtime to use the Dockerfile # Other optional configs "display_name": "Dockerfile agent", } )
A latência da implantação depende do tempo total necessário para instalar os pacotes
necessários. Depois de implantado, remote_agent corresponde a uma instância de
local_agent que está em execução na plataforma de agentes e pode ser consultada ou
excluída.
O objeto remote_agent corresponde a uma classe AgentRuntime que contém o seguinte:
remote_agent.api_resourcecom informações sobre o agente implantado. Também é possível chamarremote_agent.operation_schemas()para retornar a lista de operações compatíveis com oremote_agent. Consulte Operações compatíveis para mais detalhes.remote_agent.api_clientque permite interações de serviço síncronasremote_agent.async_api_clientque permite interações de serviço assíncronas
Imagem do contêiner
Para implantar usando uma imagem do contêiner, siga as instruções de configuração em
Traga seu próprio contêiner
e instale uma versão de google-cloud-aiplatform que atenda a
>=1.144. A imagem do contêiner precisa seguir o contrato de ambiente de execução.
É possível usar esse método de implantação com qualquer linguagem. O exemplo nesta seção usa Python.
Veja a seguir um exemplo de implantação de um agente usando uma imagem de contêiner:
remote_agent = client.runtimes.create( config={ "container_spec": { "image_uri": "CONTAINER_IMAGE_URI", }, # Other optional configs "display_name": "Container image agent", }, )
Em que CONTAINER_IMAGE_URI corresponde ao URI da imagem do contêiner no Artifact Registry (como us-central1-docker.pkg.dev/my-project/my-repo/my-image:tag).
A latência da implantação depende do tempo total necessário para instalar os pacotes
necessários. Depois de implantado, remote_agent corresponde a uma instância de
local_agent que está em execução na plataforma de agentes e pode ser consultada ou
excluída.
O objeto remote_agent corresponde a uma classe AgentRuntime que contém o seguinte:
remote_agent.api_resourcecom informações sobre o agente implantado. Também é possível chamarremote_agent.operation_schemas()para retornar a lista de operações compatíveis com oremote_agent. Consulte Operações compatíveis para mais detalhes.remote_agent.api_clientque permite interações de serviço síncronasremote_agent.async_api_clientque permite interações de serviço assíncronas
SDK da plataforma de agentes
Para implantar o agente na Agent Platform, use client.runtimes.create para
transmitir o objeto local_agent com as configurações opcionais:
remote_agent = client.runtimes.create( agent=local_agent, # Optional. config={ "requirements": requirements, # Optional. "extra_packages": extra_packages, # Optional. "gcs_dir_name": gcs_dir_name, # Optional. "display_name": display_name, # Optional. "description": description, # Optional. "labels": labels, # Optional. "env_vars": env_vars, # Optional. "build_options": build_options, # Optional. "identity_type": identity_type, # Optional. "service_account": service_account, # Optional. "min_instances": min_instances, # Optional. "max_instances": max_instances, # Optional. "resource_limits": resource_limits, # Optional. "container_concurrency": container_concurrency, # Optional "encryption_spec": encryption_spec, # Optional. "agent_framework": agent_framework, # Optional. }, )
A implantação leva alguns minutos, durante os quais as seguintes etapas acontecem em segundo plano:
- Um pacote com os seguintes artefatos é gerado localmente:
*.pkl: um arquivo pickle correspondente ao local_agent.requirements.txt: um arquivo de texto que contém os requisitos do pacote.dependencies.tar.gz: um arquivo tar que contém pacotes extras.
- O pacote é enviado para o Cloud Storage (na pasta correspondente) para preparar os artefatos.
- Os URIs do Cloud Storage para os respectivos artefatos são especificados no PackageSpec.
- O serviço Agent Runtime recebe a solicitação, cria contêineres e inicia servidores HTTP no back-end.
A latência da implantação depende do tempo total necessário para instalar os pacotes
necessários. Depois de implantado, remote_agent corresponde a uma instância de
local_agent que está em execução na plataforma de agentes e pode ser consultada ou
excluída.
O objeto remote_agent corresponde a uma classe AgentRuntime que contém o seguinte:
remote_agent.api_resourcecom informações sobre o agente implantado. Também é possível chamarremote_agent.operation_schemas()para retornar a lista de operações compatíveis com oremote_agent. Consulte Operações compatíveis para mais detalhes.remote_agent.api_clientque permite interações de serviço síncronasremote_agent.async_api_clientque permite interações de serviço assíncronas
Opcional: receber o ID do recurso do agente
Cada agente implantado tem um identificador exclusivo. Execute o seguinte comando para receber o nome do recurso do agente implantado:
remote_agent.api_resource.name
A resposta será parecida com esta string:
"projects/PROJECT_NUMBER/locations/LOCATION/reasoningEngines/RESOURCE_ID"
em que
PROJECT_IDé o Cloud de Confiance by S3NS ID do projeto em que o agente implantado é executado.LOCATIONé a região em que o agente implantado é executado.RESOURCE_IDé o ID do agente implantado como um recursoreasoningEngine.
Opcional: listar as operações compatíveis
Cada agente implantado tem uma lista de operações compatíveis. Use o
AgentRuntime.operation_schemas
para ver a lista de operações compatíveis com o agente implantado:
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 você pode chamar. O conjunto de operações compatíveis depende do framework usado para desenvolver o agente:
Opcional: conceder permissões ao agente implantado
Se o agente implantado precisar de outras permissões, siga as instruções em Configurar a identidade e as permissões do agente.
Opcional: implantar agentes com infraestrutura empresarial
Para implantar o agente com um ambiente completo que inclua camadas de segurança e governança, copie e personalize os seguintes modelos do Application Design Center:
A seguir
Gerenciar agentes implantados
Saiba como gerenciar agentes que foram implantados no ambiente de execução gerenciado da Agent Platform.