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,
amd64rispetto aarm64). - 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.")