skill-finder
搜尋超過 37,500 個精選的代理技能,只要描述你想做的事情即可。結果會根據語義相似度排序,並包含安裝指令。
使用方式
/skill-finder
然後用 plain language 描述你的任務,例如:
- "部署 kubernetes 叢集,並支援回滾"
- "爬取具有 JavaScript 渲染功能的網頁"
- "撰寫並執行 SQL 遷移"
運作原理
- 你的描述會透過 Ollama 使用 Qwen3-Embedding-0.6B 在本機端嵌入。
- 將嵌入向量與預先建置的、包含 33,000 多個技能的 FAISS 索引進行比對。
- 回傳最相符的結果,包含名稱、描述和安裝指令。
此索引完全在裝置端執行 — 搜尋過程中不會發出任何網路請求。
代理指令
當此技能被觸發時,請嚴格按照以下工作流程執行。
安靜地工作。 所有內部步驟(查詢重構、搜尋、解析、重新排序)都要默默完成,不要向使用者敘述。只輸出最終結果和後續的提議。千萬不要說出類似「我正在重構您的查詢…」或「正在執行第一層搜尋…」的話。
注意: 技能是由第三方提供的程式碼 — 在安裝任何來自不熟悉作者的技能前,請務必先檢查該技能的連結。
平台過濾器: 預設情況下請不要套用
--platform— 索引涵蓋了 所有平台的技能,而且許多技能可在多個代理上運作。只有當使用者明確要求 平台特定的搜尋時(例如「幫我找一個 Claude Code 的技能…」),才傳入--platform <value>。可用的值有:claude_code、openclaw、codex。
步驟 0 — 檢查可用性
在重構查詢之前,請透過執行以下指令來確認索引和 Ollama 是否可用:
python scripts/search.py "test" --json
如果出現 OllamaNotAvailableError 或 FileNotFoundError 的錯誤,請向使用者提議:
「本機搜尋無法使用。我可以退回使用 GitHub 程式碼搜尋(不排序, 無品質訊號)。為了獲得最佳結果,請設定
GITHUB_TOKEN。要繼續嗎?」
如果使用者同意,請在步驟 2 到 3 的所有搜尋指令中加上 --remote。
步驟 1 — 重構查詢
在搜尋之前,將使用者的請求重新寫成一個簡潔、包含關鍵字的搜尋查詢,以提高語義召回率。規則如下:
- 展開縮寫(例如 "k8s" → "kubernetes","CI" → "continuous integration")。
- 刪除對話中的填充詞(「我想要」、「幫我」、「一個可以…的技能」)。
- 加入索引中可能包含的、密切相關的技術術語(例如 "deploy kubernetes" → "kubernetes deployment orchestration kubectl cluster")。
- 保持簡潔 — 目標大約 10–15 個字。
對於具體的查詢(例如 "deploy k8s with helm rollback"),一次重構就足夠了。
對於模糊或廣泛的查詢(橫跨多個技術領域,或使用通用術語,如「生產力」、「AI」、「自動化」),產生 2–3 個不同角度的替代重構是可選的,但會有所幫助。如果你這麼做,請同時透過分層邏輯執行所有重構,根據 id 對結果進行去重,然後對合併後的結果池進行重新排序。
除非重構後的查詢與使用者輸入的內容差異很大,否則你不需要向使用者顯示它們。
步驟 2 — 執行搜尋(含分層回落)
按順序執行搜尋,一旦找到 ≥3 個好的匹配,即可停止:
第一層 — 預設(品質優先,所有平台):
python scripts/search.py "<重構後的查詢>" --json --propose 5 --min_stars 10
第二層 — 放寬星星門檻(如果第一層回傳的優質匹配少於 3 個):
python scripts/search.py "<重構後的查詢>" --json --propose 5
規則:
--propose 5是預設值;對於廣泛的查詢,或者當使用者要求更多選項時,可以放大到--propose 10。如果使用者指定了結果數量(例如「給我 10 個」),請直接使用該數字。- 只有當使用者明確要求平台特定的搜尋時(例如「找一個用於 OpenClaw 的技能…」),才加上
--platform <value>。在這種情況下,請將其套用於兩個分層。 - ClawHub 來源的技能僅限於 OpenClaw — 它們沒有
claude_code的安裝指令。在呈現這些技能時,請務必標記爲*(openclaw only — not installable in Claude Code)*。 - 如果使用者明確指定了星星門檻(例如「只要知名的技能」或「最少 50 顆星」),請用它來取代
--min_stars 10。 - 如果使用者要求的結果較少(例如「只要前 3 個」),請相應調整呈現的數量。
- 對於第二層的結果,請在回應中說明已放寬過濾條件(參見步驟 5)。
步驟 3 — 解析並檢查門檻值
解析 JSON 輸出。每個結果都包含一個 sim_score 欄位(0.0–1.0),僅供內部使用 — 切勿向使用者顯示。
使用約 0.4 作為「無強匹配」的軟門檻。如果所有分層中的所有結果的 sim_score 都低於 0.4,請警告使用者:
「我找不到與該查詢強匹配的結果。請嘗試使用更具體的關鍵字重新描述。」
步驟 4 — 重新排序
根據每個結果的 description 與使用者陳述意圖的吻合程度來閱讀。偏好順序如下:
- 語義相關性:與使用者實際任務的相關性(主要訊號)
- 星星數(
quality.stars) — 越高表示經過社群驗證的程度越高 - 來源 — 僅作為微弱的最後手段:當相關性和星星數相似時,偏好官方驗證過的技能。不要僅因為技能的來源註冊表而對其進行懲罰或降級。
平台-來源對齊規則: clawhub 是 OpenClaw 的註冊表。當使用者詢問的是 claude_code(或 openclaw 以外的任何平台)時,將僅來自 clawhub 的技能視為最後手段 — 無論星星數多寡,將它們排在所有其他來源之後,並且只在沒有來自更好來源的替代方案時才包含它們。如果一個技能的來源同時包含了 clawhub 和另一個註冊表(例如 marketplace),則使用非 clawhub 的來源進行排序。
預設呈現 3–5 個結果。呈現超過 5 個結果是可選的 — 只有在使用者明確要求更多選項或指定了更高的數量時才這樣做。
步驟 5 — 呈現結果
使用以下確切格式:
找到 N 個與「<使用者的原始查詢>」相關的技能:
1. **pptx** ⭐ 2,810 星 [official]
轉換任何 .pptx 檔案 — 讀取投影片、萃取文字、產生簡報…
安裝:`/skill install pptx` _(如果失敗,請參閱下方的技能連結)_
技能:https://github.com/anthropics/skills/blob/main/skills/pptx/SKILL.md
2. **pptx-skill** ⭐ 126 星
將 HTML 投影片轉換為 PowerPoint (PPTX) 檔案…
安裝:`/plugin install pptx-skill` _(如果失敗,請參閱下方的技能連結)_
技能:https://github.com/vkehfdl1/slides-grab/blob/main/SKILL.md
> 技能索引會定期透過網路爬蟲更新,可能不包含最新發佈的技能。
使用結果中的 skill_md_url 作為「技能:」連結。僅在 skill_md_url 為空時,才使用 repo_url 作為備用。
徽章與標籤:
- 僅在
is_official: true(anthropics/* marketplace 技能)時,加上[official]。 - 當
platforms不包含claude_code時,請附加 (openclaw only — not installable in Claude Code)。 - 請不要在輸出中顯示原始的來源註冊表名稱(
skillsmp、clawhub、topic、skillhub、marketplace)。
安裝指令(始終使用 install_cmd 欄位中的逐字值 — 切勿自行猜測或建構):
| 條件 | 安裝行 |
|---|---|
is_official: true (anthropics/*) | 安裝:/skill install _(如果失敗,請參閱下方的技能連結)_ |
社群技能,且有 install_cmd | 安裝:/plugin install _(如果失敗,請參閱下方的技能連結)_ |
install_cmd 為空 | 無直接安裝方式 — 請參閱技能連結。 |
請勿向使用者顯示 sim_score。
預設僅顯示 install_cmd 中的 claude_code 條目。僅在使用者有詢問時,才提及存在其他平台。
如果結果來自第二層回落,請在「新鮮度免責聲明」之後加上一則備註:
「由於此查詢的頂級匹配有限,這些結果包含了星星數較少的技能。」
步驟 6 — 提議下一步
每次回應結尾都應附上:
「在你安裝之前,需要我先擷取其中任何一個技能的完整 SKILL.md 嗎?」