聊聊Agent Skills

背景

我們曾經(jīng)認為不同領域的 Agent 會有很大的不同,每個 Agent 需要自己的工具和支撐結(jié)構(gòu),這意味著每個領域都需要一個單獨的 Agent:

different-domain-agent.png

當然,每個領域的定制化非常重要,但實際上底層的 Coding Agent 比我們想象的要通用的多。我們意識到,代碼不僅僅是一個領域,更是通往數(shù)字世界的通用接口。

簡單來說,代碼就是我們所需要的一切!

Code is all you need

我們常用的 Cursor、Claude Code 等 Coding Agent 就是一個通用 Agent,而基于通用 Agent 去構(gòu)建各個領域的用例就是我們正在邁進的一個新范式:


new-pattern.png

這種新范式使 Agent 與運行時環(huán)境之間的耦合變得更緊密。假如你要生成一份財務報告,Agent 會先調(diào)用工具獲取數(shù)據(jù),接著在文件系統(tǒng)中預處理這些數(shù)據(jù),然后調(diào)用 Python 腳本進行分析,最后調(diào)用 Python 腳本將洞見整合并輸出為 md 格式的文件。在整個過程中,核心的支撐結(jié)構(gòu)突然變得像 bash 和文件系統(tǒng)一樣精簡,這非常具有可擴展性。

但我們很快就會遇到另一個問題,就是領域?qū)I(yè)知識。

你希望誰來幫你報稅?是 Mahesh 這個具有 300 智商的數(shù)學天才,還是 Barry 這個具有豐富經(jīng)驗的稅務專家?

tax-expert.png

你大概率會選擇 Barry,因為報稅需要的是領域?qū)<业姆€(wěn)定執(zhí)行,而不是天才的即興推導。

但現(xiàn)在的 Agent 恰恰更像 Mahesh——推理能力強,能舉一反三,遇到實際工作中卻經(jīng)常卡在三件事上:

  • 缺背景:組織里的約定、歷史決策、合規(guī)紅線,模型默認不知道
  • 難沉淀:同類任務反復做,輸出漂移,質(zhì)量靠人盯
  • 不長記性:這次踩過的坑,下次還會踩

這就是 Anthropic 提出 Agent Skills(智能體技能)的原因。

什么是 Agent Skills

概念上來說,Agent Skills 是給 Agent 的“工作手冊”或“SOP(標準作業(yè)程序)”。它將領域?qū)I(yè)知識、工作流程和最佳實踐固化下來,讓一個通用的 Agent 能夠在需要時動態(tài)加載,從而化身為領域?qū)<摇?/p>

形態(tài)上來說,Agent Skills 是有組織的文件集合,為 Agent 打包可組合的流程知識,還可以包含大量腳本作為工具。換句話說,技能就是文件夾,這種簡潔是有意為之,天然支持 git 版本管理、模塊化組合和團隊共享。我們希望無論是人還是智能體,只要有一臺電腦,都能創(chuàng)建和使用技能。

你可以創(chuàng)建或復用很多技能,同時每個技能可以包含大量信息。我們希望保護上下文窗口,這樣就能一次性容納數(shù)百個技能,并讓它們實現(xiàn)真正可組合。

如何在一個上下文窗口容納數(shù)百個技能呢?我們需要一種更先進的知識封裝和調(diào)用機制。這種機制,應該能讓我們的領域?qū)I(yè)知識像一個個獨立的“知識插件”一樣存在,只有在 AI 處理相關(guān)任務時,才被精準地、動態(tài)地、高效地加載進來。

這種機制就是“漸進式披露”,決定了 Agent Skills 的三層架構(gòu):

agent-skills-arch.png
  • 第一層:元數(shù)據(jù)層(Metadata)——每個技能只暴露名稱和一句話描述,相當于索引卡片。Agent 啟動時一次性掃描所有卡片,成本極低。
  • 第二層:指令層(Instructions)——即 SKILL.md 的主體內(nèi)容,包含核心工作流程、工具說明和注意事項。只有當 Agent 判斷某個技能與當前任務相關(guān)時,才會加載這一層。
  • 第三層:資源層(Resources)——詳細的參考手冊、示例、腳本和模板等。只有在 Agent 執(zhí)行 SKILL.md 的過程中真正需要時,才按需讀取或運行資源。當運行腳本時,只有腳本的最終輸出結(jié)果會進入上下文,而腳本代碼本身不會。這避免了將冗長的代碼注入 Prompt,進一步節(jié)省了寶貴的上下文空間。

