AI AGENT SKILLS

cloud-api-resource

一个面向 Data & APIs 场景的 Agent 技能。原始说明:UCloud 云资源创建技能。当用户需要在 UCloud 平台创建云资源时,Agent 自动调用 UCloud 官方 API 完成资源创建。 适用场景包括:创建云主机(UHost)、创建 API Key、创建存储桶(UFile)、创建数据库(UDDB)、创建 VPC 等 UCloud 平台资源的操作。 支持 UC...

SKILL.md

skill.md


name: ucloud-resource-creator
version: 2.0.0
description: |
UCloud 云资源创建技能。当用户需要在 UCloud 平台创建云资源时,Agent 自动调用 UCloud 官方 API 完成资源创建。
适用场景包括:创建云主机(UHost)、创建 API Key、创建存储桶(UFile)、创建数据库(UDDB)、创建 VPC 等 UCloud 平台资源的操作。
支持 UCloud 特有签名认证(SHA1),所有参数要求实时参考 UCloud 官方 API 文档。
license: MIT
compatibility:
runtime: "支持 HTTP 请求的 AI Agent 环境"
dependencies:

  • "http.client"
  • "hashlib"
  • "urllib.parse"
  • "base64"
  • "json"

parameters:

  • name: api_endpoint

type: string
required: true
description: "UCloud API 的完整请求 URL。示例:https://api.ucloud.cn/?Action=CreateUHostInstance"

  • name: public_key

type: string
required: true
description: "UCloud 账号的公钥(PublicKey),用于身份识别和签名计算。"

  • name: private_key

type: string
required: true
description: "UCloud 账号的私钥(PrivateKey),用于签名生成。该值需保密,不在日志中明文输出。"

  • name: api_params

type: object
required: true
description: "API 请求的业务参数(键值对)。"
output:
type: object
properties:
success: "布尔值,表示 API 调用是否成功"
status_code: "HTTP 响应状态码"
response_data: "API 返回的原始响应内容(JSON 或文本)"
resource_id: "若响应中包含资源 ID(如 UHostId、KeyId),自动提取并返回"
error_message: "失败时的错误描述"


UCloud 云资源创建器

技能概述

本技能专用于 UCloud 平台,使 AI Agent 能够根据用户的自然语言描述,自动构造并执行 UCloud API 请求完成资源创建。所有签名算法、参数要求均实时参考 UCloud 官方 API 文档。

核心特性:

  • 专精 UCloud 平台 API
  • 实时参考 UCloud 官方文档获取最新参数要求
  • 引导式交互配置,必填参数强制填写
  • 创建前信息确认,支持自定义参数
  • UCloud 特有 SHA1 签名算法

适用场景

| 场景 | 说明 |
|------|------|
| 创建云主机 | 在 UCloud 创建 UHost 实例 |
| 创建 API Key | 在 UCloud ModelVerse 创建推理 API 密钥 |
| 创建存储桶 | 在 UCloud UFile 创建存储空间 |
| 创建数据库 | 在 UCloud UDDB 创建数据库实例 |
| 创建 VPC | 在 UCloud 创建私有网络 |

核心工作流

用户表达创建意图
→ Agent 识别资源类型(云主机/API Key/存储桶等)
→ 判断用户输入模式(自然语言模式 / 交互式模式)
→ 自然语言模式:解析用户描述,自动映射到 API 参数
→ 交互式模式:引导用户逐步填写各项参数
→ 汇总配置信息,等待用户确认
→ 生成 UCloud SHA1 签名并构造 HTTP 请求
→ 发送请求
→ 解析响应
→ 提取资源ID(如有)
→ 返回结果给用户

交互模式选择

当用户表达创建意图时,Agent 应首先判断用户输入模式:

模式一:自然语言模式(快速创建)

用户通过自然语言一次性描述创建需求,Agent 自动解析并映射到 API 参数。

触发示例:

  • "在乌兰察布创建一台快杰O型云主机,1核2G,40G RSSD盘,Ubuntu 20.04,1M带宽"
  • "帮我创建个 API Key,名字叫 test-key,项目 org-d1kjc2"
  • "创建一台 Windows 云主机,4核8G,上海地域,按月付费"

