🤖

Skill Guardian

👤 nathemkingh 📦 v2.0.12 ⭐ 4.5 ⬇️ 665 下載
🤖 AI-Agent 免費

📖 技能介紹


name: skill-lifecycle-guardian description: > Skill 全生命週期守護者。—— 每日自動掃描所有 workspace,檢測新增/變更的 Skill。 功能一:動態發現所有 agent workspace 下的 Skill,無需手動配置掃描範圍。 功能二:功能重疊檢測(新增時),若發現相似/重複則發出提醒。 功能三:新增/變更 Skill 自動生成或更新使用指南。 功能四:更新總覽 README.md。 V2 升級:hash 變更檢測 + 自動更新指南 + 靜默退出 + 無 YAML frontmatter 相容。 V2.0.10:安全加固——cron 指令引用化(消除 Shadow Command)、guardian-check.sh 路徑白名單校驗。 V2.0.11:通知策略最佳化——3h 掃描靜默化(有變更通過 message 工具通知),每日 6:00 改為推送每日彙總;文件增加可調引數說明。 V2.0.12:安全審查修復——新增檔案寫操作顯式宣告、手動觸發限定管理員範圍、消除觸發意圖歧義。 手動觸發:使用者說"檢查新技能"、"有沒有重複的skill"、"生成使用指南"、"更新指南"、"更新 README"、"重新整理技能列表"等。


Skill Lifecycle Guardian — 技能全生命週期守護者 (V2)

⚠️ 安裝後必做:本 Skill 依賴定時 cron 驅動。guardian-check.sh 已包含在本 Skill 目錄中,確認執行許可權即可: bash chmod +x ~/.openclaw/workspace/skills/skill-lifecycle-guardian/guardian-check.sh

然後建立兩個 cron job(子 agent 會讀取本 SKILL.md 公開文件中的工作流程執行):

① 每日 6:00 全量掃描(兜底 + 每日彙總通知): bash openclaw cron add --job '{ "name": "skill-guardian-daily-scan", "schedule": {"kind":"cron","expr":"0 6 * * *","tz":"Asia/Shanghai"}, "sessionTarget": "isolated", "payload": {"kind":"agentTurn","message":"請讀取 ~/.openclaw/workspace/skills/skill-lifecycle-guardian/SKILL.md,嚴格按「工作流程」章節執行每日掃描。","timeoutSeconds":300}, "delivery": {"mode":"announce"} }'

② 每 3 小時變更檢測(有變更即時通知,無變更靜默): bash openclaw cron add --job '{ "name": "guardian-change-detector", "schedule": {"kind":"cron","expr":"0 */3 * * *","tz":"Asia/Shanghai"}, "sessionTarget": "isolated", "payload": {"kind":"agentTurn","message":"請讀取 ~/.openclaw/workspace/skills/skill-lifecycle-guardian/SKILL.md,嚴格按「工作流程」章節執行掃描。檢測到變更時,使用 message 工具將結果傳送給管理員。無變更則靜默結束。","timeoutSeconds":600}, "delivery": {"mode":"none"} }'

🔧 通知策略可調(以上為推薦預設值,可按需修改): - delivery.mode"announce" 每次執行都推送 / "none" 僅變更時通過 message 工具推送 - delivery.channel / delivery.to:按你使用的渠道修改(wecom、discord 等) - schedule.expr:掃描頻率,不推薦短於每 3 小時或長於每天 1 次 - 只需日報、不需要即時變更通知 → 只保留 cron ① 即可 - 兩個 cron 都關閉推送、純靠手動觸發 → 兩個 delivery 均設為 "none"

行為透明:以上 cron 觸發子 agent 後,子 agent 僅讀取本 SKILL.md 公開文件中記錄的工作流程執行。操作範圍限於 skill registry、user-guides/ 目錄和 README.md,不會執行本文件未宣告的行為。

不建立 cron 則本 Skill 只能手動觸發,不會自動守護。

