Skill: 892577738-bot/cloud-api-resource (version 1.0.1)

--- 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 地域列表 2. **Zone**（可用区）：如 cn-wlcb-01、cn-sh2-01 等 - 必填，根据 Region 自动列出 3. **ImageId**（镜像ID）：如 uimage-txo15p - 必填，需先查询可用镜像列表 4. **CPU**：1、2、4、8 等 - 必填 5. **Memory**：1024、2048、4096、8192 等（单位 MB） - 必填 6. **Disks.N.Size**：20、40、100 等（单位 GB） - 必填 7. **Disks.N.Type**：CLOUD_SSD、CLOUD_RSSD、CLOUD_NORMAL 等 - 必填，需根据机型选择支持的磁盘类型 8. **Disks.N.IsBoot**：True（系统盘）或 False（数据盘） - 必填 9. **LoginMode**：Password 或 KeyPair - 必填 10. **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` ### public_key 和 private_key - **public_key**：UCloud 公钥，在控制台 API 密钥管理页面获取 - **private_key**：UCloud 私钥，用于签名计算。**Agent 必须承诺不在日志、对话记录或任何持久化存储中明文保存 private_key** ### 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。


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)