借助 Agent Registry,您可以打包并手动注册独立技能。独立技能将智能体指令与关联的元数据资源和可选脚本捆绑在一起,以扩展智能体的推理和工作流。通过在 Agent Registry 中注册您自己的独立技能,您可以集中管理、版本控制和共享可重用功能,以及在设置 Agent Registry 时可用的 Google 管理的技能。
准备工作
- 设置 Agent Registry。
如需使用本文档中的 Google Cloud CLI 命令,请设置 gcloud CLI 环境。
所需的角色
如需获得在 Agent Registry 中注册技能所需的权限,请让管理员向您授予已启用 Agent Registry 的治理项目的以下 IAM 角色:
-
注册和管理独立技能:Agent Registry User (
roles/agentregistry.user) -
注册和管理独立技能及其他 Agent Registry 资源:
Agent Registry API Editor (
roles/agentregistry.editor)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
其他 Agent Registry 角色可能还包含注册和管理技能及技能修订版本所需的权限。如需了解详情,请参阅 Agent Registry 角色和权限。
提取载荷限制
如需注册技能,您必须将技能的源文件打包到 ZIP 归档文件中。归档文件的根目录中必须包含 SKILL.md 指令文件。在技能注册流程的提取阶段,Agent Registry 会验证载荷是否符合以下限制:
- ZIP 归档文件大小:压缩后的归档文件大小上限为 500 KB。
- 未压缩载荷总大小:未压缩大小上限为 10 MB。
- 单个文件大小:每个文件的未压缩大小上限为 1 MB。
- 深度嵌套:目录嵌套深度上限为 8 层。
- 规范合规性:
SKILL.md文件必须包含有效的 YAML 前置元数据部分,其中定义了智能体技能规范中定义的名称、说明和元数据。
注册技能
您可以在 Agent Registry 中手动注册自己的技能。如需了解技能的价格和功能费用,请参阅 Agent Registry 价格。
如需注册您的技能,请执行以下操作:
控制台
在 Google Cloud 控制台中,前往智能体注册表页面:
从项目选择器中,选择您的 Google Cloud 项目。
选择技能标签页。
在技能标签页中,添加技能按钮会显示两个选项,分别用于创建技能容器和导入初始技能包。请从下列做法中选择一种:
- 添加技能:在注册表中创建新的技能容器。您可以选择上传技能包来创建第一个修订版本。
- 导入技能:上传包含
SKILL.md指令文件和可选脚本的 ZIP 压缩包,以注册新的自定义技能包。
在创建技能或导入技能面板中,指定以下详细信息:
- 显示名称:输入技能的人性化名称。
- 说明:输入简要说明,解释技能功能。
- 位置:选择地理区域,例如
global、us或eu。
在载荷来源部分中,选择以下选项之一:
- 文件:拖动打包的技能 ZIP 文件,或浏览本地目录。
存储桶:输入存储在 Cloud Storage 存储桶中的 ZIP 归档文件的路径,格式为
gs://BUCKET_NAME/SKILL_PACKAGE.zip。
点击创建。
您的技能是在已停用 (
DISABLED) 状态下创建的。对于所有后续技能操作,请将您的技能称为private-SKILL_ID,如Google Cloud 控制台中所示。如需使技能可供代理发现,请设置其默认修订版本,并将目标状态更新为活跃。如需查看相关说明,请参阅管理技能生命周期状态。
gcloud
使用
gcloud alpha agent-registry skills create命令创建技能容器并上传其初始修订版本载荷。您可以上传本地 ZIP 文件,也可以导入存储在 Cloud Storage 中的软件包:上传本地 ZIP 文件:如需使用本地 ZIP 载荷注册技能,请执行以下操作:
gcloud alpha agent-registry skills create SKILL_ID \ --project=PROJECT_ID \ --location=LOCATION \ --display-name="DISPLAY_NAME" \ --description="DESCRIPTION" \ --target-state=disabled \ --payload="LOCAL_ZIP_PATH"将
LOCAL_ZIP_PATH替换为本地机器上打包的技能归档文件的路径,例如./workspace-docs-skill.zip。从 Cloud Storage 存储桶导入:使用托管在 Cloud Storage 存储桶中的 ZIP 归档文件注册技能:
gcloud alpha agent-registry skills create SKILL_ID \ --project=PROJECT_ID \ --location=LOCATION \ --display-name="DISPLAY_NAME" \ --description="DESCRIPTION" \ --target-state=disabled \ --gcs-source-uri="gs://BUCKET_NAME/SKILL_PACKAGE.zip"替换以下内容:
BUCKET_NAME:包含 ZIP 软件包的 Cloud Storage 存储桶名称。SKILL_PACKAGE:包含技能载荷的技能包的名称。
在任一命令中替换以下内容:
SKILL_ID:技能的资源 ID,例如workspace-docs-skill。创建后,注册表会自动在前面添加private-前缀。您必须在所有后续技能命令中使用带前缀的 ID,例如private-workspace-docs-skill。PROJECT_ID:项目 ID。LOCATION:地理区域,例如global、us或eu。DISPLAY_NAME:技能的人性化名称。DESCRIPTION:简要说明技能功能。
新创建的技能最初处于已停用 (
DISABLED) 状态。如需使技能可供代理发现,请设置其默认修订版本,并将目标状态更新为活跃。如需查看相关说明,请参阅管理技能生命周期状态。
REST
创建技能容器,并以内嵌方式指定初始修订版本:
HTTP 方法和网址
POST https://agentregistry.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/skills?skillId=SKILL_ID替换以下内容:
PROJECT_ID:项目 ID。LOCATION:注册表位置。SKILL_ID:技能容器的唯一标识符。
请求 JSON 正文(本地文件上传)
如需通过直接上传本地 ZIP 归档文件字节来创建技能,请使用
archiveUploadSource载荷。在创建期间,必须将targetState设置为TARGET_STATE_DISABLED:{ "displayName": "DISPLAY_NAME", "description": "DESCRIPTION", "type": "SIMPLE", "targetState": "TARGET_STATE_DISABLED", "initialRevision": { "archiveUploadSource": { "archiveContent": "BASE64_ZIP_BYTES" } } }替换以下内容:
DISPLAY_NAME:技能的人性化名称。DESCRIPTION:简要说明技能功能。BASE64_ZIP_BYTES:本地 ZIP 归档文件的 base64 编码字符串表示。
请求 JSON 正文(从 Cloud Storage 导入)
或者,如需使用存储在 Cloud Storage 存储桶中的归档创建技能,请使用
gcsSource:{ "displayName": "DISPLAY_NAME", "description": "DESCRIPTION", "type": "SIMPLE", "targetState": "TARGET_STATE_DISABLED", "initialRevision": { "gcsSource": { "uri": "gs://BUCKET_NAME/SKILL_PACKAGE.zip" } } }替换以下内容:
DISPLAY_NAME:技能的人性化名称。DESCRIPTION:简要说明技能功能。BUCKET_NAME:包含 ZIP 软件包的 Cloud Storage 存储桶名称。SKILL_PACKAGE:包含技能载荷的技能包的名称。
curl命令(本地文件上传)curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "displayName": "DISPLAY_NAME", "description": "DESCRIPTION", "type": "SIMPLE", "targetState": "TARGET_STATE_DISABLED", "initialRevision": { "archiveUploadSource": { "archiveContent": "'"$(base64 -w0 local_skill.zip)"'" } } }' \ "https://agentregistry.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/skills?skillId=SKILL_ID"替换以下内容:
DISPLAY_NAME:技能的人性化名称。DESCRIPTION:简要说明技能功能。PROJECT_ID:项目 ID。LOCATION:注册表位置。SKILL_ID:技能容器的唯一标识符。
对于 Cloud Storage 存储桶文件上传,请将请求 JSON 正文替换为相应的字段和值。
新创建的技能最初处于已停用 (
DISABLED) 状态。如需使技能可供代理发现,请设置其默认修订版本,并将目标状态更新为活跃。如需查看相关说明,请参阅管理技能生命周期状态。
您或其他用户创建的 skill 会自动分配给默认的 private 发布商,以避免与 Google 管理的 skill 发生名称冲突。因此,特定技能的已发布 ID 会变为 private-SKILL_ID。您无法在创建技能期间指定自定义发布者。
例如,如果您创建 ID 为 workspace-tools 的技能,则资源名称将创建为 projects/PROJECT_NUMBER/locations/LOCATION/skills/private-workspace-tools。技能标识符分配为 urn:skill:projects-PROJECT_NUMBER:locations:LOCATION:private-workspace-tools。对于所有后续技能操作,您必须使用 private-workspace-tools 发布的 ID。
后续步骤
- 了解如何管理已注册的技能。
- 了解如何添加和管理技能修订版本。
- 查看经过验证的发布商详细信息。