使用 Skilo
Skilo 是一個用於開發代理技能的 CLI 工具。
安裝
curl -sSfL https://raw.githubusercontent.com/manuelmauro/skilo/main/install.sh | sh
快速開始
skilo new my-skill # 從範本建立
skilo add owner/repo # 從 git 安裝
skilo lint . # 根據規範驗證
skilo fmt . # 格式化 SKILL.md 檔案
執行 skilo -h 查看所有命令和選項。
始終驗證技能
在提交任何技能變更前,請執行 skilo lint 和 skilo fmt。 這些命令強制執行 Agent Skills 規範並捕獲常見問題。
# 使用一個命令驗證和格式化
skilo check .
# CI 的嚴格模式(警告變為錯誤)
skilo check --strict .
技能結構
my-skill/
├── SKILL.md # 必要:帶有 YAML 前置元資料的清單檔
├── scripts/ # 可選:可執行的程式碼
├── references/ # 可選:額外文件(按需載入)
└── assets/ # 可選:靜態資源
前置元資料要求
必要欄位
name(1-64 個字元)
- 僅限小寫字母、數字和連字號(
a-z、0-9、-) - 不得以
-開頭/結尾,也不得包含-- - 必須與父目錄名稱一致
description(1-1024 個字元)
- 描述技能的功能以及何時使用它
- 包含有助於代理比對使用者請求的關鍵字
可選欄位
license- 保持簡短,參考 LICENSE 檔案以獲取詳細資訊compatibility(最多 500 字元)- 環境需求(例如Requires git, docker)metadata- 用於自訂屬性的鍵值對allowed-tools- 以空格分隔的預核可工具清單(實驗性)
最佳實踐
撰寫有效的描述
描述是代理決定何時啟動你的技能的依據。請具體說明。
# 好 - 具體且含關鍵字豐富
description: 從 PDF 檔案中提取文字和表格、填寫 PDF 表單以及合併多個 PDF。適用於處理 PDF 文件或使用者提及 PDF、表單或文件提取時。
# 差 - 含糊不清,缺乏啟動提示
description: 幫助處理 PDF。
保持主體內容簡潔
整個 SKILL.md 主體會在技能啟動時載入。請保持控制在 500 行以下。
- 包含逐步說明
- 加入輸入和輸出的範例
- 涵蓋常見邊界情況
- 將詳細資料移入
references/目錄
使用漸進式揭露
結構化技能以最小化上下文使用:
- 中繼資料(約 100 Token)-
name+description在啟動時為所有技能載入 - 說明(少於 5000 Token)- 技能啟動時載入完整主體
- 資源(按需載入)-
scripts/、references/、assets/僅在需要時載入
編寫自包含的腳本
scripts/ 中的腳本應該:
- 自包含或清楚記錄依賴項
- 包含有用的錯誤訊息
- 優雅地處理邊界情況
有效組織參考文件
references/ 中的檔案按需載入:
- 保持檔案專注(一個檔案 = 一個概念)
- 使用相對於技能根目錄的路徑
- 避免深度巢狀的參考鏈
Lint 規則
Skilo 強制執行以下規則(可在 .skilorc.toml 中配置):
| 代碼 | 規則 | 預設值 |
|---|---|---|
| E001 | name_format | 啟用 |
| E002 | name_length | 64 個字元 |
| E003 | name_directory | 啟用 |
| E004 | description_required | 啟用 |
| E005 | description_length | 1024 個字元 |
| E006 | compatibility_length | 500 個字元 |
| E009 | references_exist | 啟用 |
| W001 | body_length | 500 行 |
| W002 | script_executable | 啟用 |
| W003 | script_shebang | 啟用 |
CI 整合
- name: 驗證技能
run: |
curl -sSfL https://raw.githubusercontent.com/manuelmauro/skilo/main/install.sh | sh
skilo check --strict skills/