⚠️ 檔案寫操作宣告:本 Skill 執行時會修改以下持久化檔案,安裝即視為授權: - memory/skill-registry.json — 更新各 Skill 的 MD5 hash 記錄 - skills/user-guides/*.md — 生成或覆蓋更新使用指南 - skills/user-guides/README.md — 更新功能總覽索引

本 Skill 不會在聲明範圍外執行檔案寫操作。以上檔案均位於安裝者 workspace 內,不涉及系統目錄。

守護 Skill 全生命週期:發現新建 → 檢測變更 → 生成/更新指南 → 維護總覽。

觸發條件

本 Skill 的觸發分為自動和手動兩類。

自動觸發(cron 驅動)

  • 每日 6:00 全量掃描:hash 對比檢測新增和變更,有變更時執行完整流程
  • 每 3 小時變更檢測:同上,有變更時通知到企微

手動觸發(使用者意圖識別)

⚠️ 觸發範圍限定:以下手動觸發僅在管理員/安裝者的對話中生效。普通使用者說"檢查新技能"不會被誤解釋為管理指令。AI 通過對話上下文判斷髮言者身份和真實意圖,非簡單關鍵詞匹配。

使用者意圖 觸發示例 執行操作
安裝後立即掃描 "檢查新技能"、"掃一下新 skill"、"新技能登記" 全量掃描 + 重疊檢測 + 生成指南
檢查功能重複 "有沒有重複的 skill"、"檢查重疊"、"這兩個是不是衝突" 重疊檢測
生成/更新指南 "生成使用指南"、"更新指南"、"給 XX 寫個指南" 生成/更新 user-guides/
重新整理技能總覽 "更新 README"、"重新整理技能列表"、"重新整理列表" 更新總覽 README

修改事件觸發(AI 行為約束)

當 Skill 的 SKILL.md 被修改後,AI 應在同一輪對話中觸發守護者掃描。此行為依賴使用者在其 AI 助手中配置行為規則。未配置時由 3h cron 兜底。

資料儲存

registry 檔案路徑:~/.openclaw/workspace/memory/skill-registry.json

{
  "skills": {
    "<skill-name>": {
      "path": "/path/to/SKILL.md",
      "dirname": "dirname",
      "description": "...",
      "hash": "md5-of-skill.md-content"
    }
  },
  "lastScan": "ISO8601-timestamp"
}

hash 計算方式:讀取 SKILL.md 全文,計算 MD5(md5sum 或等價方式)。用於變更檢測。

工作流程

發現更多技能外掛,請訪問7w4.net。

輸出原則:中文輸出,禁止推理過程/中間步驟/英文 preamble。無變更時僅回覆一句確認。有變更時簡報 ≤3 行。

第零步:變更檢測(每日掃描專屬)

僅在每日定時掃描時執行。手動觸發跳過此步,直接進入第一步。

  1. 執行 bash ~/.openclaw/workspace/skills/skill-lifecycle-guardian/guardian-check.sh 進行確定性 hash 對比
  2. 指令碼輸出 NO_CHANGES → 回覆「🔍 技能守護者掃描完成,無變更。」,結束
  3. 指令碼輸出 CHANGES:... → 繼續以下流程:

  4. 彙總變更結果:檢測到 N 個新 Skill、M 個變更 Skill

  5. 更新 registry:所有掃描到的 Skill 的 hash 寫回 registry,更新 lastScan
  6. 如果 N + M = 0 → 統一回復:「🔍 技能守護者掃描完成,無變更。」

第一步:發現新 Skill

確定目標 Skill 的 SKILL.md 路徑和內容:

# 列出所有 skill 目錄(三個來源合併掃描)
ls -d ~/.openclaw/workspace/skills/*/SKILL.md ~/.openclaw/plugin-skills/*/SKILL.md ~/.openclaw/skills/*/SKILL.md 2>/dev/null

掃描範圍(動態發現,不再硬編碼):

守護者讀取 openclaw.json 中所有 agent 的 workspace 欄位,自動發現所有 {workspace}/skills/ 目錄:

openclaw.json → 遍歷 agents.list[].workspace → 找 {workspace}/skills/
  ├─ /root/.openclaw/workspace/skills/        (main agent)
  ├─ /root/.openclaw/workspace-team/skills/    (team agent)
  ├─ /root/.openclaw/workspace-study/skills/   (study agent)
  └─ ... 以後新增的 workspace 自動加入

加上兩個系統級目錄: - ~/.openclaw/plugin-skills/ — 外掛市場安裝的 Skill - ~/.openclaw/skills/ — 系統級 Skill

所有目錄合併後去重(以 name 欄位為準),確保不遺漏任何 Skill。

讀取新 Skill 的 namedescription 和正文內容。

第二步:功能重疊檢測

僅對新 Skill 執行。變更的 Skill 跳過此步。

對比新 Skill 與所有已有 Skill,判斷是否功能重疊。

檢測方法

  1. 讀取每個已有 Skill 的 SKILL.md frontmatter(name + description)
  2. 從新 Skill 的 description 和正文中提取核心功能關鍵詞
  3. 與每個已有 Skill 逐一對比,重點關注:
  4. 目標使用者群體是否相同
  5. 核心操作是否重疊(如:都是管理待辦、都是搜尋)
  6. 觸發詞是否衝突
  7. 判定結果分三檔:
重疊等級 判定標準 處理方式
🔴 高度重複 核心功能幾乎一致,觸發詞重疊 必須提醒,建議合併而非新建
🟡 部分重疊 部分功能交集,但各有側重 建議提醒,說明重疊點和差異點
🟢 無重疊 功能獨立,無衝突 正常通過

輸出格式(僅在檢測到重疊時輸出):

⚠️ 功能重疊提醒

