scripts脚本所需的依赖包及版本:
requests==2.31.0
beautifulsoup4==4.12.2
packaging==23.2
PyYAML==6.0.1
首次使用本技能时,需要将已安装的技能注册到skills-update-manager,并需要在工作目录下 MEMORY.md文件添加以下:
# 技能更新管理器配置
## 更新设置
- 启用更新检查:是/否
- 上次检查时间:YYYY-MM-DD HH:MM:SS
## 使用说明
1. 每次安装技能前优先加载 skills-update-manager
2. 更新开启时,启动技能前需加载本管理器检查更新
3. 更新关闭时,跳过更新检查
核心流程:智能体自动从技能文件中提取元数据,无需用户提供详细信息。
当用户安装新技能时,智能体需要从技能文件中提取以下信息:
方式A:从 .skill 或者.zip文件提取
SKILL.md 文件name:技能名称version:版本号(如果存在)方式B:从已解压的技能目录提取
SKILL.md 文件调用脚本:scripts/skill_registry.py --action extract --skill-path <路径>
输出示例:
{
"success": true,
"metadata": {
"name": "pdf-processor",
"version": "1.0.0",
"source": null,
"update_url": null
}
}
智能体根据以下信息推断来源类型和更新地址:
判断规则:
githubclawhub典型场景:
用户:"安装这个技能:https://github.com/user/skill-name"
智能体:识别来源为 github,提取仓库地址
用户:"安装 xxx.skill 文件"
智能体:提取技能名称后询问:"这个技能的来源是什么?(GitHub/ClawHub/其他)"
调用脚本:scripts/skill_registry.py --action register
必需参数:
--name:技能名称(从 SKILL.md 提取)可选参数(智能体推断或询问用户):
--version:当前版本号(从 SKILL.md 提取,默认 "1.0.0")--source:来源类型(github/clawhub,默认 "github")--update-url:更新地址(根据来源推断或询问用户)执行示例:
# 完整参数(智能体已提取所有信息)
python scripts/skill_registry.py \
--action register \
--name "pdf-processor" \
--version "1.0.0" \
--source "github" \
--update-url "https://github.com/user/pdf-processor"
# 最小参数(仅需名称,其余使用默认值)
python scripts/skill_registry.py \
--action register \
--name "pdf-processor"
智能体职责:
根据 MEMORY.md 中的配置,决定是否检查更新:
调用脚本:scripts/skill_registry.py --action check_updates
执行逻辑:
MEMORY.md 配置,判断更新检查是否启用https://api.github.com/repos/{owner}/{repo}/releases/latest输出格式:
{
"has_updates": true,
"updates": [
{
"name": "example-skill",
"current_version": "v1.0.0",
"latest_version": "v1.2.0",
"source": "github",
"update_url": "https://github.com/user/example-skill"
}
]
}
智能体职责:
git clone 或下载方式获取新版本列出所有已安装技能的详细信息:
调用脚本:scripts/skill_registry.py --action list
输出内容:
修改 MEMORY.md 中的更新设置:
调用脚本:scripts/skill_registry.py --action update_config
参数说明:
--enable-updates: 是否启用更新检查(true/false)执行方式:
python scripts/skill_registry.py --action update_config --enable-updates true
当技能完成更新后,更新本地记录的版本号:
调用脚本:scripts/skill_registry.py --action update_record
参数说明:
--name: 技能名称--version: 新版本号v1.0.0 或 1.0.02024.01.01、v2.1 等tag_name 或 name 字段作为版本号脚本已包含以下错误处理:
场景:用户首次加载本技能
执行步骤:
MEMORY.mdupdate_config 创建配置文件场景:用户说"安装这个技能:https://github.com/user/pdf-processor"
智能体执行流程:
```bash
python scripts/skill_registry.py --action register \
--name "pdf-processor" \
--version "1.0.0" \
--source "github" \
--update-url "https://github.com/user/pdf-processor"
```
场景:用户上传 "data-analyzer.skill" 文件
智能体执行流程:
```bash
python scripts/skill_registry.py --action register \
--name "data-analyzer" \
--version "2.0.0" \
--source "github" \
--update-url "https://github.com/user/data-analyzer"
```
场景:用户希望检查所有已安装技能是否有更新
执行步骤:
check_updatesgit clone 或其他方式更新技能update_record 更新本地记录共 1 个版本