教學
Karpathy LLM Wiki 是什麼?用 Claude Code 自己做一個
用圖解說明 Andrej Karpathy 的 LLM Wiki、大家實際在用的現成實作,以及可直接複製的 Claude Code 設定。
關於這篇指南
概念
讀過 Karpathy 的 LLM Wiki,想用 Claude Code、Codex 或 Obsidian 實際做出一個的人
7 分鐘閱讀
01
LLM Wiki 是一個由 AI 根據你的來源持續更新的 Markdown 頁面資料夾,答案會累積,不必每次從頭整理。
02
它有三層(來源、wiki、schema)和三個工作(ingest、query、lint)。
03
多數人從現成專案開始;你也可以用 Claude Code 加一個空資料夾自己做。
01
Karpathy 的 LLM Wiki 是什麼
2026 年 4 月,Andrej Karpathy 在 GitHub gist 發表了〈LLM Wiki〉。這個做法是把來源整理成互相連結的 Markdown 頁面,讓後續問題可以先從維護中的綜合頁面開始,不必每次都從頭搜尋整批資料。來源變更時仍要重新讀取並檢查受影響的頁面;重要結論也可能需要回到引用來源核對。
本文引用 Karpathy 的公開說明作為這個模式的來源,不代表 Karpathy 為 Wenlan 背書。
Schema
CLAUDE.md 或 AGENTS.md:wiki 怎麼組織
AI 每個工作都照這份規則做
原始來源
文章、論文、筆記、檔案
只讀不改
Wiki
每個主題一頁 Markdown,互相連結
index.md · log.md
回答
附上用到的頁面與來源連結
lint:找出矛盾、過時說法、沒人連到的頁面
02
三個工作:ingest、query、lint
對 wiki 的每一次修改,都屬於這三個工作之一。分開做,提問就不會偷偷改寫頁面。
- Ingest(加入來源):讀新來源、寫一頁摘要、更新受影響的頁面,再更新 index.md 和 log.md。
- Query(提問):先讀 index.md,只打開需要的頁面,回答時附上連結。好的答案可以存成新頁面。
- Lint(健康檢查):找出互相矛盾的頁面、被新來源取代的說法、沒人連到的頁面,以及還沒有頁面的主題。
03
LLM Wiki 和 RAG 的差別
RAG 會針對每個問題檢索相關來源片段;來源集合與索引仍可繼續使用,同一份資料也可能在不同問題中再次被檢索。LLM Wiki 則把持續維護的綜合內容留在可打開檢查的頁面裡,讓後續查詢可以從頁面開始。新增或變更的來源仍要重新整理,重要結論也可能需要回到引用核對。大型 wiki 仍可用搜尋找到合適頁面。
RAG
- 提問
- 檢索來源片段
- 回答
來源仍可查詢;片段可能再次出現。
LLM Wiki
- 來源
- 整理並維護頁面
- 提問
- 先看相關頁面
來源變更時要更新頁面。
04
現成的 LLM Wiki 實作
多數人是從現成專案開始。GitHub 上名稱或說明含「llm-wiki」的 repo 超過 6,400 個,大多在 2026 年 4 月之後建立;星數最多的 nashsu/llm_wiki 和 claude-obsidian,都超過 15,000 顆星(2026 年 10 月)。
| 專案 | 是什麼 | 適合你,如果你 |
|---|---|---|
| Karpathy 的 gist | 原始說明,不是軟體 | 想自己動手設定(見下方) |
| nashsu/llm_wiki | 跨平台桌面 app | 想要一個獨立 app 整理文件 |
| AgriciDaniel/claude-obsidian | Claude Code + Obsidian 的設定 | 筆記本來就放在 Obsidian |
| Astro-Han/karpathy-llm-wiki | 給 Claude Code、Cursor、Codex 的 Agent Skills 套件 | 想把這個模式裝成 AI 技能 |
| Wenlan | 桌面 app,附 MCP server | 同時用好幾個 AI 工具,希望頁面保持最新、又不會蓋掉你的修改 |
05
用 Claude Code 15 分鐘做一個
你需要 Claude Code(或 Codex、Cursor 等能改檔案的 AI 工具)和一個空資料夾。建立下面的結構並執行 git init,AI 改了什麼都看得到、也能復原。想閱讀頁面,用 Obsidian 或任何 Markdown 編輯器打開資料夾即可。
資料夾結構
my-wiki/
CLAUDE.md # schema:AI 要遵守的規則
raw/ # 你的來源;AI 不會修改
wiki/
index.md # 每頁一行
log.md # 每次 ingest、query、lint 一行
sources/ # 每份來源一頁摘要
topics/ # 每個主題、人物或概念一頁06
可直接複製的 CLAUDE.md
整個系統就是這份檔案:Claude Code 讀 CLAUDE.md,Codex 則存成 AGENTS.md。「My notes」這條規則,能防止下一次更新蓋掉你手動修正過的段落。
接著在 Claude Code 裡輸入 ingest raw/<檔名>、query <問題> 或 lint。先放兩三份同一主題的來源,每做完一個工作就看一次 git diff。
CLAUDE.md
# LLM Wiki
This folder is a wiki you maintain from my sources.
## Layout
- raw/: my sources. Read them. Never edit, move, or delete them.
- wiki/sources/: one summary page per source, named after the source.
- wiki/topics/: one page per topic, person, or idea.
- wiki/index.md: every page, one line each: [[page]] - summary.
- wiki/log.md: one line per job: ## [YYYY-MM-DD] ingest | <title>
## Page rules
- Start each page with a two- or three-sentence summary.
- Every claim links to the source page it came from.
- Link related pages with [[wiki links]].
- If a new source contradicts a page, say so on the page and cite both.
- Never rewrite text under a "## My notes" heading. I write that part.
- Write pages in Traditional Chinese.
## Jobs
- ingest <file>: summarize it, update affected topic pages,
update index.md, and log it.
- query <question>: read index.md first, open only the pages you need,
and answer with links. Offer to save a useful answer as a page.
- lint: list contradictions, outdated claims, orphan pages, and
missing pages. Fix only what I approve.07
先用完整範例試做,不必先安裝
你的 wiki 能回答專案問題、指出依據,並在來源改變時提醒舊答案不能照用嗎?先拿這組虛構資料,用你原本的 AI 工具試一次。以下是人工編寫的教學輸入與參考答案,不是 Wenlan 執行紀錄、客戶成果或效能比較。
在一個可丟棄的新資料夾,依下方檔名分別存成三個 Markdown 檔,讓 Agent 唯讀存取。產生的 wiki 答案另外存檔,不要讓 Agent 修改原始來源。API 名稱與英文測試資料保持一致,方便三語讀者核對同一個問題。
提問:「只根據 api-v1.md、decision-07.md 與 runbook-v1.md,整理一頁重試規則。每條規則標明來源檔名,分清重試次數與總嘗試次數,列出還不知道的事。不要用常識補齊文件沒寫的內容。」
完整測試資料:分別存成這三個檔案
# api-v1.md — fictional API specification, revision 1
GET /reports: after a failed first attempt, allow up to 3 retries.
POST /payments: do not retry automatically.
# decision-07.md — fictional client decision
Use the API's GET retry cap of 3 to limit repeated requests.
Automatic POST retries are disabled because duplicate payments are unsafe.
# runbook-v1.md — fictional operator note
Record the endpoint, attempt number, and final failure in the local test log.
The request timeout has not been decided.08
核對答案,再改一份來源
對照下方參考答案,不必逐字相同,但四項結論都要有正確依據;逾時時間必須保留「尚未指定」。親自打開被引用的檔案:看起來合理的引用,不代表真的支持那句話。
接著依下方內容新增 api-v2.md,讓它取代 api-v1.md。第二次提問:「以 api-v2.md、decision-07.md 與 runbook-v1.md 為目前來源,將 api-v1.md 僅作歷史參考,對照先前的 wiki 答案與目前證據,找出過時結論,保留『最多重試 1 次』與『3 次』尚未解決的矛盾;不要默默修改 decision-07.md,也不要替這項矛盾下定論。」
如果普通檔案加上你的 Agent 已經能清楚完成,就保留這個簡單方法。當維護來源頁面、讓多個 AI 工具共用查詢成為反覆工作時,再評估 Wenlan。來源連結不等於語意已驗證;另存替代來源也不等於更新已連結來源,仍要查看實際頁面狀態。這個練習不能證明 Wenlan 的準確率、省時幅度、自動維護效果或日後回用。
參考答案、更新後來源與應有的審查紀錄
# Request retry policy — reference answer, revision 1
GET: at most 3 retries after the first attempt (4 attempts total).
Source: api-v1.md; decision-07.md.
POST: no automatic retry.
Source: api-v1.md; decision-07.md.
Log: endpoint, attempt number, final failure.
Source: runbook-v1.md.
Timeout: not specified. Ask the owner; do not invent a value.
Source: runbook-v1.md.
# api-v2.md — fictional replacement for api-v1.md
GET /reports: after a failed first attempt, allow at most 1 retry.
POST /payments: do not retry automatically.
# Review note — before accepting a revised answer
The old GET answer is stale: api-v2.md now allows only 1 retry.
decision-07.md still says 3. Preserve and flag this conflict.
Do not report the old 3-retry policy as settled current guidance.
POST, logging, and the unknown timeout are unchanged.
Ask the decision owner to reconcile decision-07.md with api-v2.md.09
自己做的 LLM Wiki 會在哪裡卡住
上面的設定適合一個人、一個 AI 工具、幾十份來源。規模變大後:
- 來源變了,頁面沒變。要等下一次 lint 才知道哪些頁面過時。
- 除非每個 AI 工具每次都遵守「My notes」規則,否則你手動改過的內容會被蓋掉。
- 每個 AI 工具都要一份自己的規則檔,久了內容就不一致。
- 超過幾百頁後,index.md 會長到塞不進上下文。
- AI 對話裡的決定,不手動複製就進不了 raw/。
10
在 Wenlan 中使用 LLM Wiki
Wenlan 是一個開源 app,替你執行同樣的模式。它把文件、筆記和 AI 對話整理成附來源連結的頁面,來源變了就更新頁面,而且不會蓋掉你的修改。Claude Code、Codex 和其他 AI 工具讀的是同一組頁面。
/capture 存下對話中的決定,/distill 建立或更新主題頁面,/pages 打開頁面,/brief 和 /recall 只載入下一次對話需要的內容。
Wenlan 工作流——需要已安裝並連線的客戶端
/brief <topic>
/recall <question>
/capture <decision + why>
/handoff
/distill <topic>
/pages <topic>並排比較
用實際使用的面向比較。自建資料夾 + CLAUDE.md 比較好的地方,我們直接寫出來。
| 面向 | Wenlan | 自建資料夾 + CLAUDE.md |
|---|---|---|
| 設定 | 安裝 app 並連上你的 AI 工具 | 一個資料夾、一份 schema 檔和 git |
| 來源改變時 | 你要求時更新,或在背景自動更新 | 下一次 lint 才發現(如果有跑) |
| 你自己的修改 | 保留;更新不會蓋掉你改過的頁面 | 只有 AI 遵守 schema 規則時才保留 |
| 多個 AI 工具 | Claude Code、Codex 等共用同一個 wiki | 每個工具一份規則檔 |
| AI 對話當作來源 | 可以直接從對話存下決定 | 手動複製到 raw/ |
讓 wiki 自己保持最新
Wenlan 把你的文件、筆記和 AI 對話整理成附來源連結的頁面,來源變了就更新,而且不會蓋掉你的修改。
在實際畫面中,核對引用與修訂
以下來自 Wenlan App 的 Tally 發票專案示範錄影。放大實際畫面,查看一條引用如何回到來源,以及頁面修訂提出了哪些改變。
1. 從 SQLite 結論回到原始依據
Wiki 說明 Tally 為單人應用選擇 SQLite。打開的引用顯示「SQLite for Single-User App」來源、摘要與「Open memory」入口。再次使用這個決策前,先比較句子和來源是否一致。
2. 先看增刪內容,再決定是否接受
Project notes 修訂刪除「資料庫尚未決定」的舊文字,提出使用 SQLite 的新敘述。畫面保留增刪差異、先前版本,以及 Skip/Approve 操作。先檢查新文字和引用,再決定保留哪些內容。
常見問題