那些你可能知道的 skills 兩三事

10 min

大家好,我是 Maple,上星期三很榮幸地能夠到 Generative AI 年會小聚分享自己對 skills 的一些見解。這次我第一次參加小聚 XD 短短的 10 分鐘要講一件事,真的是比花 60 分鐘講一件事還要困難,因為塞了太多想講的東西,基本上從頭到尾語速都是用飆的,但也是因為有這次的經驗,讓我知道短講該呈現什麼樣的東西,很感謝 Muyueh Lee 給我這個機會,也認識了一些新朋友和前輩

2026 年的 4 月,對大家而言 Skills 早已不是什麼新東西,但為什麼還要特地為 skills 開專場?除了看大家怎麼把自己的工作流變成 skills 之外,我想從 skills 的本質出發,再帶大家比較少被提到的 skills 的機制

這篇文章整理的是簡報後半段的內容,完整簡報放在文章開頭可以直接播放,如果你對 skills 的出現、本質和機制有興趣的話,歡迎你把這篇讀下去:)

skills 是什麼?

Skills 從 2025 年底出現迄今,大家多多少少都有一些自己的 skills ,應該也很熟悉了。但當被問到 skills 是什麼的時候,該怎麼解釋呢?我想大家的認知會是,skills 可能是一系列的 markdown 文件、重複指令的 shortcuts、或是別人寫好的 workflow。但我想先帶大家回到 skills 出現之前,那時候如果你有在使用 Claude Code 開發的話,當時有一件經常令人詬病的事:Claude 非常的愛寫 .md 以及一次性的 scripts。

Claude 很愛寫… 一堆 markdown 文件 一次性的 scripts

skills 出現之前,Claude 就很愛寫一堆 markdown 文件跟一次性的 scripts

為什麼要提 skills 出現之前 Claude 的行為?因為把 .md 和 scripts 拼起來,不就是我們現在的 skills 嗎?既然 skills 好像不是什麼新東西,那 skills 的本質是什麼?

skills = Context Engineering

我認為 skills 的本質是 Context Engineering,再加上一點點的機制。前面提到 skills 就是把 AI 很愛寫 .md 跟 scripts 打包成一起,還有加上一點點的機制(像是漸進式揭露),但為什麼這樣就說是 Context Engineering?可以從很愛寫 .md 跟 scripts 開始談起

AI 會一直寫 .md 的原因是 context window 終究有限,所以 LLM 想透過 .md 作為外部記憶紀錄下來,日後有個東西可以查看,避免忘記要怎麼做,做了什麼,以及為什麼這樣做。還有與其讓 AI 自己寫 .md 檔;至於 scripts,則是因為 AI 終究有隨機性,但 scripts 是穩定的,與其自己每次都重新生成指令,還有可能寫錯要重寫一次,不如寫成執行檔案,只要呼叫檔案,每次都能得到穩定的結果

Context Engineering? Context 終有限,LLM 不可能記住所有事情;LLM 具有隨機性,每次生成的 bash command 不盡相同

Claude 愛寫 .md 跟 scripts 的兩個原因:context 有限,還有生成有隨機性

所以 skills 的出現,只是將這件事情交還給使用者,因為與其讓 AI 自己寫一堆的 .md 跟 scripts 搭配,自己決定「哪些是重要的所以要記下來」,不如讓使用者有意識地去做這件事情,因為使用者絕對比 AI 來的清楚哪些事情是需要記錄的重點

想要把 skills 玩好,本質上就是把 Context Engineering 給玩好

skills 的機制

但具體來說該怎麼透過 skills 來完成 Context Engineering 呢?承前所述,skills 的本身有一些機制,我認為要先從認識這個機制開始。大家在寫 skills 的時候,大部分都是只寫 name 以及 descriptions,包含 superpowers 這個相當知名的 skills 也是。

GitHub obra/superpowers skills/brainstorming/SKILL.md,frontmatter 只有 name: brainstorming 與 description

superpowers 的 brainstorming skill,frontmatter 只有 name 跟 description

但其實 skills 可以寫的欄位遠遠不止這兩個,可以設定要不要讓 AI 觸發,或是只能使用者觸發,要不要設定 hooks、或是在特定路徑才能看到 skills,甚至可以把 skills 當成一個任務,只要設定 context: fork 以及 model,就能透過 sub-agent 去執行,執行完再把結果回傳給 parent agent

deep-code-review skill 的完整 frontmatter:disable-model-invocation、allowed-tools、paths、context: fork、agent: Explore、model: sonnet、effort: high、hooks

skills 的 frontmatter 能寫的欄位:能不能讓模型觸發、允許的工具、路徑、hooks,以及 context: fork 搭配 agent 跟 model

