tool

深入剖析 AI Agent 開發:GitSkills 資料集揭開技能模組化趨勢

August 18, 2026
Updated Aug 18
2 min read
深入剖析 AI Agent 開發:GitSkills 資料集揭開技能模組化趨勢

解析軟體開發新領域:GitSkills 資料集揭開 AI 代理技能的神秘面紗

現代軟體開發中,AI 代理(Agent)的角色越來越吃重。為了讓這些代理精準處理特定任務,Anthropic 在 2025 年 10 月發布了一項開放規格,允許開發者以「技能」(Skill)的形式為代理編寫指令。在沒有統一註冊機制的環境下,這些指令究竟是如何被撰寫與重用的?

近期發布的 GitSkills 資料集,對 GitHub 上高達 3,797,117 個 SKILL.md 檔案進行了系統性調查,試圖回答 AI 協作開發中的實證問題。這份資料集不僅是軟體工程(SE)研究社群的首創,也為理解人機協同開發開啟了全新的實證維度。

圖片來源: mvaccargiu/gitskills · Datasets at Hugging Face


什麼是代理技能?

代理技能(Agent Skill) 就像是一套數位操作手冊。通常是一個包含 SKILL.md 核心檔案的資料夾,其中可能附帶執行腳本、配置範本或參考文件。當 AI 代理執行任務時,會根據當前任務需求,在運行時決定是否載入對應技能。Anthropic 在 2025 年 10 月發布了其目錄結構、YAML 前言(front-matter)限制以及階段式載入模型(staged loading model)的開放規格。其中,Claude Code 是其官方的參考實現(Reference Implementation),其預設將技能存放在 .claude/skills/ 目錄中。

這種做法與傳統程式碼或設定檔最大的不同在於其**「機率性(Probabilistic)」**:

  1. 無靜態驗證:模型是在執行過程中基於語意匹配自主判斷是否載入,缺乏編譯器或型別檢查(Type Checker)來確保正確性。
  2. 語意模糊風險:如果技能的描述(Description)過於模糊,模型可能無法正確選中該技能;若指令說明不清,則可能導致任務執行不完整或錯誤,且不會拋出明確的系統編譯報錯。
  3. 無套件管理器:目前此生態系缺乏中央註冊表(Central Registry)或套件管理器。因此,技能的擴散主要依賴於開發者手動在專案儲存庫之間「複製整套資料夾(Copying Folders)」。

GitSkills 的資料洞察

由 Giuseppe Destefanis(倫敦大學學院)、Daniel Graziotin 與 Matteo Vaccargiu(霍恩海姆大學)以及 Marco Ortu(卡利亞里大學)組成的研究團隊,在 2026 年 7 月 採集了來自 282,200 個公開 GitHub 儲存庫(由 195,841 個開發者帳戶所持有)的資料,推出了 GitSkills 資料集。

研究人員將採集到的 3,797,117 個 SKILL.md 檔案,透過內容雜湊值(Content Hash)進行精確的去重分組,發現它們可歸納為 1,877,981 個獨立的內容組(Distinct Contents)

核心研究議題

  • 採用與語言演化:分析這些主要以自然語言編寫的指令結構,是否在不同月份的採用佇列(Cohorts)中逐漸收斂成特定的「範本格式」(Formulaic Templates),或是其語意多樣性是否因機器生成(Machine Authorship)而降低。
  • 非正式重用機制:研究顯示,高達 50.5% 的技能檔案是完全相同的「一字不差複製品(Verbatim Copies)」。這引發了關於技能如何在專案間遷移,以及是否會遵循類似程式碼克隆(Code Clone)的變更傳播模式等有趣問題。
  • 維護與安全信任:許多技能內建了可執行腳本,且在沒有中央包管理器審查的情況下被拷貝。一旦上游更新但本地技能過時,或惡意修改的技能被複製,恐將引入未授權的命令執行或外部網路存取,成為類似供應鏈攻擊的溫床。

資料庫內部架構

GitSkills 提供了一個單一且自給自足的 SQLite 檔案(存放在 Zenodo 上),以及在 Hugging Face 上以 Parquet 格式鏡像分發。資料庫中包含以下四大核心資料表,極具結構化與分析價值:

