Gestire gli snapshot

Gli snapshot della sandbox in Gemini Enterprise Agent Platform ti consentono di salvare lo stato attuale di una sandbox e ripristinarlo in un secondo momento. Questo approccio è utile per le attività di gestione del ciclo di vita, ad esempio il ripristino di uno stato valido noto o l'esplorazione di rami di variazione.

Gli snapshot offrono diversi vantaggi per la gestione dei flussi di lavoro degli agenti:

  • Persistenza dello stato: salva lo stato esatto della sandbox, incluse le librerie installate, le modifiche al file system e lo stato della memoria.
  • Efficienza: anziché ricreare un ambiente complesso da zero, puoi ripristinarlo da uno snapshot in pochi secondi.
  • Creazione di checkpoint: crea checkpoint durante un'attività dell'agente a lunga esecuzione per consentire il ripristino in caso di problemi.
  • Ramificazione: crea più sandbox dallo stesso snapshot per esplorare percorsi diversi o testare variazioni.

Limitazioni

Non puoi ripristinare uno snapshot della sandbox in un nuovo ambiente sandbox se si verifica una delle seguenti condizioni:

  • La nuova sandbox utilizza un'architettura server diversa (ad esempio, amd64 rispetto a arm64).
  • La nuova sandbox utilizza una versione di runtime della sandbox diversa (ad esempio, dopo un upgrade del cluster GKE).
  • La nuova sandbox utilizza un URI dell'immagine container diverso.

Crea uno snapshot

Per creare uno snapshot di una sandbox, utilizza l'SDK Python:

import vertexai

client = vertexai.Client(project='PROJECT_ID', location='LOCATION')
sandbox_name = 'projects/PROJECT_ID/locations/LOCATION/reasoningEngines/INSTANCE_ID/sandboxEnvironments/SANDBOX_ID'

snapshot_operation = client.agent_engines.sandboxes.snapshots.create(
    source_sandbox_environment_name=sandbox_name,
    config={
        "display_name": "DISPLAY_NAME",
        "ttl": "3600s",
    }
)
print(f"Snapshot creation initiated: {snapshot_operation.name}")

Sostituisci quanto segue:

  • PROJECT_ID: l' Google Cloud ID progetto.
  • LOCATION: La Google Cloud regione della risorsa. Vedi Regioni supportate.
  • INSTANCE_ID: l'ID istanza di Agent Platform.
  • SANDBOX_ID: l'ID sandbox esistente per cui creare uno snapshot.
  • DISPLAY_NAME: un nome visualizzato descrittivo per lo snapshot.

Esegui il ripristino da uno snapshot

Puoi ripristinare lo stato di una sandbox facendo riferimento a uno snapshot salvato durante la creazione di un nuovo ambiente sandbox:

agent_instance_name = 'projects/PROJECT_ID/locations/LOCATION/reasoningEngines/INSTANCE_ID
snapshot_name = 'projects/PROJECT_ID/locations/LOCATION/reasoningEngines/INSTANCE_ID/sandboxEnvironments/SANDBOX_ID'

# Restore from a snapshot
new_sandbox_operation = client.agent_engines.sandboxes.create(
    name=agent_instance_name,
    config={
        "display_name": "restored-sandbox",
        "sandbox_environment_snapshot": snapshot_name,
    }
)

Elenca gli snapshot

Per elencare tutti gli snapshot della sandbox associati a un'istanza di Agent Platform:

snapshots_response = client.agent_engines.sandboxes.snapshots.list(name=agent_instance_name)

for snapshot in snapshots_response.sandbox_environment_snapshots:
    print(snapshot.name)

Visualizza i dettagli dello snapshot

Per visualizzare la configurazione di uno snapshot della sandbox specifico:

snapshot = client.agent_engines.sandboxes.snapshots.get(name=snapshot_name)
print(snapshot)

Elimina uno snapshot

Per eliminare esplicitamente uno snapshot della sandbox quando non è più necessario:

client.agent_engines.sandboxes.snapshots.delete(name=snapshot_name)
print("Snapshot deleted.")