沒人去查的那個數字
Everything Claude Code(通常簡稱 ECC)是 Affaan Mustafa 發布的 Claude Code 設定 repository。他在贏得 Anthropic 的一場 hackathon、並交付一個完全由 agent 打造的產品之後,把自己用的那套設定公開了出來。這個 repository 目前在 GitHub 上大約有 250,000 顆星。
關於它被引用的各種數字彼此對不上,而這種對不上本身就很有啟發性。把 ECC 帶到廣大觀眾面前的那支影片,發布時間比我們這次測量早四天,片中數的是 64 個 agent 和 262 個 skill。而 repository 自己的 README,在我們 clone 下來的那一天,寫的是 68 個 agent 和 286 個 skill。
| 來源 | Agent | Skill |
|---|---|---|
| 被廣為分享的那支影片 | 64 | 262 |
| repo 的 README,今天 | 68 | 286 |
這兩組數字並不是互相競爭的說法,只是比較舊的版本而已。這個 repository 的變化速度比談論它的影片還快,而這正好可以拿來衡量任何單一數字到底值多少。底下真正的問題,是有人在 Reddit 上直白問過、卻始終沒得到真正答案的那一個:重點不是 ECC 夠不夠厲害,而是它值不值得安裝。
ECC 到底是什麼
ECC 自稱是一套 agent harness 效能最佳化系統,涵蓋 skill、instinct、記憶、資安,以及研究優先的開發方式。它的 README 把安裝後會套用的整個循環壓縮成七個詞:規劃、測試、實作、審查、驗證、記住、改進。裝一次,你的 agent 從此就照這樣運作。
在一份全新的 clone 裡實際清點,這個 repository 包含:
| 元件 | 數量 |
|---|---|
| Agent | 68 |
| Skill | 286 |
| 斜線指令 | 94 |
| 規則檔 | 122 |
| Hook(全部塞在同一個檔案) | 23 |
用來描述這一切的 README 有 2,200 行。光是文件資料夾就有 15 MB,翻譯成 22 種語言。把整個 repository clone 下來要拉 88 MB。它也不是只為 Claude Code 而設:ECC 為 19 種不同的 agent 與編輯器提供設定,從 Codex、Cursor 到 Zed 和 Kimi 都有。
這是一份紮實的作品,而且授權是 MIT,意思是裡面每一塊你都可以自由複製。問題只在你把整包裝下去的時候才開始。
那筆 context 帳單
一個 skill 的內文,只有在該 skill 被觸發時才會被讀取。但它的名稱和描述,從每次對話的第一個 token 起就坐在你的 context 裡。每個 subagent 也一樣。那些 metadata 就是入場費,也正是那些 repository 導覽會略過的部分。
在全新 clone 上實測:
| 每次對話都會載入的東西 | 大小 | 約略 token 數 |
|---|---|---|
| 286 個 skill 名稱 + 描述 | 85,000 個字元 | 21,000 |
| 68 個 subagent 描述 | 20,000 個字元 | 5,000 |
| repo 自己的指令檔 | — | 1,000 |
| 常駐 context 總計 | — | ~27,000 |
對照 200,000 token 的 context window,整包安裝在你打第一個字之前就佔掉大約 14%。14% 聽起來還撐得住,直到你想起還有什麼要共用這個視窗:你的檔案、你的 diff、你的工具輸出,以及對話本身。每一個你永遠不會叫用的 skill,都在跟你真正在寫的程式碼搶空間。
這個 repository 自己知道。它的 README 裡寫著「最佳化 context window,其餘一切都持久化」這句話,然後出貨 286 個 skill。在那串問的正是這個問題的 Reddit 討論串裡,最高票的回覆說那些描述的 token 用量微不足道。21,000 個 token 並不微不足道。
兩個誠實的但書。這裡的 token 是以每 4 個字元估算的,所以真實數字會隨 tokenizer 而變動。另外,以上這些都沒有說這些 skill 不好,只是說它們不是免費的,而且其中大多數不屬於你。
留下第一、二樣:掃描器與設定
前兩樣值得拿走的東西,根本不需要安裝這個 repository。
AgentShield 是一套針對 agent 設定的資安稽核工具。它隨 ECC 一起出貨,同時也以獨立套件的形式放在 npm 上,一週內有 5,500 次下載。一道指令指向某個目錄,它就會稽核你的 agent 檔案、你的 hook、你的伺服器、你的權限和你的密鑰,而且支援輸出格式、嚴重程度下限,以及安全自動修復等旗標。它的 README 用一月的數字說明自己為什麼存在:某個 agent skill 市集裡有 12% 被發現是惡意的,也就是 2,800 個 skill 裡有 341 個;另有一起資安事件外洩了 150 萬個 API token。那些是這個套件自己的說法,不是我們的實測。
它的限制是日期。AgentShield 最後一次發布是在三月,而這個 repository 本身在我們測量的前一天才更新過;它的 README 至今仍把整個生態系描述成 42,000 顆星,對照今天的 250,000。這個掃描器落後它所附屬的東西六個月。
那段設定區塊試試看不用付出任何代價。README 公開了四項變更:
| 設定 | 變更 |
|---|---|
| 預設模型 | 設為 Sonnet |
| 思考預算 | 從 32,000 降到 10,000 |
| Compaction 門檻 | 從 95% 降到 50% |
| Subagent | 推到最便宜的模型上 |
README 宣稱可省下約 60% 的模型成本,以及 70% 的隱藏思考成本。那是它的數字,不是我們的,而且它們描述的是一種取捨:較小的預設模型加上便宜的 subagent,會在困難的審查上讓你付出代價。
留下第三樣:instinct
Instinct 是這個 repository 裡唯一一個我們在別處沒看過的點子。一個 instinct 就是一項帶有信心分數的、小小的習得行為。它不是你寫下的規則,而是系統注意到你不斷重複、於是替你記下來的模式。
第一版只在對話結束時觀察。目前這一版會在每次工具呼叫前後都觀察,這正是它真的抓得到東西的原因。每個 instinct 帶有 0.3 到 0.9 之間的權重,而分析是在背景 agent 上用便宜的模型跑的,所以它不會為了做這件事而吃掉你的主要 context。
2.1 版讓 instinct 變成專案範圍的,所以你的 React 模式會留在 React 專案裡。這個 repository 自己用來形容它修掉了什麼的字眼是「汙染」。當同一個 instinct 出現在兩個不同專案裡時,它就會被升級為全域:系統靠觀察來決定什麼是普遍適用的,而不是來問你。
這不是一個半成品。背後那個工具有 2,200 行、六道指令,而它描述的路徑是從 instinct 到 cluster 再到一個真正的 skill。Instinct 也是可攜的:把你的 instinct 庫匯出、交給團隊裡的某個人,他匯入就好。這是我們看過針對「讓一個人上手你的 agent 設定」這件事,第一個合理的答案。
附帶的條件是 hook runtime。這一切都跑在它上面,而 hook runtime 正是這個 repository 裡刻意要你主動選擇加入的那個部分。拒絕 hook,你就得不到 instinct。而且信心分數是一種啟發式判斷,不是一項測量。
留下第四、五樣:只拿你需要的
第四樣是三個會計算 context 而不是消耗 context 的 skill:一個 context 預算、一個 compaction 顧問,以及一個 token 預算顧問。那個讓你付出 14% 的 repository,同時也出貨了讓你看見這件事的工具。光是那條 compaction 規則就值得拿走:在研究之後、實作之前 compact,在一個里程碑之後、在除錯之後、在一個做法失敗之後,而且絕不要在實作進行到一半時做,因為那會讓你丟掉檔案路徑和做到一半的狀態。
第五樣是安裝程式,正是它讓前面四樣構得著。它提供七種 profile,其中最小的那一種在自己的描述裡就說,它完全不含 hook runtime。你也可以跳過 profile,逐一點名你想要的 skill;另外有一個顧問,只要你用一句白話描述你的工作,它就會回傳符合的元件,而且在任何東西寫進磁碟之前會先給你預覽。這個安裝程式也拒絕在 hook 上自作主張:任何會把 hook runtime 放進你電腦的安裝都會停下來,印出那些 hook 能做什麼,然後等你回答要或不要。
用這種方式安裝,那筆帳單就不再是 14%,而是它的一小部分。我們不打算為那個比例給出數字,因為我們沒有測遍每一種組合。不過底線很誠實:即使是最小的 profile,仍然會帶著那些 agent 和那些規則,所以逐一點名 skill 是唯一能做到「只為你真正用到的東西付費」的方法。
該留在 repo 裡的東西
68 個 agent 整組。 它們大約要花掉 5,000 個 token 的常駐 context,而其中大多數是給 C++、C#、Django 和 Kotlin 的語言審查員和建置修復器,對應的是你根本不寫的技術棧。拿走符合你工作的那兩個就好。這一組不是套裝交易。
94 個斜線指令。 README 自己已經把它們當成暫時的東西,稱它們為方便的入口,同時這個 repository 正往 skill 優先的介面移動,而且還有一個放退役指令的資料夾。指令也是這整個生態系裡最容易自己寫的東西。
那個 hook 檔案。 這套設定裡的每一個 hook 都住在同一個檔案裡:291 行、40 KB、23 個 hook,其中 8 個會在每次工具呼叫前執行,7 個會在 agent 每次停下時執行。程式碼並不是放在一個你打得開的腳本裡。每個 hook 都被壓成一行,總共 33,000 個字元,最長的單行有 2,000 個字元。
也要說句公道話:旁邊那些描述是讀得懂的,而且有些寫得不錯。其中一個會阻止 agent 修改你的 linter 設定,並說明理由,把 agent 導向去修程式碼,而不是去弱化規則。那是一個值得擁有的 hook。問題不在意圖。程式碼是公開的,而且是 MIT。問題在於意圖是你唯一讀得懂的部分,而這個 repository 自己先說了:hook 會執行 shell 指令,你應該把它們當成可執行的設定來看待。
壓艙物。 19 種 harness 的設定,以及 22 種語言、15 MB 的文件,而你只用一種語言、在一個地方跑這個工具。
結論
去搜刮它,不要安裝它。通過這次稽核而留下來的五樣是:那個掃描器、那段設定區塊、instinct 系統、三個會計算你 context 的 skill,以及那個能讓你在不帶其餘部分的情況下拿到前四樣的安裝程式。
決定性的數字是:整包安裝要 27,000 個 token 的常駐 context,對照 200,000 的視窗。授權讓這場搜刮合法:它是 MIT,而從這個 repository 裡複製五個目錄出來是預期用法,不是走偏門。
在 Reddit 上,人們一直在問該選 Superpowers 還是 ECC。它們不是同一種東西。一個是關於 agent 如何運作的紀律,另一個是零件箱,而對零件箱該有的答案就是拿零件。
以上一切有兩個限制。這裡的所有數字都是在 2.2.1 版上量的;這個 repository 在前一天才更新過,而且還有 110 個 pull request 在排隊,所以它會動。另外,這一切都沒有衡量這些 skill 有沒有讓答案變得更好,它衡量的是擁有它們要付出什麼代價。這是兩個不同的問題,而其中只有一個塞得進一支影片。
AIDive