資料表名稱記錄數量 (Rows)核心包含內容
artifacts3,797,117核心發現表。每行代表一個發現的 SKILL.md 檔案,包含其儲存庫、路徑、精確檔名、位置分類與內容雜湊值。對於代表性檔案,還額外富化了完整文本、解析後的 YAML 前言(名稱與描述)及正文大小。
repos282,200儲存庫元數據,包括擁有者、星數(Stars)、主要程式語言、是否為 Fork、建立日期及最後推播(Push)日期。
artifact_siblings7,264,865儲存於代表性技能資料夾內部的「同級檔案或目錄」(Siblings),如配套的執行腳本、配置或參考文件(並包含特定大小限制底下的文字內容)。
mining_runs7記錄挖掘任務的元數據日誌,包含每次 Collection Run 的搜尋查詢、起始與結束時間戳記及結果計數。

歷史提交追蹤:對於存放在標準位置的技能以及其餘樣本中按大小分層抽樣(Size-stratified Sample)的檔案,共計 458,548 個檔案 額外收錄了其 提交歷史(Commit History),包括首次與最後一次提交日期、去識別化後的作者帳戶、以及累計提交次數。


資料收集與分析管線

由於 GitHub Code Search API 的單次查詢結果限制在 1,000 筆以內,且其內建的 total_count 估算極不準確(例如針對 SKILL.md 的檔名查詢,API 僅估計約有 349,000 筆,而實際最終挖掘出了超過 380 萬個檔案)。

為此,研究團隊設計了一套唯讀式挖掘管線(Pipeline),其運作分為三個精細階段:

  1. 探索(Discovery):採用**「按檔案大小分割(Partition by file size)」**的遞歸拆分策略遍歷搜尋空間。只要某個大小區間內返回的結果超過 1,000 筆,就繼續細分該區間,直到每個範圍都能完整檢索。
  2. 去重(Deduplication):利用內容的 SHA 雜湊值進行全域分組。每一組僅選擇一個「代表檔案(Representative)」進行深度富化(優先選擇位於 .claude/skills/ 標準路徑下的檔案),但保留所有 Copies 的儲存庫與路徑關聯,以利追蹤傳播拓撲。
  3. 富集(Enrichment):針對代表檔案,下載完整的 SKILL.md、解析 YAML 前言、紀錄同級目錄結構與檔案,並收集儲存庫與匿名化的歷史提交資訊。

常見問答

Q:GitSkills 資料集包含個人隱私嗎? A:研究團隊實施了嚴格的隱私保護與匿名化。提交紀錄中的電子郵件地址與個人姓名已被 redact(用固定遮罩掩蓋)。作者帳戶已透過「單向密鑰雜湊函數(Keyed One-way Function)」轉換為唯一編碼,在不洩露個人身分的前提下,仍能精確追蹤同一帳戶的跨專案貢獻行為。此外,機器人(Bot)帳戶的 Login 則予以保留。

Q:這個資料集涵蓋了所有 AI 代理技能嗎? A:這僅涵蓋公開 GitHub 儲存庫的預設分支。考慮到 GitHub Code Search 的局限性(例如僅索引預設分支、檔案大小限制在 384 KB 以下、活躍儲存庫文件少於 500,000 個,以及 Fork 項目僅在星數多於父項目時才被索引),該資料集應被視為實體技能總量的一個**「保守下限(Lower Bound)」**。

Q:為什麼要特別建立同級檔案表 artifact_siblings A:因為代理技能的威力往往來自於其配套的程式碼或範本。例如在實際採集到的資料中,技能資料夾常隨附 Bash 腳本(如 .sh)、CSV 範本(assets/csv_template.csv)、法規合規指南(compliance.md)、或是 Python 解析工具(build_csv.py)。將這些「同級資產」納入分析,能更全面地評估技能的執行意圖與安全邊界。


資源與應用連結

該資料集已發表於 MSR 2027 Mining Challenge 研討會中。研究人員可以透過以下官方渠道獲取:

分享至:
Featured Partners

© 2026 Communeify. All rights reserved.