借助 Gemini Enterprise Agent Platform 中的沙盒快照,您可以保存沙盒的当前状态,并在日后恢复该状态。这对于生命周期管理任务(例如恢复已知良好状态或探索变体分支)非常有用。
快照在管理智能体工作流方面具有以下优势:
- 状态持久性:保存沙盒的确切状态,包括 已安装的库、文件系统更改和内存状态。
- 效率:您可以从快照中恢复复杂环境,而无需从头开始重新创建, 只需几秒钟即可完成。
- 检查点:在长时间运行的智能体任务期间创建检查点,以便在出现问题时 进行恢复。
- 分支:从同一快照创建多个沙盒,以探索 不同的路径或测试变体。
限制
如果满足以下任一条件,您将无法将沙盒快照恢复到新的沙盒环境:
- 新沙盒使用不同的服务器架构(例如
amd64与arm64)。 - 新沙盒使用不同的沙盒运行时版本(例如,在 GKE 集群升级后)。
- 新沙盒使用不同的容器映像 URI。
创建快照
如需创建沙盒的快照,请使用 Python SDK:
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}")
替换以下内容:
PROJECT_ID:您的 Google Cloud 项目 ID。LOCATION:您的资源的区域。 Google Cloud 请参阅支持的区域。INSTANCE_ID:Agent Platform 实例 ID。SANDBOX_ID:要为其创建快照的现有沙盒 ID。DISPLAY_NAME:快照的描述性显示名称。
使用快照进行恢复
您可以在创建新的沙盒环境时引用已保存的快照,以恢复沙盒状态:
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,
}
)
列出快照
如需列出与 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)
查看快照详细信息
如需查看特定沙盒快照的配置,请执行以下操作:
snapshot = client.agent_engines.sandboxes.snapshots.get(name=snapshot_name)
print(snapshot)
删除快照
如需在不再需要沙盒快照时显式删除它们,请执行以下操作:
client.agent_engines.sandboxes.snapshots.delete(name=snapshot_name)
print("Snapshot deleted.")