這就是漸進式披露的核心思路:不是一股腦把所有知識塞進上下文,而是逐層按需加載——先掃索引、再讀指南、最后查資料或運行腳本。每一層都充當下一層的"門衛(wèi)",只有通過了才會繼續(xù)深入。這樣即使注冊了數(shù)百個技能,實際占用的上下文窗口也只是當前任務真正需要的那一小部分。

以技能 pptx 為例,其目錄結(jié)構(gòu)如下:

├── SKILL.md                    # 第一層 + 第二層:元數(shù)據(jù) & 核心指令
├── LICENSE.txt
├── html2pptx.md                # 第三層:從零創(chuàng)建 PPT 的詳細參考
├── ooxml.md                    # 第三層:編輯既有 PPT 的詳細參考
├── scripts/                    # 第三層:工具腳本
│   ├── html2pptx.js            #   HTML → PPTX 轉(zhuǎn)換
│   ├── inventory.py            #   提取文本清單
│   ├── rearrange.py            #   幻燈片重排
│   ├── replace.py              #   批量替換文本
│   └── thumbnail.py            #   生成縮略圖網(wǎng)格
└── ooxml/                      # 第三層:OOXML 底層工具 & Schema
    ├── schemas/                #   Office Open XML 標準定義
    │   └── ...                 #   (20+ .xsd 文件)
    └── scripts/                #   打包/解包/校驗腳本
        ├── pack.py
        ├── unpack.py
        ├── validate.py
        └── validation/

對照三層架構(gòu)來看這個例子:

層級 對應內(nèi)容 何時加載
元數(shù)據(jù)層 SKILL.md 頭部的 YAML front matter:name: pptxdescription: "Presentation creation, editing..." Agent 啟動時掃描,僅幾十個 token
指令層 SKILL.md 的正文:概述、工作流程、設計原則、代碼規(guī)范等 用戶請求涉及 PPT 時,整份讀入
資源層 html2pptx.mdooxml.md、scripts/ 目錄下的所有腳本和 ooxml/schemas/ 僅在 SKILL.md 中被引用且執(zhí)行需要時,才按需讀取或運行

可以看到,一個技能可以包含大量內(nèi)容(這個技能有 56 個文件),但真正進入上下文窗口的,始終只是當前任務步驟所需的那一小片。

Agent Skills 將 Prompt Engineering 從一次性的“手工作坊”模式,提升到了可復用、可維護的“工業(yè)化生產(chǎn)”階段:


prompt-to-skills-evolution.png
  • 高度復用:一個編寫良好的 Skill(例如,“從財報中提取關(guān)鍵指標”)可以在無數(shù)個不同的任務和 Agent 中被復用,避免了為每個相似任務重復編寫和調(diào)試復雜 Prompt 的人力成本。
  • 簡化維護:當一個流程或 API 發(fā)生變化時,開發(fā)者不再需要在成百上千個散落的 Prompt 中進行“查找替換”,而只需更新一個對應的 Skill 文件即可。這種集中式的管理極大地降低了維護成本和出錯風險。
  • 促進協(xié)作:Skills 的模塊化特性使得團隊協(xié)作變得更加容易。不同領域的專家可以獨立開發(fā)和貢獻各自的 Skill,最終組合成一個強大的 Agent,實現(xiàn)了知識的沉淀和共享。

Agent Skills 是如何工作的

了解了 Agent Skills 是什么,我們再來看看它是怎么工作的。這就像拆開一臺機器,看看里面的齒輪是怎么轉(zhuǎn)動的

啟動時的"登記注冊"

當你早上打開 Cursor 或 Claude Code 時,AI 做的第一件事不是等你說話,而是悄悄地掃描技能目錄。

以 Cursor 為例,它會掃描兩個位置:

  • ~/.cursor/skills/——個人技能目錄,存放你自己積累的技能,跨項目通用
  • {project}/.cursor/skills/——項目技能目錄,存放團隊共享的技能,隨代碼庫一起版本管理

掃描的過程很快,因為只讀取每個 Skill 的"名片"(元數(shù)據(jù)):技能叫什么名字,能做什么事情。就像你進入一個圖書館,先看看目錄板,了解有哪些分類的書。

這個過程只需要幾百個 tokens,幾秒鐘就完成了。

AI 在心里建立了一個索引:

  • PDF 相關(guān)的任務 → 調(diào)用 PDF Skill
  • PPT 相關(guān)的任務 → 調(diào)用 PPTX Skill
  • ......

這個索引會被緩存起來,除非你添加、修改或刪除了 Skill,否則不需要重新掃描。系統(tǒng)會監(jiān)聽文件變化,一旦檢測到 Skill 有變化,會自動更新索引,連重啟都不需要。

對話時的"智能匹配"

登記注冊只是準備工作,而真正有意思的事情發(fā)生在你開口說話的那一刻。

假設你對 Cursor 說了一句:

"幫我做一份關(guān)于 AI 發(fā)展趨勢的演示文稿,要好看一點。"

這句話看起來很簡單,但 Agent 在幕后瞬間完成了好幾件事。

第一步:意圖識別——你到底想干什么?

Agent 先理解你的意圖:用戶想創(chuàng)建一份 PPT。這不是寫代碼,不是分析數(shù)據(jù),也不是處理 PDF,而是做演示文稿。

第二步:技能匹配——翻索引卡片

還記得啟動時建立的那個索引嗎?Agent 拿著"創(chuàng)建演示文稿"這個意圖,去索引里找對應的技能。

一翻就找到了:

pptx —— Presentation creation, editing, and analysis.

匹配成功。就像你去圖書館找"烹飪"類的書,目錄板上清清楚楚寫著在 3 樓 B 區(qū)。

第三步:加載指令——打開"操作手冊"

匹配到技能后,Agent 立刻讀取 SKILL.md 的完整內(nèi)容(第二層:指令層)。

這份文件就是一本"操作手冊",告訴 Agent:

  • 創(chuàng)建新 PPT 時要用 html2pptx 工作流
  • 動手寫代碼之前,先分析內(nèi)容、選定配色方案和設計風格
  • 只能使用 web-safe 字體(Arial、Georgia、Verdana……)
  • 布局要遵循視覺層次:大標題用 72pt,正文用 11pt
  • 圖表和表格絕不能堆在文字下面,要用雙欄或全幅布局
  • 做完之后要生成縮略圖,自己檢查有沒有文字溢出、對比度不夠等問題

注意,這時候 Agent 并沒有加載所有細節(jié)。它只是知道了"大方向怎么走",具體的技術(shù)參考還沒打開。

第四步:按需深入——用到什么查什么

當 Agent 真正開始動手時,才會觸發(fā)第三層(資源層)的加載。比如:

  • 需要把 HTML 轉(zhuǎn)成 PPT?去讀 html2pptx.md,里面有完整的 API 語法和格式規(guī)則
  • 需要選配色?SKILL.md 里列了 18 套精選配色方案,Agent 會根據(jù)"AI 發(fā)展趨勢"這個主題挑一套合適的——也許是"Deep Purple & Emerald",科技感十足
  • 需要轉(zhuǎn)換腳本?直接調(diào)用 scripts/html2pptx.js 來執(zhí)行

這就是漸進式披露在實戰(zhàn)中的樣子:不是一開始就把 56 個文件全部塞進大腦,而是走到哪一步,就打開哪一份資料。

整個過程,打個比方

想象你是一個新來的實習生,接到任務要做一份 PPT。你不會把公司所有的文件都翻一遍,而是:

  1. 先問前輩:"咱們公司做 PPT 有沒有什么規(guī)范?"——意圖識別
  2. 前輩指了指文件柜:"第三個抽屜,那本藍色的手冊。"——技能匹配
  3. 你拿出手冊,翻到"從零創(chuàng)建演示文稿"那一章——加載指令
  4. 做到配色那一步,手冊上寫著"參考附錄 B 的配色表",你翻到附錄 B——按需深入

Agent 做的事情和你一模一樣,只不過它翻得更快,記得更牢。

這個"智能匹配"的過程幾乎是瞬間完成的,你感知不到任何延遲。從你敲下回車的那一刻起,Agent 已經(jīng)知道該用什么技能、該怎么做、該注意什么,剩下的就是執(zhí)行了。

Skills 的柔性設計

有人可能會問:Skills 是不是會限制 Agent 的靈活性?如果環(huán)境不一樣怎么辦?

這就涉及到 Skills 設計的一個巧妙之處:它提供指導,而不是強制約束。

比如,PPTX Skill 推薦使用 html2pptx 工具來創(chuàng)建演示文稿(因為它能實現(xiàn)精確的布局控制),但這個工具需要 Node.js 環(huán)境。

