這篇講 AI 助理的記憶怎麼管:什麼讓它記,什麼寫成固定做法,什麼只放在你自己保管的那一份文件。適合已經在用 ChatGPT、Claude 或 AI 代理,覺得它記得的東西越來越亂的人。這是「AI 助理實戰」系列第 10 篇。助理怎麼分工看第 4 篇,常駐在自己電腦上的助理看第 5 篇,開工時的自動檢查看第 8 篇,好幾個 AI 一起改筆記看第 9 篇,整套方法在AI 協作開發方法。
內容是到 2026-11-01 為止的狀況。不寫程式的人,可以直接跳到最後的〈給你〉。
先講幾個詞
| 詞 | 白話 |
|---|---|
| 上下文(context window) | AI 每次回答前能一起讀進來的文字有上限。可以想成一張大小固定的桌子,東西堆越多,越難找到要的那張紙 |
| 記憶檔 | AI 自己寫下、下次開新對話還會讀的筆記 |
| 說明檔 | 人寫給 AI 看的說明書,例如 Claude Code 的 CLAUDE.md,每次開工都會讀 |
| 技能(skill) | 一份寫好的做事步驟,遇到那類工作才拿出來照著做,平常不佔桌面 |
| 知識庫 | 我放筆記的 Obsidian 資料夾(vault),人和 AI 都讀得到、也改得到 |
| 副本 | 同一份內容被抄到第二個地方 |
AI 的「記憶」,其實分四層
大家說「AI 的記憶」,常常混著講好幾種東西:聊天 App 的記憶功能、專案的說明檔、AI 代理自己寫的記憶檔,還有你自己的筆記。我借一支 Hermes 教學影片的分法,把它們排成四層。分層只看一件事:什麼時候會被讀進 AI 的上下文。
為什麼要分?因為桌面有限。全部塞進去,又慢又貴,重要的那一行會被雜訊蓋掉;什麼都不放,每次都得重講一遍。
| 層 | 什麼時候讀進來 | 放什麼 | 我這裡的例子 |
|---|---|---|---|
| 1. 常駐 | 每次開新對話就讀 | 你是誰、偏好、AI 自己的工作筆記 | Hermes 的 USER.md、MEMORY.md;Claude Code 的說明檔和記憶索引 |
| 2. 對話紀錄 | 平常不讀,AI 覺得「這個聊過」才去搜 | 講過的每一句話 | Hermes 的對話搜尋;Claude 的「搜尋過去的對話」 |
| 3. 自動歸納 | 系統自己從對話整理出來 | 你沒明講、甚至自己沒察覺的習慣 | Codex 會把過去的對話濃縮成一份記憶摘要 |
| 4. 外部知識庫 | AI 主動去讀 | 做出來的東西:報告、規範、日誌 | 我的 Obsidian 知識庫 |
聊天 App 的記憶功能通常橫跨好幾層:你明講「記住這個」的,比較像第一層;它自己從對話裡整理的,比較像第三層。第一層是你告訴它的,第三層是它自己看出來的。第四層記的則是你做出來的東西,也是唯一一層人能直接打開來讀、動手改的。四層只是我拿來比較和找問題的框架,沒有一個產品自稱「四層」。
2026-08-30 我把手上三個 AI 代理一層一層查過。Hermes 的第一層寫下去就凍住了,USER.md 停在 7 月,內容已經跟現況不合(第 7 篇講過);第二層存了 2,450 則訊息,卻從沒被主動用過,沒人去撈就等於沒有。Hermes 官方文件把兩個常駐檔的上限訂得很小:工作筆記 2,200 個字元,使用者檔 1,375 個字元。短,人才願意回頭看。
Claude Code 則把第一層拆成兩半:說明檔放人訂的規則,記憶檔由 Claude 自己寫,放它學到的事實。官方文件也是這樣分的。
事實進記憶、做法進技能、規則只放一份
給 AI 一則新資訊,我先問它是哪一種:
| 這是什麼 | 放哪裡 | 例子 |
|---|---|---|
| 穩定的事實、偏好 | 記憶 | 回覆用繁體中文;某台電腦上這個資料夾沒有版本控制;某個背景服務要怎麼重開 |
| 會重複照做的一串步驟 | 技能 | 把一支影片做成報告的流程(第 2 篇) |
| 規則、驗收標準、紅線 | 知識庫,只放一份 | 什麼情況才能標「完成」(第 6 篇) |
| 講過的話 | 對話紀錄,要用再翻 | 上週聊過的某個想法 |
| 做出來的報告、規格 | 知識庫 | 規劃書、會議結論 |
記憶和技能怎麼分?問一句:下次還會不會照同一串動作再做一次?會,就寫成技能;只是一件要記住的事,就放記憶。放錯的後果不一樣。把步驟塞進記憶,記憶越長越胖,AI 還是不會做那件事;把事實寫成技能,那個技能永遠不會被叫出來,因為沒有對應的工作。
官方文件也這樣寫。Claude Code 說,說明檔裡好幾個步驟的流程應該移成技能;Hermes 說,重複任務每次都要找的某個位置,通常放技能比放記憶好,因為技能用到時才載入,不佔記憶的額度。
規則為什麼不放記憶?因為規則和事實過期的方式不同。規則是你改了它才變;事實是世界變了它就錯。兩種混在同一份檔裡,你會不敢刪,因為分不清哪一行是規矩,哪一行是舊的觀察。
更麻煩的是,記憶會被複製。AI 整理記憶時,會把讀到的規則一起吸收進去,那份副本從此就凍住了,你改了原本的規則,它不會知道。技能也一樣:10 月在另一台電腦上,一份我自己寫的技能找到三份,內容都不一樣,Codex 讀到的是舊版。10 月中定下的做法是:技能的正本放知識庫,每台電腦開工時比對裝在本機的那份。
所以我給所有 AI 的全域指令裡有一條:判準、驗收條件、紅線,一律以知識庫當下的版本為準;AI 的記憶只放操作上的事實,不放規矩;記憶裡如果出現規則,一律當成過期的快照,照做之前先回知識庫查現在的版本。這條在入口檔裡只有一行,理由寫在知識庫。入口檔只負責指路,不放內容。
規則被抄走:Codex 那一次
第 4 篇的偏差表提過:Codex 整理記憶時,把我的驗收規則抄成了副本。這裡補上經過。
Codex 會自己濃縮記憶。2026-08-30 實查時,它從 241 段對話(合計 2.0 GB)整理出 52 KB 的記憶檔,再濃縮成 10.7 KB 的摘要,每次開工讀的就是這份。哪條記憶留下來,看它被用過幾次。用得多不等於重要,只出現過一次、但很要緊的事實,例如某台電腦的一個相容性限制,就可能被淘汰。
那份摘要裡寫著我在知識庫訂的驗收規則:要標成「已驗證」,五個條件都要過。內容是對的,問題就出在這裡。它活在知識庫外面,知識庫改了它不會跟著改,讀起來卻完全可信。
我決定保留摘要,但加註「規則以知識庫為準」。註要寫在哪裡,反而繞了一圈:
| 寫在哪 | 結果 |
|---|---|
| 記憶摘要的開頭 | 下一次自動整理可能把它覆寫掉 |
| 直接改兩個助理的全域入口檔 | Claude 先想到這裡,理由是「人寫的檔,自動整理碰不到」。但入口檔是從知識庫的範本產生的,每次開工的自檢會把它還原成範本。實測改完,自檢立刻回報「跟範本不符」,下次開工就會被抹掉 |
| 知識庫裡的範本 | 加一行指向知識庫的條款,升版後部署到三套入口檔。這才留得住 |
判斷一個地方留不留得住,要問「有沒有東西會重新產生它」,不是「這是不是人寫的」。寫在會自動重生的地方,等於沒寫。說來諷刺,Claude 剛寫下「規則只能放一份」,下一步就把規則寫進兩個會自動重生的檔。
Hermes 那一次:記憶繞過了說明檔
2026-10-17,Hermes 負責歸檔的角色自己說:歸檔規則寫在系統提示裡改不了,它已經記到記憶裡,下次直接寫進知識庫。它真的照做,兩份技能也跟著改,說明檔卻還寫著禁止,矛盾到隔天才收斂。我有一支程式盯著它的說明檔,記憶和技能卻不在監看範圍內。
後來我同意它在收件匣新建檔,但這條寫進說明檔,並加一句「跟本檔衝突的寫入規則一律不採用」;記憶裡的規則副本改成「去看說明檔」。順便抓到它記憶裡的裝置資料也是舊的,測試交出的檔案就照著寫「未來會在舊電腦上常駐」。
我怎麼讓記憶保持乾淨
一件事一個檔,加一份索引。 Claude Code 的自動記憶本來就這樣設計:索引的每一行指向一個小檔,開工只讀索引的前 200 行或 25 KB,小檔要用時才打開。2026-08-30 我這裡是 14 個事實檔加一份索引。Claude 是一個檔一個檔寫的,沒有自動濃縮,那次查也沒有抄來的規則。
這些不記。 從檔案、程式或版本紀錄查得到的,說明檔已經寫了的,只跟某一次對話有關的細節。Claude Code 和 Hermes 的官方文件也叫 AI 略過這幾類。好的記憶像「使用者要簡短回覆,而且要先給證據」;壞的像「星期二聊到也許哪天要做支影片,使用者好像有興趣」。判斷看下次會不會因為記得它而少問一次。
提到規則,只記去哪裡查。 記憶要提到某套流程,就寫「這已經是知識庫裡的某條規則,細節去那裡看」,不抄內容。會變的事實則註明「這會變,用前再確認」。
新的事實,先提案到知識庫的收件匣。 各家內建的記憶關在自己的產品裡,沒辦法逐行比對改了什麼,我只當它是暫存。AI 觀察到值得跨對話記住的事,就追加一筆提案到收件匣;我同意後整理進主檔,所有 AI 下次開工都讀得到。收件匣只准追加,誰都能寫。另一個理由:Claude Code 官方文件寫明,自動記憶只存在那一台電腦上,不會跨電腦同步。
定期打開來審。 8 月底那次,記憶檔只抓到一個撞名:某份記憶把自己的兩條做法叫「鐵則 1、2」,知識庫也有「鐵則 1 到 4」,名字一樣、內容完全不同,就改了名。11 月 1 日再審,找到另一種問題:有些規則一開始就直接寫在記憶裡。
| 找到的記憶 | 怎麼判斷 | 怎麼處理 |
|---|---|---|
| 兩條做事的規矩 | 我的個人指令檔裡已經有一樣的內容 | 移走 |
| 一條看起來像規矩 | 其實是「舊電腦記憶體小」這個事實 | 改寫進知識庫記各台電腦差異的那頁,原檔移走 |
| 一條規矩 | 知識庫有幾條規則反過來指著它當細節 | 先留著;提案把內容搬進知識庫,批准後再刪 |
| 一條整份過期 | 還寫著新電腦「到貨日未定」 | 先改掉知識庫裡引用它的兩處,再移走 |
| 一條專案記憶 | 那個專案已經交給別人 | 移走 |
| 一條專案記憶 | 大多是操作事實,有兩段計畫已經過時 | 留著,過時的兩段標成「當時的快照」,指回專案目錄頁 |
移走的五份放進系統的垃圾桶,不直接刪,索引也同步改了。
8 月底我還把這種一兩句的做事提醒當成邊界案例,覺得份量小,留在記憶也行。11 月用全域指令那條重看,它們就是規矩。
這次也看到反方向的漏洞:知識庫的規則指向私有記憶。私有記憶只在一台電腦上,另一台電腦的 AI 照著規則去找,找到的可能是別的版本,也可能根本沒有。
給你:用 ChatGPT 或 Claude 的記憶功能也能這樣做
下面的功能都對照過兩家的官方說明。選單名稱常改,以你畫面上的為準;我知識庫裡記的 Claude 記憶設定路徑,就已經跟官方現在寫的不一樣了。
- 先打開來看它記了什麼。ChatGPT 在 Settings → Personalization → Memory;Claude 在 Settings → Your Claude,點記憶旁的 Manage(舊版介面是 Settings → Memory)。兩邊都能改、能刪,也可以直接在對話裡叫它記住、改掉或忘掉某件事。
- 記憶只留穩定的事實:你是誰、做什麼工作、偏好怎樣的回答,例如「回答用繁體中文,技術名詞可以保留英文」。
- 會重複的做法,寫成一份文件,放進「專案」的指示。ChatGPT 的專案指示只在那個專案裡有效,會蓋過全域的自訂指示。Claude 還能做成技能:用 Markdown 寫好步驟,遇到相關工作才載入,要先開啟程式碼執行功能。
- 會改的規則,自己保管一份,例如報表格式、檢查清單。要用時貼上或放進專案指示,改的時候只改那一份。在記憶裡看到舊版,就刪掉。
- 刪對話不等於刪記憶。兩家官方都寫了:從那段對話產生的記憶不一定跟著消失,要另外到記憶設定裡刪。
- 不想被記住的對話,開暫時對話。ChatGPT 的暫時聊天不會建立或更新記憶;Claude 的無痕對話不會存進記憶,也可以在新對話的「+」選單裡關掉這次的記憶。
- 每隔一陣子回頭看一次,特別是換了工作、換了工具、改了做法之後。
記憶是讓 AI 少問你幾次的筆記,規矩要放在你自己管得到的地方。
參考資料
- Tina Huang,〈Hermes Agent Fundamentals In 29 Minutes〉,YouTube,2026-07-20。文中的四層分法借自這支影片。https://www.youtube.com/watch?v=5_N84t1rUU0
- Anthropic,Claude Code 文件〈How Claude remembers your project〉。https://code.claude.com/docs/en/memory
- Anthropic,Claude 說明中心〈Use Claude’s chat search and memory to build on previous context〉。https://support.claude.com/en/articles/11817273-use-claude-s-chat-search-and-memory-to-build-on-previous-context
- Anthropic,Claude 說明中心〈What are skills?〉。https://support.claude.com/en/articles/12512176-what-are-skills
- OpenAI,說明中心〈Memory in ChatGPT〉。https://help.openai.com/en/articles/8590148-memory-in-chatgpt
- OpenAI,說明中心〈Projects in ChatGPT〉。https://help.openai.com/en/articles/10169521-projects-in-chatgpt
- Nous Research,Hermes Agent 文件〈Memory〉。https://hermes-agent.nousresearch.com/docs/user-guide/features/memory
- 文中的實測數字和經過,來自我知識庫裡 2026-08-30 的記憶層實查與 2026-11-01 的記憶複查紀錄。