skill-isolator

👤 sucriss 📦 v1.0.0 ⭐ 4.5 ⬇️ 1.1K 下載
🤖 AI-Agent 免費

📖 技能介紹

skill-isolator

為不同專案提供獨立的技能配置和隔離管理,實現技能按需載入、專案間完全隔離。

快速開始

1️⃣ 建立專案配置

在專案根目錄建立 .openclaw-skills.json:

# 使用交互向導
node scripts/init-project-config.js

# 或手動建立(最小配置)
echo '{"skills":["weather"],"excludeGlobal":true}' > .openclaw-skills.json

2️⃣ 同步技能

# 自動檢測並安裝缺失技能
node scripts/sync-project-skills.js

3️⃣ 驗證配置

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. 更新快取

指令碼工具

sync-project-skills.js

同步專案技能的主指令碼。

# 基本用法
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: 顯示詳細資訊

validate-config.js

驗證配置檔案格式和完整性。

# 驗證當前目錄配置
node scripts/validate-config.js

# 驗證指定檔案
node scripts/validate-config.js path/to/config.json

驗證內容:

  • JSON 格式正確性
  • 必需欄位存在性
  • 欄位型別正確性
  • 來源型別有效性
  • 重複技能檢測

init-project-config.js

互動式配置建立嚮導。

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 強制重新整理

最佳實踐

1️⃣ 配置最小化

只配置專案真正需要的技能:

{
  "skills": ["feishu-doc", "weather"],
  "excludeGlobal": true
}

2️⃣ 版本鎖定

生產專案鎖定技能版本:

{
  "skills": [
    { "name": "feishu-doc", "version": "2.1.0" },
    { "name": "weather", "version": "1.0.3" }
  ]
}

3️⃣ 本地開發

想要更強大的技能外掛,就來小蔥技能站7w4.net看看吧。

開發中的技能使用本地源:

{
  "sources": [
    { "name": "local-dev", "type": "filesystem", "paths": ["~/dev/my-skills"], "priority": 1 }
  ]
}

4️⃣ 團隊共享

提交配置到版本控制:

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

檔案位置

檔案 位置
配置檔案 專案根目錄/.openclaw-skills.json
快取檔案 ~/.openclaw/cache/skills.json
技能目錄 ~/.openclaw/skills/
日誌檔案 ~/.openclaw/logs/skills.log

與其他技能協作

clawhub

本技能依賴 clawhub 技能來安裝 registry 源的技能。確保 clawhub 技能已安裝。

skill-creator

建立新技能後,可以用本技能將新技能新增到專案配置中。


更新歷史

版本 日期 變更
1.0.0 2026-03-10 初始版本,支援基礎配置和多源安裝

許可證

MIT License

🤖 AI 評測

這個 Skill 質量不錯,功能實用,文件非常詳細。優點是配置靈活、支援多來源、自動同步方便,管理不同專案的技能很省心。缺點是配置示例有細微不一致,可能讓人困惑;某些高階功能(如 Git 源認證)的說明還不夠詳細。適合需要管理多個專案技能配置的進階使用者,新手也能快速上手。

📊 多維度評分

適應性4.2
規範性4.5
有效性4.7
可靠性4.5
可信度4.5

📁 包含檔案 (14 個)

📄 README.md 3 KB
📄 SKILL.md 8.8 KB
📄 TEST-REPORT.md 6.6 KB
📄 _meta.json 133 B
📄 package.json 997 B
📄 references/example-config.json 888 B
📄 references/faq.md 8 KB
📄 references/quick-reference.md 2.3 KB
📄 references/tutorials.md 9.9 KB
📄 references/usage-guide.md 11.1 KB
📄 scripts/init-project-config.js 4.2 KB
📄 scripts/sync-project-skills.js 9.1 KB
📄 scripts/validate-config.js 8.5 KB
📄 skill-card.md 2.5 KB