如果你的電腦上沒裝 Node.js,Agent 會崩潰嗎?

當然不會。當 Agent 會發(fā)現(xiàn)環(huán)境中沒有 Node.js,然后自主選擇替代方案,比如用 Python 的 python-pptx 庫。雖然技術(shù)棧換了,但 Agent 還是會遵循 Skill 里的設計原則:配色方案怎么選、布局怎么安排、內(nèi)容怎么組織。

這就像一個廚師拿到了菜譜,菜譜上寫著"用煤氣灶",但廚房只有電磁爐,廚師不會傻乎乎地說"沒法做飯了",而是換用電磁爐,但還是按照菜譜的火候和步驟來做。

Skill 提供的是"道"(原則和思路),Agent 結(jié)合環(huán)境選擇"術(shù)"(具體實現(xiàn))。這種柔性設計,讓技能既有指導作用,又不會因為環(huán)境差異而失效。

如何使用 Agent Skills

理論講得差不多了,現(xiàn)在該動手實踐了。不用擔心,使用 Agent Skills 比你想象的要簡單得多。

五分鐘快速開始

想體驗 Agent Skills,你只需要三步:

第一步:獲取 Skills

Anthropic 在 GitHub 上開源了一些常用的 Skills,包括 PDF 、PPTX 等。

打開終端,運行:

git clone https://github.com/anthropics/skills

幾秒鐘,你就下載了一個技能庫。

第二步:部署 Skills

決定把 Skills 放在哪里,以 Cursor 為例:

  • 如果只是自己用,放到個人目錄:~/.cursor/skills/
  • 如果要團隊共享,放到項目目錄:{project}/.cursor/skills/

比如,你想用 PDF 和 PPTX 技能,當前目錄為項目所在的根目錄:

# 個人使用
cp -r skills/pdf skills/pptx ~/.cursor/skills/

# 團隊共享
cp -r skills/pdf skills/pptx ./my-project/.cursor/skills/

第三步:測試 Skills

打開 Cursor,試試看:

"請幫我寫一個 Agent Skills 的膠片,適合初學者"

Cursor 的執(zhí)行過程:

  1. 我來先讀取相關(guān)的技能文件和已有的內(nèi)容資料。
  2. 現(xiàn)在我有了所有需要的資料。讓我來規(guī)劃并創(chuàng)建這份演示文稿。
  3. 設計方案:這是一個關(guān)于 AI/Agent 技術(shù)的主題,面向初學者,需要現(xiàn)代感、親和力和專業(yè)性并存。我將使用 Deep Purple & Emerald 配色(紫色 #B165FB + 深藍黑 #181B24 + 翡翠綠 #40695B),傳達創(chuàng)新和技術(shù)前沿的感覺,同時保持清晰易讀。
  4. 實現(xiàn)方案:


    todos.png

    ...

最后生成的 pptx 預覽:**

agent-skills-pptx.png

MCP 與 Skill 的關(guān)系

下面列出針對 Prompt、Skills、MCP 三種上下文工程手段的橫向?qū)Ρ龋?/p>

特性 傳統(tǒng) Prompt Agent Skills MCP
作用域 會話級指令,一次性任務 可復用、可插拔的"SOP" 連接外部工具/數(shù)據(jù)源的標準協(xié)議
加載方式 每次對話都需要重復提供 按需自動加載,一次安裝 通過網(wǎng)絡請求實時交互
上下文消耗 全部內(nèi)容一次性加載,成本高昂 漸進式披露,按需加載 每次請求和響應都消耗上下文
可組合性 難以組合和維護 可組合多個 Skills 構(gòu)建復雜工作流 依賴于工具自身的接口設計
專業(yè)化 依賴通用模型能力 賦予模型本身領域?qū)I(yè)知識 訪問外部專業(yè)化工具
可靠性 輸出不穩(wěn)定,依賴模型生成 可通過執(zhí)行確定性代碼保證可靠性 依賴于外部工具的可靠性

MCP 屬于連接層,為 Agent 連接了廣闊的外部世界,把數(shù)據(jù)和工具帶進來。Skill 屬于知識層,為 Agent 裝配了領域?qū)I(yè)知識,按需逐層加載。知識層 Skill 可以依賴連接層 MCP 提供的工具實現(xiàn)更強大的功能。

mcp-skill.png

下面舉一個例子。

場景:分析用戶行為數(shù)據(jù)

