Creating an Enterprise-developed Skill
Function
This API is used to create an enterprise-developed skill and upload the skill package.
Debugging
You can debug this API through automatic authentication in API Explorer or use the SDK sample code generated by API Explorer.
Authorization Information
Each account has all the permissions required to call all APIs, but IAM users must be assigned the required permissions.
- If you are using role/policy-based authorization, see Permissions Policies and Supported Actions for details on the required permissions.
- If you are using identity policy-based authorization, the following identity policy-based permissions are required.
Action
Access Level
Resource Type (*: required)
Condition Key
Alias
Dependencies
workspace:skill:create
Write
-
-
-
-
URI
POST /v3/ai-agents/skills
Request Parameters
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| X-Language | No | String | Language, which is used for internationalization. |
| X-Client-Token | No | String | Idempotency key, in UUID format. Creation APIs carry this request header, and the server implements idempotence control based on this header. The response header returns the same value. |
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| slug | Yes | String | Skill slug, which cannot be changed after being created. |
| display_name | Yes | String | Skill name. |
| alias_name | No | String | Alias (name that can be changed on the service page). |
| description | No | String | Skill description. |
| category | Yes | String | Skill category. |
| tags | No | Array of strings | Skill tag. |
| cover | No | String | Base64-encoded cover image. |
| source | No | String | Skill source. The default value is CUSTOM. |
| support_os_types | No | Array of strings | List of supported OS types. |
| packages | No | Array of CreateSkillPackage objects | Skill package information list. |
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| version | Yes | String | Version. |
| package_name | Yes | String | Name of the skill package file (the same as the value of packageName in getUploadUrls). The server constructs the OBS path based on the value. |
| package_hash | Yes | String | SHA-256 hash value of the skill package (calculated before the frontend uploads the package). |
| package_size | Yes | Long | Skill package size, in bytes. The maximum value is 104857600. |
| regions | Yes | Array of PackageRegionWithStatusInfo objects | OBS storage region information (including the upload status). |
Response Parameters
Status code: 201
| Parameter | Type | Description |
|---|---|---|
| X-Request-Id | String | - |
| Parameter | Type | Description |
|---|---|---|
| id | String | Skill ID. |
| slug | String | Skill slug. |
| display_name | String | Skill name. |
| alias_name | String | Alias. |
| description | String | Skill description. |
| category | String | Skill category. |
| tags | Array of strings | Skill tag. |
| owner_type | String | Skill owner type. |
| visibility_scope | String | Visibility scope. |
| visible_domain_ids | Array of strings | IDs of tenants in the visibility scope. This parameter is returned only when visibility_scope is set to SPECIFIC_TENANTS. |
| status | String | Skill status. |
| current_package_id | String | ID of the skill package that is currently in effect. |
| cover | String | Base64-encoded skill cover image. |
| source | String | Skill source. |
| support_os_types | Array of strings | List of supported OS types. |
| packages | Array of SkillPackageSummary objects | Skill package summary list. |
| create_time | String | Creation time (UTC time in ISO 8601 format). |
| update_time | String | Update time (UTC time in ISO 8601 format). |
| attach_instance_number | Integer | Number of bound instances. |
| Parameter | Type | Description |
|---|---|---|
| id | String | Skill package ID. |
| version | String | Version. |
| revision | Integer | Version revision number. |
| package_status | String | Skill package status. |
| regions | Array of strings | Deployed region IDs. |
Status code: 400
| Parameter | Type | Description |
|---|---|---|
| X-Request-Id | String | - |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Error code, which is returned upon failure. |
| error_msg | String | Error message. |
Status code: 401
| Parameter | Type | Description |
|---|---|---|
| X-Request-Id | String | - |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Error code, which is returned upon failure. |
| error_msg | String | Error message. |
Status code: 403
| Parameter | Type | Description |
|---|---|---|
| X-Request-Id | String | - |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Error code, which is returned upon failure. |
| error_msg | String | Error message. |
Status code: 500
| Parameter | Type | Description |
|---|---|---|
| X-Request-Id | String | - |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Error code, which is returned upon failure. |
| error_msg | String | Error message. |
Example Requests
/v3/ai-agents/skills
{
"slug" : "internal-doc-helper",
"display_name" : "Doc Helper",
"alias_name" : "Doc Helper",
"description" : "Enterprise internal document processing skill",
"category" : "DOC_KNOWLEDGE",
"tags" : [ "document", "knowledge" ],
"cover" : "data:image/png;base64,iVBOR...",
"source" : "CUSTOM",
"support_os_types" : [ "Windows", "Linux" ],
"packages" : [ {
"version" : "1.0.0",
"package_name" : "internal-doc-helper-1.0.0.zip",
"package_hash" : "sha256-abc123...",
"package_size" : 52428800,
"regions" : [ {
"region" : "cn-north-7",
"upload_status" : "UPLOADED"
} ]
} ]
} Example Responses
Status code: 201
{
"id" : "skill-uuid-002",
"slug" : "internal-doc-helper",
"display_name" : "Doc Helper",
"alias_name" : "Doc Helper",
"description" : "Enterprise internal document processing skill",
"category" : "DOC_KNOWLEDGE",
"tags" : [ "document", "knowledge" ],
"owner_type" : "TENANT",
"visibility_scope" : "OWNER_ONLY",
"status" : "ACTIVE",
"current_package_id" : "pkg-uuid-010",
"cover" : "data:image/png;base64,iVBOR...",
"source" : "CUSTOM",
"support_os_types" : [ "Windows", "Linux" ],
"packages" : [ {
"id" : "pkg-uuid-010",
"version" : "1.0.0",
"revision" : 1,
"package_status" : "PUBLISHED",
"regions" : [ "cn-north-7" ]
} ],
"create_time" : "2026-05-13T08:00:00Z",
"update_time" : "2026-05-13T08:00:00Z",
"attach_instance_number" : 0
} Status Codes
| Status Code | Description |
|---|---|
| 201 | Created |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 500 | Internal Server Error |
Error Codes
See Error Codes.
What is your overall rating for this page?
Thank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot