name: skill-isolator description: | Project-based skill isolation and management. Enables different projects to use different skill sets with automatic loading based on current working directory. Supports multiple skill sources (clawhub, local, git, url) with priority-based resolution, version locking, and auto-sync. Use when: (1) working in a project with .openclaw-skills.json, (2) need to manage project-specific skills, (3) want to isolate skills between projects, (4) need to install skills from clawhub or other sources. version: 1.0.0 author: Xiao Xia license: MIT
為不同專案提供獨立的技能配置和隔離管理,實現技能按需載入、專案間完全隔離。
在專案根目錄建立 .openclaw-skills.json:
# 使用交互向導
node scripts/init-project-config.js
# 或手動建立(最小配置)
echo '{"skills":["weather"],"excludeGlobal":true}' > .openclaw-skills.json
# 自動檢測並安裝缺失技能
node scripts/sync-project-skills.js
node scripts/validate-config.js
| 功能 | 說明 |
|---|---|
| 🔒 專案隔離 | 每個專案獨立技能配置,切換專案自動切換技能 |
| 🌐 多源支援 | clawhub / local / git / url,優先順序可配置 |
| 📦 版本控制 | 支援鎖定特定版本或 latest 自動更新 |
| ⚡ 自動同步 | 進入專案時自動檢測並安裝缺失技能 |
| 💾 智慧快取 | 減少重複下載,可配置 TTL |
| 🎯 衝突解決 | 專案配置 > 全域性配置,同名技能取高優先順序源 |
{
"name": "my-project",
"skills": [
{ "name": "feishu-doc", "version": "latest" },
{ "name": "weather", "version": "1.2.0" },
"stock-analyzer"
],
"excludeGlobal": true,
"sources": [
{
"name": "clawhub",
"type": "registry",
"priority": 1,
"enabled": true
},
{
"name": "local",
"type": "filesystem",
"priority": 2,
"paths": ["~/.openclaw/skills", "~/my-skills"]
}
],
"cache": {
"enabled": true,
"ttlHours": 24
},
"autoSync": {
"onProjectEnter": true,
"onSkillMissing": true
}
}
| 欄位 | 型別 | 必需 | 說明 |
|---|---|---|---|
name |
string | ❌ | 專案名稱(用於顯示) |
skills |
array | ✅ | 技能列表,支援字串或物件格式 |
excludeGlobal |
boolean | ❌ | true 只用專案技能,false 專案 + 全域性(預設 false) |
sources |
array | ❌ | 技能來源列表,按優先順序排序 |
cache.enabled |
boolean | ❌ | 是否啟用快取(預設 true) |
cache.ttlHours |
number | ❌ | 快取過期時間(小時,預設 24) |
autoSync.onProjectEnter |
boolean | ❌ | 進入專案時自動同步(預設 true) |
autoSync.onSkillMissing |
boolean | ❌ | 發現缺失技能時自動安裝(預設 true) |
{
"skills": [
"weather", // 簡單格式 - 最新版本的技能
{ "name": "feishu-doc" }, // 物件格式 - 最新版本
{ "name": "stock-analyzer", "version": "1.2.0" } // 鎖定版本
]
}
| type | 說明 | 必需欄位 | 示例 |
|---|---|---|---|
registry |
技能市場(clawhub) | - | {"name":"clawhub","type":"registry"} |
filesystem |
本地目錄 | paths |
{"type":"filesystem","paths":["~/.openclaw/skills"]} |
git |
Git 倉庫 | repos |
{"type":"git","repos":["user/repo"]} |
url |
HTTP 下載 | baseUrl |
{"type":"url","baseUrl":"https://..."} |
| 命令 | 說明 |
|---|---|
node scripts/sync-project-skills.js |
同步專案技能 |
node scripts/sync-project-skills.js --force |
強制重新同步 |
node scripts/sync-project-skills.js --verbose |
顯示詳細資訊 |
node scripts/validate-config.js |
驗證配置格式 |
| 命令 | 說明 |
|---|---|
node scripts/init-project-config.js |
互動式建立配置 |
1. 檢測當前工作目錄
↓
2. 向上查詢最近的 .openclaw-skills.json
↓
3. 解析技能列表和來源配置
↓
4. 檢查每個技能是否已安裝
↓
5. 缺失技能 → 按源優先順序查詢並安裝
↓
6. 啟用配置的技能
↓
7. 快取載入狀態
1. 遍歷配置的技能列表
↓
2. 檢查技能是否已安裝(多目錄檢測)
↓
3. 未安裝 → 按優先順序遍歷來源
↓
4. 找到技能 → 下載/克隆
↓
5. 驗證技能格式(SKILL.md 必需)
↓
6. 安裝到本地技能目錄
↓
7. 更新快取
同步專案技能的主指令碼。
# 基本用法
node scripts/sync-project-skills.js
# 強制重新同步(忽略快取)
node scripts/sync-project-skills.js --force
# 顯示詳細資訊
node scripts/sync-project-skills.js --verbose
# 組合使用
node scripts/sync-project-skills.js --force --verbose
引數:
- --force, -f: 強制重新同步,忽略快取
- --verbose, -v: 顯示詳細資訊
驗證配置檔案格式和完整性。
# 驗證當前目錄配置
node scripts/validate-config.js
# 驗證指定檔案
node scripts/validate-config.js path/to/config.json
驗證內容: - JSON 格式正確性 - 必需欄位存在性 - 欄位型別正確性 - 來源型別有效性 - 重複技能檢測
互動式配置建立嚮導。
node scripts/init-project-config.js
引導內容: - 專案名稱 - 技能列表 - 是否排除全域性技能 - 技能來源配置 - 快取設定 - 自動同步設定
~/.openclaw/cache/skills.json
{
"skills": {
"weather": { "installed": true, "timestamp": 1710000000000 },
"feishu-doc": { "installed": true, "timestamp": 1710000000000 }
},
"sources": {
"clawhub": { "reachable": true, "lastCheck": 1710000000000 }
},
"lastSync": 1710000000000
}
| 場景 | 行為 |
|---|---|
| 快取有效 | 直接使用,跳過網路請求 |
| 快取過期 | 重新檢查源,更新快取 |
--force |
忽略快取,強制重新檢查 |
| 快取損壞 | 自動重建 |
| 錯誤 | 原因 | 解決方案 |
|---|---|---|
Config error |
JSON 格式錯誤 | 執行 validate-config.js 檢查 |
Skill not found |
技能在配置源中不存在 | 檢查技能名稱,確認源配置 |
Failed to install |
安裝失敗(網路/許可權) | 檢查網路連線和目錄許可權 |
Cache valid, skipping |
快取未過期 | 使用 --force 強制重新整理 |
只配置專案真正需要的技能:
{
"skills": ["feishu-doc", "weather"],
"excludeGlobal": true
}
生產專案鎖定技能版本:
{
"skills": [
{ "name": "feishu-doc", "version": "2.1.0" },
{ "name": "weather", "version": "1.0.3" }
]
}
開發中的技能使用本地源:
{
"sources": [
{ "name": "local-dev", "type": "filesystem", "paths": ["~/dev/my-skills"], "priority": 1 }
]
}
提交配置到版本控制:
git add .openclaw-skills.json
git commit -m "Add project skill configuration"
# 1. 檢查配置檔案是否存在
ls .openclaw-skills.json
# 2. 驗證配置格式
node scripts/validate-config.js
# 3. 強制同步
node scripts/sync-project-skills.js --force --verbose
# 1. 檢查網路連線
ping clawhub.com
# 2. 檢查技能目錄許可權
ls -la ~/.openclaw/skills/
# 3. 檢視詳細日誌
node scripts/sync-project-skills.js --verbose
# 驗證配置並檢視示例 node scripts/validate-config.js小蔥技能7w4.net有完整的技能分類。
| 檔案 | 位置 |
|---|---|
| 配置檔案 | 專案根目錄/.openclaw-skills.json |
| 快取檔案 | ~/.openclaw/cache/skills.json |
| 技能目錄 | ~/.openclaw/skills/ |
| 日誌檔案 | ~/.openclaw/logs/skills.log |
本技能依賴 clawhub 技能來安裝 registry 源的技能。確保 clawhub 技能已安裝。
建立新技能後,可以用本技能將新技能新增到專案配置中。
| 版本 | 日期 | 變更 |
|---|---|---|
| 1.0.0 | 2026-03-10 | 初始版本,支援基礎配置和多源安裝 |
MIT License
這個 Skill 質量不錯,功能實用,文件非常詳細。優點是配置靈活、支援多來源、自動同步方便,管理不同專案的技能很省心。缺點是配置示例有細微不一致,可能讓人困惑;某些高階功能(如 Git 源認證)的說明還不夠詳細。適合需要管理多個專案技能配置的進階使用者,新手也能快速上手。