數(shù)據(jù)分析 Skill

  • 提供數(shù)據(jù)分析的標準流程(數(shù)據(jù)清洗→探索性分析→可視化→得出結(jié)論)
  • 定義團隊的數(shù)據(jù)可視化規(guī)范(用什么圖表、什么配色)
  • 給出常見分析場景的模板

工具 MCP

  • 連接用戶行為數(shù)據(jù)庫,獲取原始數(shù)據(jù)
  • 調(diào)用數(shù)據(jù)分析工具的 API
  • 把分析結(jié)果存儲到文件系統(tǒng)

工作流程

  1. 你說:"分析一下上周的用戶活躍度"
  2. Agent 匹配到"數(shù)據(jù)分析 Skill",了解分析流程
  3. Agent 通過 MCP 連接數(shù)據(jù)庫,獲取上周數(shù)據(jù)
  4. Agent 按照 Skill 的指導進行分析
  5. Agent 通過 MCP 調(diào)用可視化工具生成圖表
  6. Agent 按照 Skill 的規(guī)范整理分析報告

假如 Agent 是一個廚師,那么 Skill 是菜譜(告訴你怎么做菜),MCP 是冰箱和廚具(提供食材和工具)。只有當 Skill 和 MCP 緊密配合,才能做出一桌好菜。

兩個提示:

  • 對于簡單的技能,可以不調(diào)用工具,或者僅調(diào)用自己攜帶的腳本工具。
  • 在必要時,可以充分利用技能的優(yōu)勢,從而將 MCP 工具封裝為一個 Skill,比如在 Python 腳本中直接實現(xiàn)一個 MCP Client。

總結(jié)

Agent Skills 的核心理念可以用一句話概括:把領域?qū)I(yè)知識裝進文件夾,讓通用 Agent 變成領域?qū)<?/strong>。

掌握 Agent Skills,意味著你開始以一種全新的、更高級的方式來“編程”AI。你不再是為 AI 編寫一次性的“腳本”(Prompt),而是在為它構(gòu)建一個可復用的、可發(fā)現(xiàn)的、不斷成長的“能力庫”。所以,技能的價值很大一部分來自于共享和分發(fā)。

粗略類比一下:模型是處理器,Agent 是操作系統(tǒng),Skills 是應用程序。只有少數(shù)公司構(gòu)建了處理器和操作系統(tǒng),而數(shù)百萬開發(fā)者通過應用程序創(chuàng)造了更大的價值。Skills 正在打開應用程序這一層,每個開發(fā)者都可以發(fā)揮創(chuàng)造力,把領域?qū)I(yè)知識放進文件夾,為自己、他人及全世界解決一個具體問題。

moving-up-the-stack.png

是時候停止重復構(gòu)建 Agent,開始構(gòu)建技能了。

然而,需要警惕的是,我們應該采取一種理性和審慎的態(tài)度對待 Agent Skills 這項重要創(chuàng)新:

  • 不要一切皆 Agent Skills,因為它不是魔法,更不是可以即插即用的“銀彈”。
  • 必須將 Agent Skills 視為代碼,而非文檔,對其進行嚴格的代碼審查、依賴掃描和版本控制,尤其對于第三方的,警惕成本優(yōu)勢背后的“隱性負債”。

隨著技能生態(tài)的成長,Anthropic 認為還需要在以下方向持續(xù)探索:

  • 質(zhì)量保障:像對待軟件一樣對待技能——探索、測試、評估,確保 Agent 在正確的時間加載并觸發(fā)正確的技能,同時衡量輸出質(zhì)量是否達標。
  • 版本管理:清晰追蹤技能的演進以及由此帶來的 Agent 行為變化,保持明確的演變脈絡。
  • 多技能組合:讓多個技能協(xié)同工作,使 Agent 展現(xiàn)出更復雜、更貼合場景的行為。

參考文獻

  • 《Don't Build Agents, Build Skills Instead》,Barry Zhang & Mahesh Murag,Code Summit · Anthropic
  • 《智能涌現(xiàn)的基石:精通Agent Skills,為AI植入專家能力》,Tony Bai,極客時間 · AI 原生開發(fā)工作流實戰(zhàn)
  • 《代碼就是一切:為什么Anthropic不再做"專用Agent"?》,claudecn,微信公眾號 · 架構(gòu)師
  • 《對待 Skills,請理性祛魅》,李顏良,微信公眾號 · AI原生應用
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容