本文根據 VS Code 官方文檔《Use Agent Skills in VS Code》整理,資料核對於 2026-10-11。沒有登入 GitHub 帳號操作,介面入口名稱取自官方文檔原文。Copilot 在 VS Code 裏的基礎設定見《GitHub Copilot 在 VS Code 裏怎麼用》。
適用於誰
- 搜「copilot skills 使用」「copilot skill 是什麼」「copilot skills folder」「copilot skills vscode」的人;
- 已經寫了
copilot-instructions.md,想知道技能和它有什麼不同的人; - 想把 Claude Code 或 Codex 的技能拿到 Copilot 裏用的人。
結論先說
- 技能是「說明、腳本和資源組成的文件夾」,智能體在相關時才加載。官方列出的適用範圍包括 VS Code 裏的 Copilot、Copilot CLI、Copilot 雲端智能體等。
- 項目技能放
.github/skills/,VS Code 同時也讀.claude/skills/和.agents/skills/;個人技能放~/.copilot/skills/,同樣兼容~/.claude/skills/和~/.agents/skills/。 - 調用有兩種:輸入
/選擇技能,或者由 Copilot 根據描述自動加載。兩個 frontmatter 字段可以分別關掉其中一種。 - 和自定義指令的分工:指令是始終生效的編碼規範;技能是按任務加載的專門能力,可以帶腳本和資源。
name必須和文件夾同名,否則技能不會加載。
一、技能放在哪
| 類型 | 目錄 |
|---|---|
| 項目技能(在倉庫裏) | .github/skills/、.claude/skills/、.agents/skills/ |
| 個人技能(用戶主目錄) | ~/.copilot/skills/、~/.claude/skills/、~/.agents/skills/ |
每個技能一個文件夾,裏面有 SKILL.md。
兩條和工作區有關的說明:
- 多根工作區裏出現同名技能時,主根目錄的那一份優先;
- monorepo 裏想讓子目錄打開時也能發現倉庫根目錄的技能,打開設定項
chat.useCustomizationsInParentRepositories。
舊設定 chat.agentSkillsLocations 官方已標註為棄用,把技能挪到上面這些受支持的目錄即可。
二、創建一個技能
官方給了幾個入口:
- 在聊天裏輸入
/skills,打開 Configure Skills 選單; - 點擊聊天視圖裏的 Configure Chat(齒輪圖標),在自定義編輯器的 Skills 標籤頁裏選 New Skill (Workspace) 或 New Skill (User);
- 命令面板裏運行 Chat: Open Customizations;
- 讓 AI 生成:在聊天裏輸入
/create-skill,或者在編輯器裏選 Generate Skill。
也可以直接手動建文件:
.github/skills/
└── webapp-testing/
├── SKILL.md
└── test-template.js
技能目錄裏可以放腳本、模板、示例等文件,在 SKILL.md 裏用相對路徑引用,官方示例寫法是 test template。
三、SKILL.md 的字段
| 字段 | 必填 | 說明 |
|---|---|---|
name | 是 | 小寫字母、數字、連字符;必須和上級目錄同名;最多 64 字符 |
description | 是 | 做什麼、什麼時候用;最多 1024 字符 |
argument-hint | 否 | 作為斜槓命令調用時顯示的參數提示,如 [test file] [options] |
user-invocable | 否 | 預設 true;設為 false 時不出現在 / 選單裏 |
disable-model-invocation | 否 | 預設 false;設為 true 時只能手動用斜槓調用 |
context | 否 | 實驗性;設為 fork 時在子代理裏運行 |
官方特別提醒:通過插件分發的技能會自動加上命令前綴,不要自己在 name 裏加命名空間前綴,否則技能會悄無聲息地加載失敗。
通用寫法見《SKILL.md 怎麼寫》。
四、怎麼調用
- 斜槓命令:輸入
/,選擇技能,後面可以跟補充說明,例如/webapp-testing for the login page; - 自動:技能的描述和任務對得上時,Copilot 自動加載。
兩個字段的四種組合:
user-invocable | disable-model-invocation | 結果 |
|---|---|---|
| 預設 | 預設 | 斜槓可調用,也會自動加載 |
false | 預設 | 只會自動加載 |
| 預設 | true | 只能斜槓調用 |
false | true | 等於停用 |
加載分三級,和開放規範一致:先讀名稱和描述做匹配,再把 SKILL.md 正文讀進上下文,引用到的文件只有在智能體去讀時才加載。
在子代理裏運行(實驗性):frontmatter 裏寫 context: fork,技能會在專門的子代理裏執行,只把最終結果返回給主智能體。官方說明需要在設定裏打開 github.copilot.chat.skillTool.enabled。
五、技能和自定義指令的區別
| Agent Skills | 自定義指令 | |
|---|---|---|
| 用途 | 專門的能力和工作流程 | 編碼規範和準則 |
| 內容 | 說明,加上腳本和資源 | 只有說明 |
| 加載 | 按任務按需加載 | 始終應用,或按 glob 模式應用 |
| 可移植性 | 可以在多個智能體工具之間通用 | 取決於所用的指令格式 |
簡單的判斷:「所有代碼都要遵守」的寫進指令文件,寫法見《copilot-instructions.md 怎麼寫》;「做某類任務時才需要的一整套步驟」做成技能。
六、使用別人分享的技能
官方提到兩個社區來源:github/awesome-copilot 和 anthropics/skills。用法是把對應的技能目錄複製到 .github/skills/,再按需要修改 SKILL.md。
官方的安全提醒有兩條:
- 使用共享的技能之前一定要先審閱;
- 檢查終端命令自動批准的相關設定,因為技能可能帶有要執行的腳本。
具體看什麼,見《Skill 安全嗎:安裝前檢查什麼》。
另外有一個實驗性的技能市場:打開設定項 chat.customizations.marketplace.enabled 後,在自定義編輯器裏選 Discover,從 GitHub Feed 裏挑選並點 Install。官方說明目標位置已有同名技能時不會覆蓋。
七、擴展裏帶技能
VS Code 擴展可以通過 package.json 裏的 chatSkills 貢獻點附帶技能,path 指向技能的 SKILL.md,例如 ./skills/my-skill/SKILL.md。目錄結構是 skills/<name>/SKILL.md,目錄名同樣要和 name 字段一致。
常見問題
Q:技能建好了,/ 選單裏沒有?
按官方文檔能確定的檢查點:name 是否和文件夾完全同名、有沒有設 user-invocable: false、文件是否在受支持的目錄裏、name 裏有沒有自己加前綴。
Q:Copilot CLI 也用同一套嗎?
官方把 Copilot CLI 列在技能的適用範圍裏。CLI 的安裝和基本用法見《GitHub Copilot CLI 怎麼用》,CLI 裏的具體命令以其官方文檔為準。
Q:.github/skills/ 和 .claude/skills/ 選哪個?
只用 Copilot 的團隊放 .github/skills/。團隊裏同時有人用 Claude Code、Codex、Cursor 的,放 .agents/skills/ 或 .claude/skills/ 可以讓多個工具共用一份。
Q:技能沒有自動加載怎麼辦?
先用 / 手動調用確認技能可用,再改描述,見《Skill 不觸發怎麼辦》。
參考資料
- Use Agent Skills in VS Code(VS Code 官方文檔):https://code.visualstudio.com/docs/copilot/customization/agent-skills
- Specification(Agent Skills 官方規範):https://agentskills.io/specification
0 條評論
還沒有評論,來搶沙發~