处理流程:

  1. Agent 解析用户自然语言描述
  2. 提取关键信息(地域、配置、镜像等)
  3. 自动映射到 UCloud API 参数
  4. 展示解析后的配置清单
  5. 用户确认后直接创建

参数映射规则:

| 用户描述 | API 参数 | 示例 |
|---------|---------|------|
| 地域/区域 | Region | "乌兰察布" → cn-wlcb |
| 可用区 | Zone | "可用区A" → cn-wlcb-01 |
| 机型 | MachineType + UHostFamily | "快杰O型" → O + o1i |
| CPU | CPU | "1核" → 1 |
| 内存 | Memory | "2G" → 2048 |
| 磁盘大小 | Disks.N.Size | "40G" → 40 |
| 磁盘类型 | Disks.N.Type | "SSD" → CLOUD_SSD |
| 镜像 | ImageId | "Ubuntu 20.04" → uimage-txo15p |
| 带宽 | NetworkInterface.N.EIP.Bandwidth | "1M" → 1 |
| 计费方式 | ChargeType | "按时" → Dynamic |
| 名称 | Name | "test-host" → test-host |

缺失参数处理:

  • 对于用户未提及的参数,使用默认值
  • 必填参数缺失时,提示用户补充
  • 提供参数补全建议

模式二:交互式模式(分步配置)

用户未提供完整配置或需要逐步确认时,Agent 引导用户逐步填写各项参数。

触发示例:

  • "创建云主机"
  • "帮我创建一台服务器"
  • "我要创建 UHost"

处理流程:

  1. Agent 识别创建意图
  2. 通过 AskUserQuestion 逐步引导用户选择/填写参数
  3. 每步提供可选值列表
  4. 汇总配置信息,等待用户确认
  5. 用户确认后创建

交互式配置引导

通用必填参数

所有 UCloud API 请求均需包含:

  • Action:API 操作名称,如 CreateUHostInstance
  • PublicKey:用户公钥
  • ProjectId:项目 ID
  • Timestamp:Unix 时间戳(秒)
  • Signature:签名

云主机(UHost)配置引导

步骤1:基础配置(必填参数)

通过 AskUserQuestion 依次询问:

  1. Region(地域):如 cn-wlcb、cn-sh2、cn-bj2 等
  • 必填,参见 UCloud 地域列表
  1. Zone(可用区):如 cn-wlcb-01、cn-sh2-01 等
  • 必填,根据 Region 自动列出
  1. ImageId(镜像ID):如 uimage-txo15p
  • 必填,需先查询可用镜像列表
  1. CPU:1、2、4、8 等
  • 必填
  1. Memory:1024、2048、4096、8192 等(单位 MB)
  • 必填
  1. Disks.N.Size:20、40、100 等(单位 GB)
  • 必填
  1. Disks.N.Type:CLOUDSSD、CLOUDRSSD、CLOUD_NORMAL 等
  • 必填,需根据机型选择支持的磁盘类型
  1. Disks.N.IsBoot:True(系统盘)或 False(数据盘)
  • 必填
  1. LoginMode:Password 或 KeyPair
  • 必填
  1. Password:登录密码(LoginMode=Password 时必填)
  • 需 Base64 编码

步骤2:机型选择(必填)

通过 AskUserQuestion 询问机型:

  • 快杰O型(MachineType=O):高性能计算型
  • o1i:Intel平台
  • o1a:AMD平台
  • o1r:ARM平台
  • 快杰共享型(N型):性价比型
  • 通用型:标准计算型

注意:不同机型支持的磁盘类型不同,需根据机型自动过滤可选磁盘类型。

步骤3:网络配置(必填)

  • NetworkInterface.N.EIP.Bandwidth:带宽大小(Mbps)
  • NetworkInterface.N.EIP.PayMode:Bandwidth(带宽计费)或 Traffic(流量计费)
  • NetworkInterface.N.EIP.OperatorName:Bgp、Telecom、Unicom、Mobile

步骤4:计费方式(必填)

  • ChargeType:Dynamic(按时)、Month(按月)、Year(按年)
  • Quantity:购买时长(ChargeType=Month/Year 时必填)

步骤5:镜像选择

通过 AskUserQuestion 询问镜像:

  • 操作系统类型:Linux、Windows
  • 具体镜像:根据地域和机型动态查询可用镜像列表
  • Ubuntu 20.04/22.04
  • CentOS 7.x/8.x
  • Debian、Fedora等

API Key 配置引导

必填参数

  1. Action:CreateUMInferAPIKey
  2. PublicKey:用户公钥
  3. ProjectId:项目 ID
  4. Name:API Key 名称
  5. Timestamp:Unix 时间戳

可选参数

  • IPWhitelist:访问白名单 IP
  • DailyLimitAmount:每日限额
  • MonthlyLimitAmount:每月限额
  • ExpireTime:过期时间

存储桶(UFile)配置引导

必填参数

  1. Action:CreateBucket
  2. PublicKey:用户公钥
  3. ProjectId:项目 ID
  4. BucketName:存储桶名称
  5. Region:地域
  6. Timestamp:Unix 时间戳

可选参数

  • Type:公有或私有
  • Domain:自定义域名

信息确认(通用)

在最终创建前,必须通过 AskUserQuestion 向用户展示完整的配置清单,等待用户确认:

请确认以下配置信息:
- 资源类型:UHost 云主机
- 地域:cn-wlcb
- 可用区:cn-wlcb-01
- 机型:快杰O型 (o1i)
- CPU:1核
- 内存:2GB
- 系统盘:20GB (CLOUD_RSSD)
- 镜像:Ubuntu 20.04
- 带宽:1Mbps (BGP)
- 计费方式:按时付费
- 登录方式:密码

是否确认创建?[确认/取消]

自定义参数支持
在信息确认步骤中,Agent 应询问用户是否需要添加其他参数:

  • "是否需要添加其他参数?(如安全组、标签、VPC等)"
  • 用户可输入自定义参数键值对
  • Agent 将自定义参数合并到最终请求中

用户确认后,再执行实际的 API 调用。用户取消则终止流程。

参数详解

api_endpoint

UCloud API 的完整 URL。格式:https://api.ucloud.cn/?Action=xxx

示例:

  • https://api.ucloud.cn/?Action=CreateUHostInstance
  • https://api.ucloud.cn/?Action=CreateUMInferAPIKey
  • https://api.ucloud.cn/?Action=CreateBucket

publickey 和 privatekey

  • public_key:UCloud 公钥,在控制台 API 密钥管理页面获取
  • privatekey:UCloud 私钥,用于签名计算。Agent 必须承诺不在日志、对话记录或任何持久化存储中明文保存 privatekey

api_params

UCloud API 请求的业务参数。Agent 应提示用户提供 API 文档中标为"必填"的参数。

输出处理

成功时,Skill 返回完整响应体,并尝试从常见字段中提取资源 ID:

  • UHostId / KeyId / BucketId / ResourceId
  • data.UHostId / data.KeyId(嵌套结构)

若提取成功,在返回信息中高亮显示,并提示用户妥善保存该资源 ID。

失败时,返回 HTTP 状态码和错误信息。常见错误包括:

  • 签名错误(RetCode: 171)
  • 参数缺失(RetCode: 230)
  • 资源不存在(RetCode: 8215)
  • 权限不足
  • 资源配额不足

安全与隐私

  • 私钥不落盘:Skill 运行时将 private_key 存储在内存变量中,调用结束后自动释放
  • 请求日志脱敏:打印请求详情时,将 private_key 替换为 REDACTED
  • 传输加密:强制使用 HTTPS 端点
  • 最小权限原则:建议用户为创建操作使用仅包含必要权限的子账号密钥

典型触发语示例

用户可以说:

  • "在 UCloud 创建一台云主机"
  • "帮我创建 UCloud API Key"
  • "创建 UCloud 存储桶"
  • "调用 UCloud API 创建资源"

Agent 识别到用户意图为"在 UCloud 创建资源"时,即可调用本 Skill。