关于 agent-platform-model-registry
用于管理 Agent Platform Model Registry 中模型的流程技能,涵盖查找、查看、上传、更新元数据和删除,并为修改及破坏性操作设置确认步骤。
主要功能
- 01列出并查看注册表模型
- 02上传模型和版本
- 03更新模型元数据
- 04删除模型及其版本
- 05搜索 Publisher Models
适用场景
- 01在注册表中查找模型
- 02注册自定义模型或版本
- 03修改模型元数据
- 04删除模型及其版本
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ google/ skills --skill agent-platform-model-registry安装后在 Claude Code 中输入/agent-platform-model-registry确认已加载。
详细介绍
Agent Platform Model Registry 管理
概述
本技能提供在 Agent Platform Model Registry 中管理机器学习模型的说明。内容涵盖列出模型、查看模型详情、上传新模型或新版本、更新元数据以及删除模型。
安全与确认级别(重要)
在代表用户执行任何命令之前,您 MUST 遵循以下基于所请求操作的安全级别:
- 级别 R:只读(
list、describe、get)- 无需确认。立即执行以收集信息。
- 级别 M:可变更且可恢复(
upload、update)- 需要通过交互方式确认,并提供“Yes”/“No”选项。确认提示 MUST 包含准确、完整的命令字符串及所有必需标志(例如
--region=us-central1、--project=...、--display-name="...")——仅用自然语言转述并不足够。 - 同轮限制:绝 NEVER 在收到请求或显示确认提示的同一轮执行命令!在第 1 轮,您 MUST 仅显示包含准确、完整命令字符串的交互式确认卡片。然后停止并等待用户回复;只有在后续轮次获得明确的“Yes”/批准后,才能执行。在第 1 轮未经事先确认就执行
upload或update是严格禁止的。 - 流程中途更改参数/拒绝:如果用户拒绝提示或更改任何参数(例如显示名称、描述、父模型),不要执行旧命令。立即调整,并显示包含更新后准确命令字符串的新确认提示,然后等待批准。
- 需要通过交互方式确认,并提供“Yes”/“No”选项。确认提示 MUST 包含准确、完整的命令字符串及所有必需标志(例如
- 级别 D:破坏性且不可逆(
delete)- 需要用户明确输入确认内容(例如“I confirm”或“Yes, delete it”)。立即请求确认——在任何预检之前(不要先检查模型是否已部署到端点)。
- 同轮限制:绝 NEVER 在请求用户输入确认的同一轮执行命令。等待用户在新一轮回复。
- 流程中途更改目标:如果用户改变主意(例如,“改为删除第二个模型”),不要删除第一个模型。针对新选择的模型 ID,重新提示用户输入确认内容,并等待批准。
- 成本估算:Model Registry 操作管理目录元数据和存储的模型制品,不会配置服务计算资源或端点。对于 Model Registry 操作,勿调用
estimate_cost工具,因为estimate_cost专用于服务基础设施(端点/批量预测),用于注册表操作时会返回错误。如果在预览卡片中包含成本信息,请说明 Model Registry 操作不产生服务计算费用(计算费用为 $0.00;模型制品适用标准 Cloud Storage 定价)。
阶段 0:环境设置与参数解析
重要:运行任何命令前,请确认所有必要参数均已明确:
- 缺少区域或项目:遵循基础环境信息确认策略:如果先前轮次已设置会话位置或项目,请直接沿用,无需再次询问。如果提示和会话上下文中都没有,则最多允许进行一次直接查询(例如
gcloud config get project或gcloud config get compute/region)。如果仍无法确定或存在歧义,请暂停,并在执行任何会修改状态或针对特定资源的命令前,明确询问用户缺少的参数。 - 缺少模型 ID:如果用户要求更新或描述模型,却未提供模型 ID,请暂停并询问用户提供模型 ID,或者主动提出先列出模型以帮助他们查找。
- 占位符替换:如果用户要求的显示名称包含占位符标记(例如
<unique-suffix>、[suffix]或<timestamp>),请生成简短的唯一字母数字字符串或时间戳,并妥善替换。绝不要将未展开的字面占位符标记传递给 API。 - 区域和项目标志:所有
gcloud ai models命令都必须显式传递--region=$LOCATION_ID和--project=$PROJECT_ID。不要使用global。
1. 列出模型(R 级)
使用此命令发现注册表中的现有模型并获取其数字 ID。无需确认。
始终传递 --limit。一个项目可能包含数千个模型,不限数量的列表会遍历所有分页,耗时可能超过一分钟,并返回数百 KB 的输出。结果按最近更新时间从新到旧排列,因此 --limit=50 可在几秒内返回最新模型。
gcloud ai models list \
--region=$LOCATION_ID \
--project=$PROJECT_ID \
--limit=50
-
用户要求列出“所有”模型时,仍保留
--limit=50,并说明回复展示的是最近更新的 50 个模型。不要遍历整个注册表(使用 gcloud 或Model.list()),除非用户要求统计数量或获取完整清单;可以主动提出按显示名称查找特定模型。 -
如果用户坚持并要求完整清单,请移除
--limit,并使用--format="value(name.basename(),displayName)"为每个模型打印一行简洁信息。提醒用户,在大型项目中这可能需要一分钟或更久。 -
如果用户询问模型数量,只统计 ID 数量,不打印列表。由于没有计数 API,这仍需遍历所有模型(每 1,500 个模型约需一分钟);请告知用户可能需要等待一段时间。不要先运行带
--limit的列表命令。gcloud ai models list \ --region=$LOCATION_ID \ --project=$PROJECT_ID \ --format="value(name)" | wc -l -
不要使用
--filter或--sort-by缩小列表范围。gcloud 会在获取完所有分页后于客户端进行筛选和排序,因此速度与不设限制的列表一样慢。 -
要按显示名称查找模型(例如确认上传或删除操作),请使用 Python SDK 在服务端筛选:
python3 - <<'PY'
from google.cloud import aiplatform
aiplatform.init(project='<PROJECT_ID>', location='<LOCATION_ID>')
for m in aiplatform.Model.list(filter='display_name="<DISPLAY_NAME>"'):
print(m.name, m.display_name, m.create_time)
PY
2. 描述模型(R 级)
获取特定模型或版本的完整元数据。无需确认。
gcloud ai models describe $MODEL_ID \
--region=$LOCATION_ID \
--project=$PROJECT_ID
要指定特定版本:
gcloud ai models describe ${MODEL_ID}@${VERSION_ID} \
--region=$LOCATION_ID \
--project=$PROJECT_ID
3. 上传模型(M 级)
注册新模型或现有模型的新版本。这是一项长时间运行的操作。继续操作前,必须通过内联确认卡片确认。
示例:上传自定义模型
gcloud ai models upload \
--region=$LOCATION_ID \
--project=$PROJECT_ID \
--display-name="<DISPLAY_NAME>" \
--container-image-uri="<CONTAINER_IMAGE_URI>" \
[--artifact-uri="<ARTIFACT_URI>"]
重要
这是一项 M 级操作——请参阅上方的[安全与确认级别]。
- 如果用户指定“无制品 URI”,请省略
--artifact-uri。- 如果要为现有模型注册新版本,请包含
--parent-model=$PARENT_MODEL_ID。- 将
<DISPLAY_NAME>替换为用户要求的确切名称。
4. 更新模型(Tier M)
更新显示名称或描述等元数据字段。请注意,gcloud ai models 没有 update 子命令。相反,模型元数据更新必须使用 Vertex AI Python SDK
(google.cloud.aiplatform.Model)执行。
此操作需要在继续之前显示一张包含确切脚本的内嵌确认卡片。
python3 -c "
from google.cloud import aiplatform
aiplatform.init(project='$PROJECT_ID', location='$LOCATION_ID')
model = aiplatform.Model('$MODEL_ID')
model.update(display_name='<NEW_DISPLAY_NAME>', description='<NEW_DESCRIPTION>')
print(f'Successfully updated model: {model.resource_name}')
"
重要
这是 Tier M 操作 — 请参阅上文的[安全与确认层级]。
- 如果只更新显示名称,请传入
model.update(display_name='<NEW_DISPLAY_NAME>')。- 如果只更新描述,请传入
model.update(description='<NEW_DESCRIPTION>')。- 确认卡片必须显示上方确切的 Python 命令片段。 绝不能在第 1 轮执行;请等待用户明确批准。
5. 删除模型(Tier D)
永久删除模型及其所有版本。此操作需要在继续之前获得用户明确输入的确认。
gcloud ai models delete $MODEL_ID \
--region=$LOCATION_ID \
--project=$PROJECT_ID
警告
此操作不可逆。删除前,必须从所有端点取消部署所有模型版本。
6. 搜索发布方模型(Tier R)
在生成交互式模型详情之前,必须先搜索 Model Garden Publisher Models,验证 model_id。此操作无需确认。
使用 gcloud ai CLI 搜索匹配的发布方模型。
gcloud ai model-garden models list --model-filter="<model_name_or_query>" --full-resource-name --format=json
这会返回匹配模型的列表。从结果中提取确切的 name 字段(例如 publishers/google/models/gemma2 或
publishers/qwen/models/qwen3-coder),将其用作经过验证的 model_id。