啟用 Skill
Gemini CLI 啟用 Agent Skill 的方式、技能發現、reload、enable/disable 和驗證是否真正生效。
安裝 Skill 不等於它已經在當前任務中正確生效。你需要確認發現、啟用和 reload 狀態。
看得到 Skill 不等於本次會話已經用了 Skill。真正的證據是觸發了啟用確認,並且輸出遵守 SKILL.md 的流程。
activate_skill 是 Gemini agent 內部呼叫的工具,使用者不能手動執行。它只有一個引數:要啟用的 Skill name。當模型判斷任務匹配某個已發現 Skill 時,會請求啟用;你確認後,Gemini CLI 才會把 Skill 正文和資源目錄加入會話。
常用命令
gemini skills list
gemini skills enable <name>
gemini skills disable <name>互動式會話裡:
/skills reload官方還區分互動命令和終端命令:互動裡可以 /skills list [all] [nodesc]、/skills link <path>、/skills enable、/skills disable、/skills reload;終端裡可以 gemini skills list --all、gemini skills install <path>、gemini skills uninstall <name>。教程要寫清當前命令是在會話裡輸入,還是在 shell 裡執行。
啟用前後發生什麼
啟用前,模型只知道 Skill 的名稱和描述。啟用後,模型會得到:
SKILL.md正文。- Skill 目錄結構。
- 讀取 Skill 目錄內
scripts/、references/、assets/的許可權。 - Skill 中宣告的流程、約束和資源使用方式。
所以“看得到 Skill”只代表發現成功,不代表它已經影響當前回答。真正生效的證據是:本次任務觸發了啟用確認,並且回答遵守 Skill 的流程。
啟用會有 consent 流程,使用者會看到 skill 名稱、用途和目錄訪問範圍。確認後,Gemini CLI 才把正文和資源注入會話。第三方 Skill 的風險也在這裡:一旦確認,模型就能讀取該 Skill 目錄裡的指令碼、參考資料和資源。
驗證方式
skills list能看到。- 狀態是 enabled。
- 當前任務確實觸發了對應 skill。
- 輸出符合 skill 的輸入輸出契約。
- Skill 內指令碼或參考資料按預期被讀取。
排錯
| 現象 | 檢查 |
|---|---|
| list 看不到 | 安裝路徑或 link 路徑 |
| 看得到但不觸發 | 觸發描述是否太模糊 |
| 觸發後輸出亂 | skill 說明是否缺輸入輸出 |
| 和專案規則衝突 | 對齊 GEMINI.md 和 skill 邊界 |
| 驗證層級 | 透過標準 |
|---|---|
| 發現 | /skills list 能看到正確 scope |
| 啟用 | 狀態是 enabled,reload 後仍存在 |
| 觸發 | 明確任務會彈出啟用確認 |
| 生效 | 回答遵守 Skill 流程和輸出格式 |
| 資源 | 需要時能讀取 scripts / references / assets |
觸發除錯方法
先寫一個非常明確的測試 prompt,例如“請使用 code-reviewer skill 審查當前 staged diff”。如果這樣能觸發,說明安裝和 reload 沒問題,後續再最佳化 description 讓自然語言請求也能命中。如果明確點名仍不觸發,先檢查 scope、停用狀態和路徑。
不要透過把大段觸發詞堆進 SKILL.md 正文來解決觸發問題。模型啟用前看不到正文,觸發質量主要由 description 決定。
啟用成功後還要看輸出是否真的改變:有沒有使用 Skill 的固定步驟、是否讀取了需要的參考資料、是否按約定格式收尾。只看到“我會使用這個 Skill”這句話,不算驗收透過。
如果只是想強制使用某個流程,最穩的方法不是堆觸發詞,而是直接點名任務和 Skill 名稱,然後觀察是否出現啟用確認。沒有確認就沒有真正載入;有確認但輸出不按流程走,問題在 SKILL.md 本身。
接下來去哪
Subagents
Skill 是給當前 agent 加能力;複雜委託繼續看 subagents。
Agent Skills
回看 Skill 生命週期、發現層級和管理命令。
Skills 最佳實踐
觸發不穩定時,優先改 description 和邊界。