Communitygithub.com

yya007/SkillFinder

Agent技能探索工具

SkillFinder 是什麼?

SkillFinder 是一個用於探索和搜尋 AI Agent 技能的工具。它允許使用者透過自然語言描述任務,並在本機端以語義相似度排序,從超過 37,500 個精選技能中找出最相關的結果。此技能支援 Claude Code、OpenClaw、Codex 等多種平台,並透過 Qwen3-Embedding-0.6B 與 FAISS 索引實現完全離線搜尋,無需網路請求。它不僅提供詳細的安裝指令,還內建了多層級搜尋、重新排名與結果呈現機制,能有效協助開發者快速找到並安裝所需技能。

相容平台✓Claude Code✓Codex CLI~Cursor
npx skills add yya007/SkillFinder

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

skill-finder

搜尋超過 37,500 個精選的代理技能,只要描述你想做的事情即可。結果會根據語義相似度排序,並包含安裝指令。

使用方式

/skill-finder

然後用 plain language 描述你的任務,例如:

  • "部署 kubernetes 叢集,並支援回滾"
  • "爬取具有 JavaScript 渲染功能的網頁"
  • "撰寫並執行 SQL 遷移"

運作原理

  1. 你的描述會透過 Ollama 使用 Qwen3-Embedding-0.6B 在本機端嵌入。
  2. 將嵌入向量與預先建置的、包含 33,000 多個技能的 FAISS 索引進行比對。
  3. 回傳最相符的結果,包含名稱、描述和安裝指令。

此索引完全在裝置端執行 — 搜尋過程中不會發出任何網路請求。

代理指令

當此技能被觸發時,請嚴格按照以下工作流程執行。

安靜地工作。 所有內部步驟(查詢重構、搜尋、解析、重新排序)都要默默完成,不要向使用者敘述。只輸出最終結果和後續的提議。千萬不要說出類似「我正在重構您的查詢…」或「正在執行第一層搜尋…」的話。

注意: 技能是由第三方提供的程式碼 — 在安裝任何來自不熟悉作者的技能前,請務必先檢查該技能的連結。

平台過濾器: 預設情況下請不要套用 --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 與使用者陳述意圖的吻合程度來閱讀。偏好順序如下:

  1. 語義相關性:與使用者實際任務的相關性(主要訊號)
  2. 星星數(quality.stars) — 越高表示經過社群驗證的程度越高
  3. 來源 — 僅作為微弱的最後手段:當相關性和星星數相似時,偏好官方驗證過的技能。不要僅因為技能的來源註冊表而對其進行懲罰或降級。

平台-來源對齊規則: 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 嗎?」

相關技能