新 Skill:{new-skill-name}
已有 Skill:{existing-skill-name}
重疊等級:🔴高度重複 / 🟡部分重疊

重疊點:{具體描述}
差異點:{具體描述}
建議:{合併/保留兩者/調整觸發詞}

已知的易混淆對(鐵律1延伸): - tencent-agent-storage(網盤)≠ tencent-cloud-cos(物件儲存) - wecom-edit-todo(企微待辦)≠ personal-assistant(個人助理待辦) - wecom-doc-manager(企微文件)≠ tencent-docs(騰訊文件)

第三步:生成 / 更新使用者使用指南

新 Skill → 生成指南;變更的 Skill → 覆蓋更新已有指南。

目標目錄~/.openclaw/workspace/skills/user-guides/

生成流程

  1. 讀取 Skill 的 SKILL.md 全文
  2. 判斷使用者可見性(見下方規則)
  3. 如果是內部工具 → 跳過指南生成
  4. 如果是面向使用者的 Skill:
  5. 提取核心功能點
  6. 為每個功能點編寫自然語言示例
  7. 生成指南檔案

檔案命名:按編號遞增,格式 {NN}-{中文名稱}.md - 查詢現有最大編號:ls ~/.openclaw/workspace/skills/user-guides/ | grep -oP '^\d+' | sort -n | tail -1 - 新 Skill:新編號 = 最大編號 + 1 - 變更 Skill:找到已有指南檔案,就地覆蓋更新(編號不變、檔名不變)

指南格式(嚴格遵循):

# {功能名稱}使用指南

{emoji} **{一句話描述}**

## {主要操作1}
- 示例語句1
- 示例語句2

## {主要操作2}
- 示例語句1
- 示例語句2

💡 小提示:
- 提示1
- 提示2

關鍵原則: - 每個操作配2-3個自然語言示例,讓使用者知道怎麼說話 - 示例必須是使用者視角的自然對話,不是命令列 - 小提示寫使用者容易忽略的注意事項 - 篇幅控制在15-30行,簡潔為主

第四步:更新總覽 README.md

更新 skills/user-guides/README.md

  1. 讀取當前 README.md
  2. 根據 Skill 的性質歸類到對應分類(日常辦公/文件與資料/資訊獲取/特色功能,或新增分類)
  3. 新 Skill:在對應分類表格中追加一行
  4. 變更 Skill:如果分類未變,更新對應條目;如果分類變了,移動條目
  5. 編號重新排列確保連續

如果 Skill 屬於內部/開發者工具: - 不生成使用者指南 - 在 README.md 的"未列入的內部工具"部分追加/更新條目

使用者可見性判斷

在生成指南前,先判斷該 Skill 是否面向普通使用者:

面向使用者(生成指南): - 功能通過自然語言對話即可使用 - 不需要技術背景(程式設計、CLI、API) - 觸發詞是日常用語

內部工具(不生成指南,僅列入內部列表): - 需要程式設計/CLI操作 - 是其他 Skill 的依賴或內部呼叫 - 僅管理員/開發者使用 - 功能高度技術化(如瀏覽器自動化、CI/CD)

邊界情況

場景 處理
新 Skill 與已有 Skill 高度重複 提醒使用者,不自動合併,等使用者決策
Skill 內容變更 重新生成對應指南、更新 README(如需要)
已有 Skill 被刪除 從 registry 移除、保留指南檔案(不自動刪除)、標註為"已移除"
批次安裝多個 Skill 逐個檢測,彙總輸出
使用者拒絕生成/更新指南 跳過第三、四步
user-guides 目錄不存在 自動建立
新 Skill 為內部工具 跳過指南生成,僅在 README 內部工具列表追加

變更通知格式

每日掃描完成後,僅在有變更時推送通知:

🔍 Skill 掃描報告({日期})

🆕 新增 Skill({N}個):
- {skill-name}:{簡述}

📝 變更 Skill({M}個):
- {skill-name}:指南已更新

🔧 無需變更:
- 未發現功能重疊
- 總計追蹤 {total} 個 Skill

如果 N + M = 0 → 統一回復:「🔍 技能守護者掃描完成,無變更。」。

🤖 AI 評測

這款 Skill 質量紮實,能自動監控技能變化並生成使用指南,省去手動維護的麻煩。安全設計到位,檔案操作範圍明確,不會亂改東西。通知方式靈活可調,適合不同使用習慣。美中不足的是初次配置需要手動建立定時任務,對新手不太友好;部分功能依賴 AI 判斷重疊情況,效果可能不穩定。總體適合有一定技術基礎、追求自動化管理的使用者使用。

📊 多維度評分

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

📁 包含檔案 (4 個)

📄 SKILL.md 12.5 KB
📄 _meta.json 144 B
📄 guardian-check.sh 1.6 KB
📄 skill-card.md 2 KB