fork agent skills 跟單純的 skills 有什麼差別?

前面提到,Skills 的本質我認為是 Context Engineering,我以 code review 來舉這兩個的差異。

如果今天單純設定 skills,最直接的問題是污染上下文和球員兼裁判。可能整個對話前面都在討論跟開發,現在要接著做 code review,等同在自己找自己的問題,有時候會有盲點,就像要自己檢查自己的數學算式一樣,效果可能不比別人來檢查的好,就像沒有 AI 的時候,改 code 發 PR 的人,跟 review approved 的人通常也是不同的

如果是透過 fork agent skills 的話,就像你開了一個新的 session 跑 code review,效果我認為會比較好,也能隔離上下文,避免上下文污染。但當然缺點是比較燒 token,畢竟多起了一個 sub-agent。

code-review: skills vs fork agent skills,下方 Context: fork 的 sub-agent 標註「比較燒 token」

上面是一般 skills,code review 直接在同一個 context 裡跑;下面是 context: fork,另開一個 sub-agent 跑,隔離上下文但比較燒 token

兩者的使用情境差異

以我自己來說,一般的 skills 我通常會用在

  • 我很常下重複一直下的 prompt,比如「幫我寫一個清楚的 commit message」
  • 幫 Claude 做能力擴充,比如我有 reddit-search 以及 dcard-search 兩個 skills ,讓 Claude 能像人類一樣去逛論壇幫我找看法
  • 按需載入才需要的背景知識,比如怎麼寫出好的 prompt,這是需要下指令給 sub-agent 才需要用到的,一直存在就佔用 context

而 fork agent skills 我會用在通用性的重複任務,跟不在意過程只在意結果的狀況,就像 code review,通常我只在意我的 code 哪邊有問題,但是過程中讀了哪些檔案我其實不太在乎,就好比我們平常跟 Claude 溝通時,也只會問「這個 feature 在做什麼?」,我們只在乎答案,其實不太在意他讀了什麼

skills vs fork agent skills:一般 skills 用於常用 prompt 的快捷鍵、能力擴充(/wt、/reddit-search)、按需載入的背景知識;Context: fork 用於通用性的重複任務、不在意過程只在意結果

兩種 skills 我各自用在哪些情境

要隔離上下文那不如 sub-agent?

Sub-agent 跟 fork agent skills 其實可以搭配使用,skills 有一個 agent,就是用來指定用的,以我自己來說,sub-agent 會是一個帶有 domain knowledge 的設定,也就是有你先寫好的 system prompt,直接讓 Claude 用來呼叫就像你在下 prompt 一樣,每次都不太一樣;但搭配 fork agent skills,會變成像一組預設好的指令+預設好的專家,只要你想呼叫這個 sub-agent,透過這個 skills 去觸發(不論是使用者還是 Claude),下的 prompt 都會相同

sub-agent and fork agent skills:sub-agent 帶 Domain 提示詞 + 專案 skills(fork agent) 寫專案知識及目標

sub-agent 帶 domain 提示詞,fork agent skills 寫專案知識跟目標,兩個加起來用

結語

最後想大家分享的是,skills 是需要管理的,鼓勵你用完別人的 skills 然後爆改成自己的,畢竟 skills 也可以視為工作流的一部份,每個人都一定有自己最適合的工作流,像我自己就有把官方的 simplify 改成比較適合自己的版本

以及 JB Lau 在曼谷的 Claude Code Meetup 時分享的一句話:「未來或許我們不再 Import Library,而是 Import Skills」,我覺得這件事情正在發生,也是未來會持續進行的,我推薦大家去看原片,有一些跟 Claude 還有 Context Engineering 的技巧

這句話其實也可以用來回答一些跟 skills 有關的疑問,像是可能會想知道「skills 裝越多越好嗎,還是必要再裝」、「安裝 skills 建議只從官方來嗎?還是開源的也可以裝?」,如果我們把這兩個問題的「skills」換成「套件」,我認為答案就很顯而易見了!

把 skills 代換成套件:李慕約在 Slido 關於 skills 的四則提問,提問裡的「skills」都蓋上「套件」字樣。四則是:skills 裝越多越好還是必要時再裝、安裝來源建議只裝 Anthropic/OpenAI 官方的或照描述叫 AI 重寫、怎麼把 skills 分享給全世界/組織內/特定人、Claude 的 skills 拿給 Codex 用是否可行

把李慕約在 Slido 提問裡的「skills」都換成「套件」,答案就很直覺了

最後,謝謝大家讀到這裡,如果你有任何不同的想法或是意見,歡迎跟我分享,或是有錯誤的地方也請不吝指教:)

這場演講的簡報Generative AI 年會小聚看簡報