用新的 Skill 内容完整替换一个已安装 Skill。该接口不是局部 patch:旧目录会先备份,新内容写入并校验成功后删除备份;若替换过程失败,服务端会尝试恢复原 Skill 和原隐私配置。
名称约束。请求路径中的 skill_name 必须与新 payload 解析出的 name 完全一致,否则返回 INVALID_ARGUMENT。新 payload 不包含的旧辅助文件不会保留。
URI |
|
|---|---|
请求方法 | PUT |
Content-Type |
|
认证 |
|
参数 | 位置 | 类型 | 必选 | 默认值 | 说明 |
|---|---|---|---|---|---|
| Path | string | 是 | — | 待更新的 Skill 名称,并且必须与新内容中的 name 一致。 |
| Body | string / object | 条件必选 | — | 新的原始 SKILL.md、结构化 Skill 对象或 MCP Tool 对象。与 temp_file_id 二选一。 |
| Body | string | 条件必选 | — | 已上传的新 SKILL.md/ZIP 临时文件 ID;若与 data 同时提供,当前实现以 temp_file_id 为准。 |
| Body | bool | 否 | false | 是否等待语义处理和索引完成。 |
| Body | float | 否 | null | 等待超时时间,单位为秒,仅 wait=true 时生效。 |
| Body | object | 否 | 自动生成 | 新的来源追踪元数据。 |
| Body | bool / object | 否 | false | true 或 |
| Body | string | 否 | null | 指定 Skill 根;不传时先查用户私有根,再查账户共享根。 |
字段 | 类型 | 说明 |
|---|---|---|
| string | 处理状态,成功为 |
| string | 固定为 |
| string | 更新后的 Skill 目录 URI。 |
| string | 与 root_uri 相同。 |
| string | Skill 名称。 |
| integer | 新版本辅助文件数量。 |
| string | wait=false 时返回的后台任务 ID。 |
| object | wait=true 时返回的 Semantic/Embedding 处理状态。 |
curl -X PUT "{BASE_URL}/api/v1/skills/search-web" \ -H "Authorization: Bearer {API_KEY}" \ -H "Content-Type: application/json" \ -d '{ "data": { "name": "search-web", "description": "搜索互联网并返回带来源的最新结果", "content": "# Search Web\n\n执行网络搜索,并为每条结论附上来源链接。", "allowed_tools": ["web"], "tags": ["search", "citation"] }, "wait": true }'
{ "status": "ok", "result": { "status": "success", "root_uri": "viking://user/alice/skills/search-web", "uri": "viking://user/alice/skills/search-web", "name": "search-web", "auxiliary_files": 0, "queue_status": { "Semantic": {"processed": 0, "requeue_count": 0, "error_count": 0, "errors": []}, "Embedding": {"processed": 1, "requeue_count": 0, "error_count": 0, "errors": []} }, "action": "update" } }