規則寫在 CLAUDE.md 它還是照做錯?問題不在記不住,在沒生效
編輯:BJ最後檢查:2026-09-17主要來源:GitHub
你在 CLAUDE.md 裡寫了規則,agent 照樣做成別的樣子;三天前裁定過的事,今天它拿舊版本回答你,這篇說明為什麼「幫 AI 加記憶」解不掉這件事,以及 Epitype 這類治理層在做什麼、要不要錢、什麼人不用碰
你大概遇過這個情況
你在 CLAUDE.md 裡寫得清清楚楚:這個專案不要自己跑 npm install、commit 訊息用中文、不要動 config/ 底下的東西。
過兩天,它自己跑了 npm install。
或者更氣人的版本:某件事你們前天討論過,你明確說「不要用 A 方案,用 B」。今天它又提了一次 A,講得像第一次想到一樣。
再來一個:對話進行到一半跳出壓縮提示,壓縮完之後,它變得像剛認識你。
大部分人的第一反應是「這個模型好笨」。但這三件事其實不是笨,是同一個問題的三種長相:規則有被存下來,可是「存下來」跟「真的生效」中間還隔著兩關——需要的那一刻它有沒有拿到,拿到了會不會照做。
利益揭露: 本文介紹的 Epitype 由本站作者開發並以 MIT 授權開源。本站沒有因此收取任何費用,但這仍是有利害關係的介紹,請把下面的判斷當成一個開發者在講自己的工具,該查證的地方照樣查證。文中所有「它做不到什麼」的段落,和介紹其他工具時的標準一致。
為什麼「幫 AI 加記憶」解不掉這件事
站上寫過不少 AI 記憶工具,Letta、Zep、Cognee、mem0,也做過 三者的比較。
這些工具解的是一個真問題:怎麼讓 AI 記得更多、記得更久。
但你上面遇到的狀況,記憶其實沒有丟。規則就躺在 CLAUDE.md 裡,你隨時打開都看得到。你前天的裁定也還在對話紀錄裡。
問題出在後面那一段:
第一,該用的那條沒被選上。 每次對話能塞給模型的內容有上限,你的規則檔如果長到一定程度,它每次只會「看過」而不是「照做」,因為那段文字混在一大堆別的東西裡面。
第二,被換掉的舊版本還在。 你前天說「用 B 不要用 A」,但「A 方案」這幾個字在對話紀錄裡出現過十次、「B」只出現兩次。它撈回來的很可能是聲量比較大的那個,不是比較新的那個。
第三,壓縮會把細節磨平。 壓縮是為了讓對話能繼續,它保留的是「講過什麼主題」,不是「當時你到底說了哪一句」。那些「不要」「改成」「以後都」通常是最先被磨掉的。
第四,就算送到它面前,它也不一定照做。 這點最違反直覺,也是多數人省略掉的一步。把規則改成「用到時再去讀」的指路檔,它多半不會去讀;那乾脆整份常駐,規則整天擺在眼前,照樣會被違反。看過規則跟照著規則做,是兩件事。
所以「再加一個記憶資料庫」不會改善這四件事,因為存不存得下從來不是瓶頸。而且光是把規則送到它面前也還不夠 —— 得有東西在它真的做錯的那一刻擋下來。
Epitype 在做什麼
用一句話講:它不多存東西,它管你已經存下來的東西怎麼被用。
它不取代 CLAUDE.md 或 AGENTS.md,你原本的檔案放在哪就還在哪。它接的是 Claude Code 和 Codex 本來就有的 hook,在五個時間點插手:
對話開始的時候,只送「有事要處理」的東西給它。沒事要處理的那一場,什麼都不送。這點跟直覺相反但很重要 —— 多數人以為記憶工具是「盡量多塞」,它反過來,因為塞越多、真正重要的那條越容易被淹掉。
你每次送出訊息的時候,從你的筆記裡挑最多五張相關的卡片附上去,而且有總量上限。
它要寫檔案的時候,先檢查即將寫進去的內容有沒有違反已經定案的規則。有的話擋下來,並且留一行紀錄。
壓縮發生之前,先把對話尾端寫成一份小地圖。壓縮之後,它拿得到這份地圖的路徑,可以自己回去讀當時的原話。
一輪回答結束的時候,如果它又提了你已經否決的方案、或又問了你已經裁定過的問題,把那段回答攔下來。
它只用 Python 標準函式庫,不呼叫任何模型,也不需要註冊任何服務。所以它裝著不會偷偷花你的 token,這點跟大部分 AI 記憶工具不一樣。
你實際會看到什麼
講機制容易變抽象,講三個具體畫面比較快。
週一你否決掉的做法,週四它又提一次。 那段回覆會被攔下來,附上當初結掉這題的那條裁定,連同日期和是誰裁的。你不用自己想「我是不是講過」。
它正要把一段違反規則的內容寫進檔案。 在落盤前被擋下來,留一列紀錄。之後你查得到擋了什麼、擋了幾次 —— 而且如果同一條規則在一場對話裡擋了三次,那通常代表規則寫太死,不是它不聽話。
做到一半 context 被壓縮。 下一輪開場它會拿到壓縮前那份地圖的路徑,去讀當時真正說過的話,而不是憑印象重建。
它明確做不到的事
這段比功能重要,而且該工具自己的文件也把這些寫在顯眼的地方。
它擋內容,不擋動作。 它不會攔下任何一條 shell 指令、不會阻止刪檔。這種事是 Claude Code 的 permissions.deny 和 Codex 的 execpolicy 的職責,不是它的。如果你想要的是「不讓 AI 執行危險指令」,這個工具給不了你,你要去設 host 本身的權限。
注入的記憶只是參考,不是命令。 它送進去的內容沒有辦法覆蓋系統層的指示,也沒辦法替任何工具授權。
它只碰得到 host 開放的事件。 如果 agent 是用你沒攔到的方式讀檔,那次讀取就在治理範圍外。
它還很新。 專案裡的測試驗的是行為和失敗處理,不是在真實專案跑了幾個月的結果。2026 年 9 月才開始,還沒累積長期的實戰回饋。
這幾點值得原文照抄的原因是:同類工具很多會暗示自己能「保證」AI 照規矩做。做不到。任何跑在 hook 上的東西都做不到。
要不要錢、怎麼裝
MIT 授權,完全免費,也沒有雲端版可以賣你。
需要 Python 3.11 以上,以及一個支援 hook 的 Claude Code 或 Codex。
pip install epitype裝之前先預覽它會改什麼:
epitype install --dry-run確認列出來的路徑都是你預期的,再實際裝,然後跑一次健康檢查:
epitype install
epitype doctor用 Codex 的話多一個步驟:註冊 hook 和信任 hook 是兩件事。 裝完要在 Codex 裡實際核准,跑 epitype trust 檢查,看到五個都通過才算好。
移除的時候一樣先 epitype uninstall --dry-run 看一遍再動手,它只收回自己註冊的東西,不動你原本的記憶檔。
它在整條工作流裡的位置
Agent 用久了會出四種問題,站上四塊剛好都寫過,而且處理順序有先後。
第一,終端機輸出變胖。 你跑一次測試、一次 git diff,那整包輸出會塞進上下文。這一塊是 RTK 在處理。
第二,session 變胖。 一場對話從早開到晚,早上的東西每一輪都還在重送。這一塊是 clauditor 在處理,它會提醒你該交接重開了。
第三,回覆變胖。 它改完程式碼之後寫一長段你不會看完的說明,而你付了那段的錢。這一塊是 輸出規則 在處理。
第四,記憶沒生效。 前面三塊都是在處理「太多」,這一塊是在處理「有存到但沒用上」。這是 Epitype 的位置。
順序有意義:如果你上下文一直爆掉,先處理前面三塊,因為那三塊沒處理好的話,你的規則會被雜訊淹掉,裝什麼治理層都一樣。等到上下文乾淨了,還是會遇到「它就是不照我寫的做」,那才輪到第四塊。
誰該用、誰先不用
值得試的情況: 你已經在用 Claude Code 或 Codex,手上有一份自己在維護的 CLAUDE.md 或 AGENTS.md,而且你已經被「它忘記我裁定過的事」煩過不只一次。另外,如果你需要留下「什麼被擋下來」的紀錄,這個有現成的。
先不用的情況: 你剛開始用 CLI agent、規則檔還很短。規則不多的時候,直接塞進 CLAUDE.md 就夠了,這時候多裝一層只是多一個要維護的東西。
這個工具給不了你的: 如果你要的是「擋住危險指令」,去設 host 的權限,不是裝這個。如果你要的是「讓 AI 記得更多專案知識」,那是 Letta、Cognee 那一派的事,跟這個不是同一題。
我會這樣建議
如果你看到第一段就在點頭,那這個問題你已經有了,值得花二十分鐘試試看。
試的順序:先在一個你不心疼的專案裝,用 --dry-run 看清楚它要改什麼,裝完跑 doctor,然後照常工作一個禮拜。一個禮拜後去看它的閘門紀錄,那份紀錄比任何說明文件都能告訴你這東西對你有沒有用。
如果一週下來它什麼都沒擋到,那代表你的規則其實運作得還行,uninstall 掉就好,它不會留下東西。
如果它擋到的東西讓你想起「對,我上次就是被這個搞」,那你就找到答案了。
最後講一句比工具重要的事:agent 不照規矩做,有很大一部分是規則本身寫得不好。 寫「不要動 config」不如寫「不要動 config,那裡面的值是部署時注入的,改了本機會過但線上會壞」。講清楚理由,它在你沒寫到的情況下也比較不會亂猜。這件事不用裝任何工具就能先做。
資料來源
本文依 Epitype 的 GitHub README、專案文件與 PyPI 頁面整理。該專案由本站作者開發,2026 年 9 月建立,版本與功能更新可能很快,實際安裝前請以官方 repo 為準。文中關於 host 權限機制的說明依 Claude Code 與 Codex 官方文件。
- https://github.com/leavemagic-cyber/epitype
- https://pypi.org/project/epitype/
延伸閱讀
用中文白話介紹 clauditor 如何監控 Claude Code 長 session 的 token 浪費、何時提醒換新 session、適合誰使用,以及安裝與風險提醒。
claude-token-efficient 是什麼?用 CLAUDE.md 讓 Claude Code 回覆更精簡的規則包用中文白話介紹 claude-token-efficient 如何用短版 CLAUDE.md 控制 Claude Code 回覆長度、什麼情況有效、什麼情況不適合,以及使用前的限制。
怎麼幫你的 AI 加上記憶?從選工具到實際接起來的完整流程看完 mem0、Letta、Zep、Cognee 還是不知道怎麼動手?這篇不比較工具,而是帶你走一遍實際流程:怎麼判斷你到底需不需要記憶、該選哪個、怎麼最小化接起來、什麼時候該分層搭配,以及新手最常犯的幾個錯。
用 OpenHands 跑 Claude Code、Codex:ACP 是什麼,已經有訂閱的人怎麼接OpenHands 的 Agent Canvas 可以透過 ACP 直接接 Claude Code、Codex 和 Gemini CLI,沿用你原本登入的訂閱帳號、不必另外付 API 費,本篇說明 ACP 是什麼、在設定精靈裡怎麼選、登入憑證要放在哪台電腦,以及什麼時候該用 OpenHands 自己的 agent、什麼時候接 Claude Code 比較划算。
Open Design 是什麼?把 Claude Code、Cursor 變成設計助理的開源工具Open Design 是一個 local-first、開源的 AI 設計工作流工具,可以把 Claude Code、Codex、Cursor Agent、Gemini CLI 等 coding agent 接進設計生成流程。這篇用新手角度說明它能做什麼、好不好上手、跟 Claude Design 差在哪,以及第一次該怎麼低風險試用。
Claude / Codex Skills 是什麼?AI Agent 技能包的功能、限制與新手使用建議用中文白話整理 Claude / Codex Skills 與 Agent Skills 生態,說明它適合誰、風險在哪、和 MCP、CLAUDE.md、n8n 有什麼差異。