本文根據 Gemini CLI 官方文檔《Agent Skills》《Creating Agent Skills》整理,資料核對於 2026-10-11。這裏講的是命令行工具 Gemini CLI 裏的技能;Gemini App 裏的 Skills(由 Gems 轉來)是另一套東西,見《Gemini Skills 怎麼寫》。
適用於誰
- 搜「gemini cli skills 使用」「gemini cli skills 安裝」「gemini cli skills location」的人;
- 已經有一批
SKILL.md技能,想在 Gemini CLI 裏複用的人; - 分不清
GEMINI.md和技能該各放什麼的人。
結論先說
- 技能是按需加載的。官方的區分:
GEMINI.md提供常駐的工作區背景,技能只在任務需要時加載,用來讓上下文保持精簡。 - 用戶級目錄是
~/.gemini/skills/,工作區級是.gemini/skills/;兩級都另有一個別名目錄.agents/skills/,並且同一級裏.agents/skills/優先於.gemini/skills/。 - 優先級從低到高:內置技能 → 擴展帶來的技能 → 用戶技能 → 工作區技能。同名時高的覆蓋低的。
- 激活前會問你。模型要用某個技能時會彈出確認,顯示技能名稱、用途和它將訪問的目錄,你同意後才加載。
- 從 Git 倉庫安裝一條命令:
gemini skills install <倉庫地址>。
一、技能的生命週期
官方描述的四步:
- 發現:會話開始時,Gemini CLI 掃描各層目錄,加載每個已啟用技能的名稱和描述;
- 激活:任務和某個技能匹配時,模型調用
activate_skill工具; - 確認:你會看到一個確認提示,包含技能的名稱、用途和它要訪問的目錄;
- 注入:同意後,技能的
SKILL.md正文和文件夾結構加入對話,技能目錄成為允許訪問的路徑。
第四步有個要留意的地方:官方寫明,技能被激活後,模型獲得對整個技能目錄的訪問權,之後可以在你批准的前提下運行其中的腳本。所以確認提示不要習慣性地直接同意,來源不明的技能先看內容。
二、技能目錄與優先級
| 層級(低 → 高) | 位置 |
|---|---|
| 內置技能 | 隨 Gemini CLI 提供 |
| 擴展技能 | 由已安裝的擴展帶來 |
| 用戶技能 | ~/.gemini/skills/ 或 ~/.agents/skills/ |
| 工作區技能 | .gemini/skills/ 或 .agents/skills/,隨版本控制共享 |
- 同名技能,高層級覆蓋低層級;
- 在用戶級或工作區級內部,
.agents/skills/優先於.gemini/skills/。
.agents/skills/ 這個別名的好處是可以和其他工具共用一份:Codex、Cursor 等也讀這個目錄,團隊裏用不同工具的人不必各維護一套。
三、會話裏的 /skills 命令
| 命令 | 作用 |
|---|---|
/skills list [all] [nodesc] | 列出已發現的技能;all 連內置技能一起列出,nodesc 隱藏描述 |
/skills link <path> [--scope user\ | workspace] |
/skills enable <name> | 啟用某個技能 |
/skills disable <name> | 停用某個技能 |
/skills reload(或 /skills refresh) | 重新掃描各層目錄,刷新技能列表 |
enable 和 disable 預設作用於用戶範圍;只想對當前項目生效時加 --scope workspace。
新建或修改了技能文件之後,運行一次 /skills reload,再用 /skills list 確認它出現在列表裏。
四、終端裏的 gemini skills 命令
官方頁面給出的三條示例:
bash
gemini skills list --all
gemini skills install https://github.com/user/repo.git --consent
gemini skills uninstall my-skill --scope workspace
install接受 Git 倉庫地址或本地目錄;--scope:user(全局,預設)或workspace(只在當前項目);--path:技能不在倉庫根目錄時,指定它在倉庫裏的子目錄;--consent:跳過安裝時的安全確認。
--consent 是給自動化腳本用的。手動安裝別人的技能時不要加,留着那一步確認;更穩妥的做法是先把倉庫克隆下來讀一遍,再從本地目錄安裝。檢查要點見《Skill 安全嗎:安裝前檢查什麼》。
五、創建自己的技能
方式一:用內置的 skill-creator。 官方稱這是最快的辦法:直接用自然語言讓 Gemini CLI 幫你做一個技能,它會搭好文件夾和文件。
方式二:手寫。
- 新建一個目錄,工作區技能放在項目的
.gemini/skills/下並提交,個人技能放在~/.gemini/skills/下; - 在目錄裏創建
SKILL.md,frontmatter 必須有name和description。官方把description標為關鍵,因為 Gemini 靠它決定何時激活; - 需要的話加上
scripts/、references/、assets/。
官方示例:
markdown
---
name: code-reviewer
description: Reviews code changes for bugs and style. Use when the user asks to "review" code.
---
Instructions for the agent go here.
- 在會話裏運行
/skills,確認技能已被正確加載。
技能裏帶腳本時,模型在技能激活後可以運行它們,官方舉的例子是 node .gemini/skills/code-reviewer/scripts/review.js index.js,執行前仍需要你批准。
SKILL.md 的詳細寫法見《SKILL.md 怎麼寫》,目錄怎麼拆見《Skill 目錄結構怎麼組織》。
六、分享技能
官方列了三種途徑:
- 放進倉庫:把技能提交到項目的
.gemini/skills/,同事拉代碼就有了; - 做成獨立的 Git 倉庫:別人用
gemini skills install <url>安裝; - 打包:官方文檔提到用
node scripts/package_skill.cjs <path/to/skill>生成一個.skill壓縮包;也可以把技能放進擴展裏一起分發。
常見問題
Q:技能放好了但列表裏沒有?
依次檢查:文件名是不是 SKILL.md、frontmatter 裏 name 和 description 是否齊全、目錄層級是否為「技能目錄 / 技能名 / SKILL.md」、是否被 /skills disable 停用過,然後運行 /skills reload。
Q:技能在列表裏,但模型不用它?
問題通常在 description。寫清做什麼和什麼時候用,思路見《Skill 不觸發怎麼辦》。
Q:.gemini/skills/ 和 .agents/skills/ 裏有同名技能,用哪個?
按官方說明,同一層級裏 .agents/skills/ 優先。
Q:Claude Code 的技能能用嗎?
格式都遵循同一份開放規範,把技能文件夾複製到上述目錄即可加載。Claude Code 專有的 frontmatter 字段在這裏不起作用。Gemini CLI 的官方文檔沒有把 .claude/skills/ 列為掃描目錄。
參考資料
- Agent Skills(Gemini CLI 官方文檔):https://geminicli.com/docs/cli/skills
- Creating Agent Skills(Gemini CLI 官方文檔):https://geminicli.com/docs/cli/creating-skills
- Specification(Agent Skills 官方規範):https://agentskills.io/specification
0 條評論
還沒有評論,來搶沙發~