Gerenciar modelos de sandbox

Cada sandbox é apoiado por um modelo de ambiente de sandbox, que descreve a imagem do contêiner a ser executada. Os modelos de sandbox servem como projetos para sandboxes de contêiner personalizados. Esta página demonstra como gerenciar o ciclo de vida dos modelos de sandbox usando o SDK da Agent Platform. É possível listar os modelos atuais, conferir os detalhes ou excluí-los quando não forem mais necessários.

Para modificar a configuração de um modelo (como mudar a imagem do contêiner), exclua o modelo atual e crie um novo com a configuração atualizada.

Antes de começar

Para gerenciar modelos de sandbox, você precisa das seguintes funções no seu projeto:

  • Usuário da Agent Platform (roles/aiplatform.user)

Reutilizar modelos em sandboxes

Para sandboxes de uso de computador e shell, se você não especificar um modelo, o modelo padrão (DEFAULT_CONTAINER_CATEGORY_COMPUTER_USE ou DEFAULT_CONTAINER_CATEGORY_SHELL_SANDBOX) será criado para a sandbox.

Um novo modelo é criado durante cada chamada create() que não nomeia um modelo. A exclusão da sandbox não exclui o modelo. Portanto, é necessário excluir os modelos separadamente. Se você criar muitas sandboxes, recomendamos reutilizar modelos para conservar recursos.

Criar um modelo:

from agentplatform._genai import types

template_op = client.agent_engines.sandboxes.templates.create(
    name=instance_name,
    display_name="shell-sandbox-template",
    config=types.CreateSandboxEnvironmentTemplateConfig(
        default_container_environment=types.SandboxEnvironmentTemplateDefaultContainerEnvironment(
            default_container_category=types.DefaultContainerCategory.DEFAULT_CONTAINER_CATEGORY_SHELL_SANDBOX,
        ),
    ),
)
template = template_op.response.name

Associe cada sandbox ao modelo definindo sandbox_environment_template:

operation = client.sandboxes.create(
    name=instance_name,
    spec={"shell_environment": {}},
    config={
        "sandbox_environment_template": template,
        "wait_for_completion": True,
    },
)

Listar modelos

Para listar todos os modelos de sandbox associados a uma instância da Agent Platform:

import agentplatform

client = agentplatform.Client(project='PROJECT_ID', location='LOCATION')
instance_name = 'projects/PROJECT_ID/locations/LOCATION/reasoningEngines/INSTANCE_ID'

templates_response = client.sandboxes.templates.list(name=instance_name)

for template in templates_response.sandbox_environment_templates:
    print(template.name)

Substitua:

  • PROJECT_ID: o ID do projeto do Cloud de Confiance .
  • LOCATION: A Cloud de Confiance região da instância da Agent Platform. Consulte Regiões compatíveis.
  • INSTANCE_ID: o ID da instância da Agent Platform.

Conferir detalhes do modelo

Para conferir a configuração de um modelo de sandbox específico:

template_name = 'projects/PROJECT_ID/locations/LOCATION/reasoningEngines/INSTANCE_ID/SandboxEnvironmentTemplate/TEMPLATE_ID'

template = client.sandboxes.templates.get(name=template_name)
print(template)

Substitua:

  • PROJECT_ID: o ID do projeto do Cloud de Confiance .
  • LOCATION: A Cloud de Confiance região da instância da Agent Platform. Consulte Regiões compatíveis.
  • INSTANCE_ID: o ID da instância da Agent Platform que contém o modelo de sandbox.
  • TEMPLATE_ID: o ID do modelo de sandbox.

Conferir o modelo de uma sandbox

Para conferir o modelo de sandbox associado a uma sandbox, execute o seguinte:

print(sandbox.sandbox_environment_template)

Excluir um modelo

Para excluir um modelo de sandbox:

client.sandboxes.templates.delete(name=template_name)
print("Template deleted.")