微軟.NET團隊最近公佈咗一個實驗成果:將 AI 代理技能(Agent Skills,即寫喺 SKILL.md 檔案入面、俾 AI 代理讀取嘅操作指引)封裝進 NuGet 套件,令函式庫開發者發布新版本時,可一併隨附對應嘅使用指引。
點解要將技能放喺 NuGet
背景係咁:AI 編程代理(coding agent)寫代碼時,有時唔清楚某個函式庫最新嘅 API 係點用。微軟嘅想法係,既然每個函式庫版本嘅寫法唔同,就應該由開發者本身,喺每個版本入面寫清楚「呢個版本應該點用」,俾代理讀取。微軟佢哋自己用一個叫 Markout 嘅函式庫做示範,入面封裝咗五個技能,涵蓋輸出格式、內容組合等情境。
點用、點限制
技術上,開發者執行 dotnet restore 時,NuGet 會將相依套件下載到本地快取,SKILL.md 會一併到位。微軟同時提供咗兩個配套命令:
dotnet-inspect:檢查某個 NuGet 包或相依套件入面有咩技能,列出名稱、檔案位置同説明,仲可以讀出完整內容。dotnet-package-skills:掃描專案目前使用嘅包,將技能檔複製到.agents/skills目錄,俾開發團隊納入 Git 版本控制。
不過微軟提醒,下載咗包唔代表 AI 代理會自動使用入面嘅技能,代理本身要揾到讀取該檔案,或透過工具匯入。另外,函式庫更新版本後,開發者仲要手動核對技能有冇跟住更新。
效果唔一定如預期
微軟測試咗呢個做法對不同 AI 模型嘅影響,結果係能力較強嘅模型加入技能後改善有限,但較弱模型有可能未能穩定遵循指引;同時,如果技能內容寫得唔得,反而可能增加 token 消耗,即係話開發者要自己評估到底值唔值得。
安全風險唔容忽視
最關鍵嘅一點:NuGet MCP 目前仍未整合技能支援,微軟話會後續加入。而由於 AI 代理有可能按照 SKILL.md 內容執行操作,微軟特別提醒開發者要留意包嘅來源,防止有人透過惡意技能檔做新的供應鏈攻擊。
阿調搞兩下:將使用手冊打包入去俾 AI 讀,聽落合理,但真正問題係「誰寫呢份手冊、寫得幾準」。開發者寫錯、寫漏、寫唔更新,代理照樣照做,錯嘅代碼就照樣寫出。一個 SKILL.md 可以教 AI 做嘢,亦可以教 AI 做壞嘢,呢個安全風險微軟自己都講明,唔係小事。




