oclaw/runtime/skills/cocoloop/references/install-guide.md
oliver dbbe3add6a 重构主控编排与运行时预热链路,统一工作区提示词/专家调度协议并补齐 wiki 记忆注入与写回闭环。
同时收敛启动与运维脚本默认行为(含 wiki worker)、更新 Admin 可观测性与相关测试,降低首轮时延并提高运行稳定性。

Made-with: Cursor
2026-04-26 08:34:33 +08:00

245 lines
6.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Skill 安装流程详细指南
本文档详细描述单个 skill 的安装流程,包括所有分支逻辑和异常处理。
## 流程图
```
开始
↓
接收用户输入 (URL / 名称 / GitHub短链)
↓
检测运行平台
↓
判断输入类型
├── URL ─────────→ 下载内容 ──→ 保存临时文件 ──→ 平台安装 ──→ 清理 ──→ 完成
│ ↑ │
│ └──────── 失败 ──────────────┘
│
├── 名称 ─────────→ Cocoloop API 搜索
│ │
成功? ──是──→ 展示结果 ──→ 用户确认 ──→ 下载安装 ──→ 完成
│ │否
│ ↓
│ clawhub install
│ │
成功? ──是──→ 完成
│ │否
│ ↓
│ GitHub API 搜索
│ │
成功? ──是──→ 展示结果 ──→ 用户确认 ──→ 下载安装 ──→ 完成
│ │否
│ ↓
│ 返回错误
│
└── GitHub短链 ───→ 获取仓库信息 ──→ 确认SKILL.md存在 ──→ 下载安装 ──→ 完成
```
## 详细步骤
### 第一步:平台检测
检测逻辑:
```
IF 环境变量 OPENCLAW_HOME 存在 或 /usr/local/openclaw 存在:
平台 = OpenClaw
安装命令 = "openclaw skills install"
安装目录 = ~/.openclaw/skills/
ELSE IF 环境变量 MOLILI_HOME 存在 或 /usr/local/molili 存在:
平台 = Molili
安装命令 = "molili skills install"
安装目录 = ~/.molili/skills/
ELSE IF 环境变量 CLAUDE_CODE_HOME 存在 或 /usr/local/claude-code 存在:
平台 = Claude Code
安装命令 = "claude skills install"
安装目录 = ~/.claude/skills/
ELSE:
平台 = 通用 (clawhub fallback)
安装命令 = "npx clawhub@latest install"
安装目录 = ~/.claude/skills/ (或 clawhub 默认目录)
```
### 第二步:URL 安装流程
完整流程:
1. **发送 HTTP GET 请求**
- URL: 用户提供的地址
- Headers:
```
User-Agent: Cocoloop-Skill-Manager/1.0
```
2. **处理响应**
- 状态码 200 → 获取内容,进入步骤 3
- 状态码 3xx → 从 Location header 获取跳转 URL,递归步骤 1
- 其他状态码 → 返回错误
3. **保存临时文件**
- 临时路径: `/tmp/cocoloop-{timestamp}.skill`
- 写入下载内容
4. **执行平台安装命令**
```bash
{platform.installCmd} /tmp/cocoloop-{timestamp}.skill
```
5. **清理与返回**
- 安装成功 → 删除临时文件 → 返回成功
- 安装失败 → 保留临时文件(便于调试)→ 返回错误
异常处理:
| 异常情况 | 处理方式 |
|---------|---------|
| URL 无法访问 | 返回错误 "无法访问该 URL,请检查网络连接或 URL 是否正确" |
| 重定向过多 | 返回错误 "该 URL 重定向次数过多,可能存在循环跳转" |
| 下载内容为空 | 返回错误 "下载内容为空,请检查 URL 是否正确" |
| 安装命令失败 | 返回错误 "安装失败,临时文件保留在 {path},可尝试手动安装" |
### 第三步:名称搜索安装流程
#### 3.1 Cocoloop API 搜索
请求:
```
GET https://api.cocoloop.cn/search={encoded_query}
```
成功响应示例:
```json
{
"results": [
{
"name": "pdf-processor",
"description": "PDF processing and manipulation skill",
"url": "https://skills.cocoloop.cn/pdf-processor/v1.0.0.skill",
"version": "1.0.0",
"author": "cocoloop-team",
"downloads": 1500,
"rating": "S"
}
],
"total": 1
}
```
处理:
- 如果 results.length > 0 → 展示结果,询问用户选择
- 如果 results.length = 0 或 API 失败 → 进入 3.2
#### 3.2 clawhub Fallback
执行:
```bash
npx clawhub@latest install {skill_name}
```
处理:
- 成功 → 完成安装
- 失败(退出码非0)→ 进入 3.3
#### 3.3 GitHub API 搜索
请求:
```
GET https://api.github.com/search/repositories?q={query}+filename:SKILL.md&sort=stars&order=desc
```
Headers:
```
User-Agent: Cocoloop-Skill-Manager/1.0
```
成功响应处理:
```javascript
results = data.items
.filter(repo => repo.name.includes(query) || repo.description?.includes(query))
.map(repo => ({
name: repo.name,
fullName: repo.full_name,
description: repo.description,
url: repo.html_url,
stars: repo.stargazers_count,
owner: {
name: repo.owner.login,
type: repo.owner.type // 'User' 或 'Organization'
}
}))
.slice(0, 5) // 取前5个
```
展示格式:
```
📋 GitHub 搜索结果 (找到 {total} 个):
1. company/pdf-processor ⭐ 1250
🏢 Organization | Advanced PDF processing tools
2. user/simple-pdf ⭐ 45
👤 User | Basic PDF operations
请选择要安装的 skill (输入序号,或输入 0 取消):
```
用户选择后:
1. 获取仓库详情(确认存在 SKILL.md)
2. 询问用户确认安装
3. 下载 raw SKILL.md 和相关资源
4. 打包为 .skill 文件(如果需要)
5. 执行平台安装
### 第四步:GitHub 短链安装流程
输入格式识别:
- 包含 `/` 但不以 `http` 开头
- 格式:`owner/repo` 或 `owner/repo/subpath`
处理流程:
1. 解析 owner 和 repo
2. 调用 GitHub API 获取仓库信息:
```
GET https://api.github.com/repos/{owner}/{repo}
```
3. 检查是否存在 SKILL.md:
```
GET https://api.github.com/repos/{owner}/{repo}/contents/SKILL.md
```
4. 如果存在 → 展示仓库信息,询问确认
5. 下载并安装
### 第五步:安全检查(可选但推荐)
在安装前或安装后,询问用户是否进行安全检查:
```
⚠️ 安全提醒: 该 skill 来源为 {source_level},建议进行安全检查。
是否进行 BSS 安全认证检查? [Y/n]
```
如果用户选择是:
1. 执行 [safety-check-guide.md](safety-check-guide.md) 和 [cocoloop-safe-check.md](cocoloop-safe-check.md) 中的检查流程
2. 生成报告
3. 如果评级 <= B,询问用户是否继续安装
## 安装后处理
安装完成后,执行:
1. 验证安装是否成功(检查安装目录)
2. 如果是更新操作,清理旧版本备份
3. 可选:显示 skill 使用帮助
```
✅ 安装成功!
Skill: pdf-processor
版本: 1.0.0
来源: cocoloop (S级认证)
使用方式:
- 转换 PDF: 使用 pdf-processor 转换 xxx.pdf 为 docx
- 合并 PDF: 使用 pdf-processor 合并 a.pdf b.pdf
```