上篇講了 Karpathy 的 llm-wiki 概念,以及同一個架構被 Lex Fridman 和我用在完全不同的方向 —— 他用完就丟,我留下來驗證
這篇把系統攤開。不是理想架構圖,是真實的檔案結構和設計決策 —— 以及每個決策背後搞砸的故事
數字
- 用了一年半,每天都開 Claude Code 工作
- 累積了 38 個知識檔案 —— 涵蓋客戶狀態、行為規則、技術筆記、策略方向
- AI 一開 session 就知道:我管哪些案子、上次踩了什麼坑、哪個客戶的合約快到期
- 6 條自動化 pipeline 每天在背景跑(LINE / Email / 錄音 / 行事曆 / RSS)
六層架構
Karpathy 三層:raw → wiki → schema
我的場景需要六層,因為除了管知識,還要管 AI 的行為
為什麼多三層?舉個例子
我的 CLAUDE.md 有一條:「Young 說重新、重做、換個方式 → STOP,不要修補舊方案,從頭做」
這條來自一個 session 裡被糾正 48 次。每次我說「重新」,AI 都繼續在舊方向上修修補補,越改越歪
Karpathy 的 llm-wiki 專注在知識整理,這類行為問題不在他的範圍內。但在我的場景裡,這是每天都會碰到的事
把對的東西放在對的位置
Karpathy 的架構是把所有東西放在同一個地方:raw/ + wiki/ + schema/ 在同一個目錄下
我管超過 15 個專案跟開發,每個都是獨立的 GitHub repo。不可能全部塞在一起
所以我的架構是分散式的:
指揮部做三件事:同步所有專案的狀態、派發任務(透過 GitHub Issue)、追蹤進度。它不寫程式碼,不 commit,不 push —— 唯讀
每個專案有自己的 CLAUDE.md,寫著這個專案特有的規則。AI 進到哪個專案,就載入那個專案的設定
全域的 skills 和 agents 放在 ~/.claude/,所有專案都能用。專案特有的放在專案自己的 .claude/ 裡
這樣的好處:在醫療專案踩的坑寫成全域規則後,教育專案也自動受益。但醫療專案的 GCP 設定不會污染教育專案的 Vercel 設定
從知識庫到工程系統
Karpathy 的 llm-wiki 解決的是知識整理,這個問題他定義得很清楚。我的場景不太一樣 —— 我需要的不只是整理知識,還要讓整個工作流跑起來。所以知識庫變成了系統的其中一層
整個系統還包括:
- 6 條自動化 pipeline —— LINE 訊息、Email、錄音檔、行事曆、RSS 情報,每天自動跑,不用我手動收集
- GitHub Actions CI/CD —— 程式碼推上去自動測試、自動部署,不用人盯
- 爬蟲系統 —— 自動抓 40+ 個 AI/科技情報來源,產出摘要
- 跨平台整合 —— GCP Cloud Run、Vercel、本機 demo,三種部署環境用同一套管理
這些東西各自獨立,可以單獨替換或升級,但透過指揮部整合在一起
llm-wiki 把知識整理定義得很漂亮。我的情況是同時管超過 15 個專案、多家客戶、還要跟外部系統整合,所以我在知識庫的基礎上又長出了這些東西
四種知識類型
每個檔案都標記類型:
feedback(行為規則)—— 永遠不刪
有一次 AI 讀到知識庫裡寫「email 系統等待 OAuth2 設定」,就跟我說系統沒在跑。但我跑了一個 ls 就看到 30 天的資料 —— 系統早就在運作了,只是知識庫沒更新
那次之後我加了一條:「判斷系統狀態時必須跑實際命令,不能只讀知識庫」
project(專案狀態)—— 最容易過時
收入、進度、待辦。每週都在變,品質檢查重點掃的就是這類
reference(技術參考)—— 連結會壞
部署注意事項、架構筆記。不常動,但 URL 會失效
user(身份資訊)—— 永遠不刪
我是誰、技術棧、溝通風格。每個 session 開始自動載入,AI 不用問就知道背景
四個工具
Karpathy 提到 Ingest、Query、Lint 三個操作
我讀完之後拿自己的場景去對:這三個夠不夠?結果發現我管多個專案,需要一個他沒碰到的需求 —— 主動發現跨檔案的 pattern。所以我多做了一個工具
這就是我說的提煉:讀到別人的架構,不是照抄,是拿來跟自己的場景對,找到缺口,補上。補的過程中,你的系統就長了一塊新的能力
品質檢查(Lint)
掃描所有檔案,按嚴重度分級:
- 🔴 過期待辦、索引跟內容矛盾
- 🟡 有檔案但索引漏收、超過 30 天沒更新但標著「進行中」
- 🟢 格式不完整、索引快滿了
對話回存(File-back)
對話中做了深度分析(研究報告、比較表、行動清單),工具會建議存下來
重點是提煉,不是複製。只萃取結論和關鍵數據
存之前先搜現有檔案,有相關的就更新。我踩過的坑:同一個研究結果存了三份在不同檔案,改了一份忘了另外兩份
索引同步(Sync)
確保索引跟實際檔案一致。抓三種問題:索引指向不存在的檔案、檔案存在但索引沒收、索引描述跟檔案對不上
主動成長(Evolve)
這個是我從自己的場景中發現需要的
它讀所有知識檔案,找跨檔案的 pattern:
- 三個教育類專案散落不同檔案,從沒被放在一起看
- 策略說某件事重要,但沒有對應的行動
- 「等回覆」超過 14 天的項目
只給建議,不自動改。 我不想某天起床發現 AI 半夜幫我合併了三個檔案
Hooks:每條規則都有一個事故
品質檢查是事後掃描。Hooks 是事前攔截
| Hook | 做什麼 | 來自哪個事故 |
|---|---|---|
| 完成驗證 | AI 說完成但沒附證據 → 擋住 | AI 說「部署完成」但 URL 回 404 |
| 整理提醒 | 超過 7 天沒整理知識庫 → 提醒 | 索引 193/200 行快爆了才發現要整理 |
| 計畫模式 | 改 3+ 個檔案 → 強制先規劃 | 29,799 行 session 沒有計畫,糾正率 8.9% |
| 提交守衛 | 沒有指令不准提交程式碼 | AI 自己 commit + push 了不該推的東西 |
用了一年半,只用過 1 次計畫模式 —— 所以才需要 hook 強制。靠 AI 自己判斷什麼時候該規劃,根本不會發生
/dream:知識庫的大掃除
知識檔案會膨脹。38 個是整理過的結果
我有一個操作叫 /dream,做三件事:合併重複的、刪過時的、解決矛盾的
跟上面的「主動成長」差在哪?主動成長是分析師(提建議),dream 是清潔工(真的動手)
上次 dream 的結果:
- 3 組合併(7 個變 3 個)
- 4 個過時刪除
- 6 個補上缺失的格式
- 索引從 193 行降到 187 行
不定期清理的話,知識庫會變成垃圾場。所以有 hook 強制:超過 7 天沒清就跳通知
92 個 Session 的行為分析
這是我覺得跟 Karpathy 最不一樣的地方
他的品質檢查在掃知識的正確性。我的還掃 AI 的行為模式
92 個 session 分析出來:
- 46 個零糾正(50% 乾淨率)
- 乾淨 session 的特徵:開放式討論、明確單一任務
- 出問題的 session:涉及程式碼提交、跨多個專案、要產出完整文件
從數據裡提煉了 7 條行為規則,寫進系統設定
每加一條規則或 hook,乾淨率就上升。這就是正向循環
成本
我從一年半前就選擇用 Claude MAX 20x 方案,每個月大約 USD $200,每一週都會燒乾額度
這不是省錢的做法。但算一筆帳:一年半下來花了大約 USD $3,600,換來的是一個人在下班後就能管超過 15 個專案、3 個平台,系統打造好之後很多事接近自動化。不用 Notion 不用 Trello,不用請助理
另外兩個成本:
- 要有紀律 —— 品質檢查和清理要定期跑,不跑就爛
- 門檻在 —— hooks 要寫程式,skills 要寫文件模板,不是裝個 app 就能用
回到 Karpathy
Karpathy 的 llm-wiki 讓我重新看了一次自己的系統。不是因為他告訴我該怎麼做,是因為他給了我一個框架去理解我已經在做的事
我從他的架構裡提煉了品質檢查的概念,從 Lex 的做法裡確認了我為什麼選擇留下來
你的系統不會跟我的長一樣,也不該跟 Karpathy 的長一樣。但如果你在用 AI 工作,值得問自己一個問題:你的知識在 session 之間活著,還是每次都重新來過?
還沒解的問題
這套系統跑了一年半,hook 是程式碼,壞了馬上知道。但 skill 是一段 prompt,agent 是一個自主 worker —— 這些有 AI 在裡面的元件,我到現在還不知道怎麼測試它是不是還在正常運作
這是我接下來要解的題。如果你也在想這件事,歡迎來交流
這是 Karpathy llm-wiki 系列的完結篇。上篇在這
