Andrej Karpathy Skills 詳解:源自 Karpathy 觀察的 Claude Code 行為準則
Andrej Karpathy skills 是什麼?一個改善 Claude Code 行為的 CLAUDE.md 準則檔案,提煉自 Karpathy 對 LLM 寫程式常見毛病的觀察。四大原則、逐字安裝指令與常見問題,一篇說清楚。
最近更新: 2026-10-31
Andrej Karpathy skills 是什麼?
「Andrej Karpathy skills」是這個專案的流行叫法,README 的正式標題是 Karpathy-Inspired Claude Code Guidelines:一個單獨的 CLAUDE.md 檔案,用來改善 Claude Code 的行為,內容提煉自 Andrej Karpathy 公開發表的、關於 LLM 編碼代理實際會出哪些問題的觀察。這個專案踩中了幾乎所有開發者的痛點 —— 這個repo已收穫超過 22.7 萬 GitHub star,足以說明有多少人認出了它描述的那些失敗模式。
Karpathy 的貼文(README 附有連結)點出了三類反覆出現的問題:
「模型會替你做出錯誤的假設,然後一路跑下去,從不回頭檢查。它們不管住自己的困惑,不主動澄清,不暴露矛盾,不擺出取捨,該反駁的時候也不反駁。」
「它們特別喜歡把程式碼和 API 複雜化,堆砌抽象,不清理死碼……本該 100 行的工作,整出一個 1000 行的臃腫工程。」
「它們有時仍然會在副作用裡改動或刪除自己並沒有真正理解的註解和程式碼,哪怕這些內容與任務毫無關係。」
需要說清楚的一點:專案本身是社群做的,Karpathy 本人並沒有發布它 —— README 作者(同時在做 Multica,一個用於執行和管理編碼代理、支援可複用技能的開源平台)把 Karpathy 的公開觀察整理成了一套可以直接落地的準則。專案採用 MIT 授權。
給本站讀者的定位說明:這是一個 Claude Code 外掛 / CLAUDE.md 檔案,不是 DeepSeek Harness(dsh)原生外掛。但它仍然值得你讀,因為它編碼的四條原則對任何 LLM 編碼代理都適用 —— dsh 也一樣。
它規範了哪些準則?
一個檔案,四條原則,每一條都直接對應上面的一種失敗模式。
1. 想清楚再寫程式(Think Before Coding)
不要臆測,不要藏起困惑,要把取捨放上桌面。
- 明確說出假設 —— 沒把握就問,別亂猜
- 有歧義時提出多種解讀 —— 不要默默替使用者選一個
- 該反駁時就反駁 —— 如果存在更簡單的方案,要說出來
- 困惑了就停下 —— 說清楚哪裡不明白,請求澄清
2. 簡單優先(Simplicity First)
用解決問題的最少程式碼,不寫任何投機性的東西。
- 不加沒被要求的功能
- 不為一次性程式碼做抽象
- 不加沒人要的「彈性」和「可設定」
- 不為不可能發生的情境寫錯誤處理
- 如果 200 行能壓到 50 行,就重寫
README 給出的檢驗標準:一位資深工程師會不會覺得這段程式碼過度複雜?會,就簡化。
3. 外科手術式修改(Surgical Changes)
只動你必須動的,只清理你自己製造的垃圾。
- 不要順手「改進」相鄰的程式碼、註解或格式
- 不要重構沒壞的東西
- 遵循現有風格,哪怕你會用別的寫法
- 發現無關的死碼,提一句就好 —— 別刪
- 只有當你的修改導致 import、變數或函式不再被使用時,才移除它們
檢驗標準:每一行改動都應該能直接追溯到使用者的請求。
4. 目標驅動執行(Goal-Driven Execution)
先定義成功標準,循環驗證直到通過。 命令式任務被轉換成可驗證的目標:「加個驗證」變成「為非法輸入寫測試,然後讓測試通過」;「修這個 bug」變成「寫一個能重現它的測試,然後讓測試通過」;「重構 X」變成「保證重構前後測試都通過」。多步驟任務則先給出簡要計畫:
1. [步驟] → 驗證:[檢查項]
2. [步驟] → 驗證:[檢查項]
3. [步驟] → 驗證:[檢查項]
README 歸結給 Karpathy 的關鍵洞察是:「LLM 非常擅長圍繞明確目標循環執行……別告訴它做什麼,給它成功標準,然後看它跑。」強成功標準讓模型獨立循環;弱標準(「讓它能跑起來」)則需要不斷澄清。
怎麼判斷準則在起作用?README 列了訊號:diff 裡沒有多餘改動、因過度複雜導致的返工變少、澄清問題出現在實作之前而不是出錯之後、PR 乾淨精簡、沒有順手重構。
如何安裝
方式 A:Claude Code 外掛(推薦)。 在 Claude Code 內先新增 marketplace:
/plugin marketplace add forrestchang/andrej-karpathy-skills
然後安裝外掛:
/plugin install andrej-karpathy-skills@karpathy-skills
這樣準則會以 Claude Code 外掛的形式安裝,在你所有專案裡都可用。注意安裝來源:README 的指令指向的是 forrestchang/andrej-karpathy-skills repo。
方式 B:CLAUDE.md(按專案)。 新專案直接下載:
curl -o CLAUDE.md https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md
已有專案則附加到現有檔案結尾:
echo "" >> CLAUDE.md
curl https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md >> CLAUDE.md
這套準則的設計初衷就是與專案自有指示合併使用,所以附加到現有 CLAUDE.md 是官方支援的做法 —— 你可以在下面繼續加自己的專案規則,比如「使用 TypeScript strict 模式」「所有 API 端點必須有測試」。用 Cursor 的話,這個repo裡還提交了一條 Cursor 專案規則(.cursor/rules/karpathy-guidelines.mdc),設定方法見該repo的 CURSOR.md。
一定要用 Claude Code 嗎?
這個專案是為 Claude Code 打造的:方式 A 以 Claude Code 外掛安裝,方式 B 面向的是 Claude Code 的專案指示檔案 CLAUDE.md。如果你日常就用 Claude Code,裝上就行。
如果你用的是其他 harness,實話實說:不裝 Claude Code 也能受益,只是拿不到打包好的體驗。它的本體就是一份純 Markdown 準則,任何會讀取專案指示檔案的代理都能套用同一段文字 —— 把四條原則貼進你自己代理的指示檔案,就已經拿到了大部分價值。Cursor 規則隨這個repo附帶,也是同樣的道理。
無論用哪個 harness,都請記住 README 的權衡說明:這套準則偏向謹慎而不是速度。瑣碎任務 —— 改錯字、顯而易見的一行改動 —— 靠判斷力即可,不必套用全部流程。它的目標是減少非瑣碎工作裡代價高昂的錯誤,而不是拖慢簡單任務。
FAQ
Andrej Karpathy skills 是 Karpathy 官方出品嗎? 不是。這個repo把 Karpathy 公開發表的觀察整理成準則,是社群專案,採用 MIT 授權。README 引用了他的貼文,但他本人既沒有開發也沒有背書這個套件。
裝外掛還是用 CLAUDE.md? README 推薦外掛方式:全專案生效。CLAUDE.md 方式按專案生效,可以和你已有的專案規則混排 —— 想把準則限定在單一程式庫時就選它。
這是 DeepSeek Harness 外掛嗎? 不是原生的。它以 Claude Code 外掛 / CLAUDE.md 檔案的形式發布,不是 dsh 外掛。不過這些原則與 harness 無關 —— dsh 使用者可以在自己的代理指示裡採用同樣的四條規則。
它會讓簡單任務變慢嗎? README 自己回應了這一點:準則偏向謹慎而非速度,瑣碎改動靠判斷力即可,不必走完整流程。
Cursor 裡能用嗎?
可以 —— 這個repo內建了一條 Cursor 專案規則 .cursor/rules/karpathy-guidelines.mdc,設定方法見其 CURSOR.md。
相關的 DeepSeek Harness 外掛
Karpathy 準則是透過指示注入的紀律;它強制的很多東西,其實也能靠 harness 工具實現:
- Agent、自動化與工作流 —— 迴圈、哨兵、多智能體編排外掛,與目標驅動執行是天然搭擋。
- 外掛工具 —— 外掛管理器、模板和驗證器,幫你的 dsh 環境保持精簡、改動保持外科手術式。
- 什麼是 DeepSeek Harness? —— 剛接觸 dsh?從這裡開始,再瀏覽全站目錄。
