更多的是在工程上的革新,而不是功能上的革新。
Agent Skills 規(guī)范是 Anthropic 在 Claude Code 落地的標(biāo)準(zhǔn)化概念(2025-10),目前作為跨平臺開放標(biāo)準(zhǔn)(2025-12)。
- 可遷移:通用標(biāo)準(zhǔn)規(guī)范,適配不同 Agent。
- 抽象化:解決需要為每個專用領(lǐng)域微調(diào)對應(yīng)模型的問題,將專業(yè)技能抽象為可被提取到外部的腳手架能力,適配當(dāng)前多模態(tài) LLM 的發(fā)展趨勢 (MCP、Skill)。
- 可預(yù)測:支持可重復(fù)的工作流程,提供清晰的任務(wù)和指令,讓 Agent 流程規(guī)范化建設(shè)。
- 可組合:多個 Skill 之間可以組合成工作流完成復(fù)雜任務(wù)。
- 漸進式披露:在開始時只會加載 SKILL.md 名稱(name)和描述(description)到上下文中,只有當(dāng)名稱和描述符合 AI 調(diào)用需求時,才會去讀取 SKILL.md 主體內(nèi)容進行分析。
- 按需加載:外部資源時按需加載;腳本執(zhí)行時在獨立上下文中執(zhí)行,不會引入額外內(nèi)容污染上下文。
最佳實踐
Skill 標(biāo)準(zhǔn)會逐步演進,所以下面的內(nèi)容可能會過期。
目前感覺各家編程助手對 Skills 的理解規(guī)范都不一致,這里是參考了 Claude Code 的教程規(guī)范。
在 .claude/skills 或 .cursor/skills目錄下聲明文件。
SKILL.md 元信息(Front Formatter)
名稱(name):
- 最大 64 個字符。
- 只包含小寫字符、數(shù)字、連字符(hyphens)。
- 不要把連字符作為開始和結(jié)束符號。
- 必須匹配目錄名稱。
- 使用動名詞形式(gerund form,即 ing 結(jié)尾)。
描述(description):
- 最大 1024 字符且非空。
- 描述能做什么(what)、什么時候使用(when)。
- 包含關(guān)鍵詞,幫助編程助手理解能處理的相關(guān)任務(wù)。
其他 Front Formatter(適配中):
- 版權(quán)文件(license):提供版權(quán)名稱(MIT、BSD 等)或描述版權(quán)信息的文件。
- 兼容性(compatibility):最大 500 字符,描述環(huán)境要求。
- 元數(shù)據(jù)(metadata):任意鍵值對信息。
- 允許內(nèi)置工具(allowed-tools):通過分隔符列出的允許使用的內(nèi)置工具(如 BASH、WRITE、READ)。
SKILL.md 主體內(nèi)容
格式:無固定格式要求,根據(jù)自己需要編寫(Markdown)。
推薦編寫內(nèi)容:
- 執(zhí)行步驟:Step1、Step2,步驟盡量切割清晰。(步驟)。
- 輸入輸出格式,或給出輸入輸出示例(樣例)。
- 常見邊界條件和情況(Common edge cases,約束條件)。
內(nèi)容結(jié)構(gòu):
- 內(nèi)容盡量精簡:建議 500 字符以內(nèi);具體細(xì)節(jié)放到單獨 Markdown 文件中,SKILL.md 只展示基礎(chǔ)信息、鏈接與領(lǐng)域相關(guān)內(nèi)容(domain-specific content)。
- 單層引用:存在多層級引用時,SKILL.md 只保留一級文檔的引用;二級由一級文檔內(nèi)部引入,不寫在 SKILL.md 中。
# 這里是文檔引用層級,不是目錄結(jié)構(gòu)
SKILL.md # 核心文件:記錄技能清單
├─ JS.md # SKILL.md 引用(一級)
│ └─ ES6.md # JS.md 引用(二級)
└─ React.md # SKILL.md 引用(一級)
└─ Hooks.md # React.md 引用(二級)
- 保持 SKILL.md 簡潔(clear and concise)、術(shù)語一致性(consistent terminology)。
- 所有系統(tǒng)下文件路徑均使用正斜杠(forward slashes)。
- 保證執(zhí)行步驟盡量可預(yù)測,即用戶輸入信息可以得到想要的輸出結(jié)構(gòu)。
內(nèi)容主題
自由度考量
- 高自由度(High freedom):基于文本的通用指令,多種實現(xiàn)方法均有效。
- 中自由度(Medium freedom):指令包含可自定義的偽代碼、代碼示例或代碼模式;存在推薦模式,但允許一定變體。
- 低自由度(Low freedom):指令指向特定腳本,須遵循固定執(zhí)行順序。
復(fù)雜度考量
- 文檔切分、步驟切分,保證流程清晰。
- 保留技能單一整潔,通過工作流模式來構(gòu)建整體業(yè)務(wù)。
目錄
在 skills 下面有三個固定的目錄組成(感覺目前只是規(guī)范,沒有特別要求)
-
script(需執(zhí)行的腳本):
- 腳本結(jié)構(gòu)整潔,依賴樹清晰,可以在腳本開頭添加注釋信息。
- 執(zhí)行異常時,給出有用的錯誤輸出。
-
references(可閱讀的文檔引用):
- 盡量引入個人文檔,文檔內(nèi)可以包含可參考的其他文檔。
- 單份文檔超過 100 行時,可在文件開頭編寫目錄,便于 AI 快速獲取相關(guān)信息,也可以在開頭添加概覽,便于 AI 快速理解文檔的作用。
-
assets(資源文件):
- 模板:文檔模板、配置模板,通過參數(shù)與注釋補充使用說明。
- 圖片:logo、各類圖片資源。
- 數(shù)據(jù)集:參數(shù)、數(shù)據(jù)表等。
.claude/skills/my-task-agent/
├── SKILL.md # 技能的身份標(biāo)簽(Meta & Trigger)
├── scripts/ # 可執(zhí)行邏輯 - 按需執(zhí)行
│ ├── main.py
│ └── helper.sh
├── assets/ # 可使用資源 - 按需加載
│ ├── config_template.yaml
│ ├── logo.png
│ └── prompt_snippet.txt
└── references/ # 可參考的文檔 - 局部 RAG 按需讀取
└── style_guide.md # 代碼或文案風(fēng)格參考
測試
skill 創(chuàng)建好之后,需要通過不斷測試來進行迭代和完善
測試模板內(nèi)容:與日常寫測試一樣,測試其可預(yù)測性。
- input:輸入。
- output:輸出。
- files:測試數(shù)據(jù)集,可以指定文件路徑,或者 prompt 測試集。
- expected behavior:期望達(dá)到的行為。
MCP 與 Agent Skills 的區(qū)別
- MCP 與 Agent Skills 均用于拓展 Agent 能力。
- MCP:向 Agent 提供數(shù)據(jù)。
- Agent Skills:指導(dǎo) Agent 如何處理數(shù)據(jù)。
對于 Agent Skills,可結(jié)合 MCP、SubAgent 與其他 Skill 構(gòu)建完善的工作流。
總結(jié)
Agent Skills:
- 將過去拆解的流程和資源集成到統(tǒng)一的規(guī)范技能中
- 通過按需加載形式解決上下文污染和上下文過長的問題
- 提供標(biāo)準(zhǔn)規(guī)范,將專業(yè)領(lǐng)域內(nèi)容抽象為單一的技能流程
- 使執(zhí)行流程變得可預(yù)測,符合我們?nèi)粘i_發(fā)的輸入輸出需求