1995 年,野中郁次郎和竹內弘高在《創造知識的企業》裡,把哲學家 Michael Polanyi 1966 年的洞察 —「人類知道的比說得出來的多」— 系統化成一個影響管理學界三十年的框架:顯性知識和隱性知識。
顯性知識是寫下來的東西 — 文件、程式碼、流程圖。可以複製、傳遞、搜尋。隱性知識是存在人腦裡的東西 — 為什麼這個 config 長這樣、為什麼不用那個 library、上次改這段 code 炸了什麼。這些知識沒人問就沒人說,問了也不一定說得清楚。
每個軟體專案都有這兩層。Git log 和 code 是顯性的。但「上次 mock database 測試全綠結果 prod migration 爆了」、「這個使用者喜歡簡短回應不要囉嗦」、「auth middleware 重寫是因為法規不是因為技術債」— 這些是隱性的。
AI coding agent 讀 code 很快。CLAUDE.md 和設定檔也會載入,提供一些團隊慣例。但每次新對話,這些顯性知識以外的東西 — 上次的修正、踩過的坑、決策的脈絡 — 全部歸零。
一個新進工程師第一天上班,拿到 codebase access,可以讀所有 code、跑所有測試、看所有 commit history。顯性知識全開。
但第一個月最常問的問題不是「這個函數做什麼」— code 會講。最常問的是:「為什麼這樣做?」「之前試過別的做法嗎?」「這個奇怪的命名有歷史原因嗎?」
答案不在 code 裡。在同事腦裡。
AI agent 的處境一模一樣。每次新對話,它讀完 code、看完設定檔、理解了專案結構 — 然後開始用預設判斷做事。上次告訴它「這個專案的測試不要 mock database」,這次它又 mock 了。上次說「commit message 用英文」,這次它寫中文。不是不聽話,是不記得。
沒有記憶的 agent 就是永遠在第一天上班的新人。每天都很認真,每天都犯同樣的錯。
Claude Code 的 auto-memory 把隱性知識變成可持久化的檔案。對話過程中,agent 觀察到值得記住的東西就寫成一份 markdown,存在 .claude/ 目錄下的記憶資料夾。下次對話開始時,記憶的索引檔(MEMORY.md)被載入 context,細節則在需要時按需讀取 — agent 不是從零開始,而是帶著累積的判斷依據上場。
記憶不是對話紀錄。對話紀錄是逐字稿,什麼都有,重要的淹在不重要的裡面。記憶是萃取過的判斷 — 只留下跨對話仍然有用的資訊。
Claude Code 把記憶分成四種類型:
user — 關於使用者的資訊。角色、偏好、技能程度。「資深後端工程師,第一次碰 React」影響的是 agent 解釋事情的方式和深度。
feedback — 使用者給過的修正和確認。「不要 mock database」、「commit message 用英文」、「回應不要加 emoji」。讓 agent 不重複犯同一個錯 — 同時也記住哪些做法被確認是對的,避免矯枉過正。
project — 專案進行中的狀態和決策。誰在做什麼、什麼 deadline、什麼技術決策已定。「auth middleware 重寫是法規驅動的,不是技術債」影響 agent 建議的方向。
reference — 外部資源的指標。「pipeline bugs 追蹤在 Linear 的 INGEST project」、「oncall dashboard 在某個 Grafana URL」。讓 agent 知道去哪裡找資訊。
四種類型解決的問題不同,但共同點是:它們記的都不是 code 本身,是 code 背後的 context。
記憶系統最容易犯的錯是記太多。
Code patterns、架構、檔案路徑 — 不用記,讀 code 就知道。Git history、誰改了什麼 — 不用記,git log 是權威來源。Debug 方案 — 不用記,fix 在 code 裡,context 在 commit message 裡。
這些東西都是顯性知識 — 它們已經有家了。記到 memory 裡不但重複,還會過時。記憶裡寫著「UserService 在 src/services/user.ts」,結果上週重構搬走了 — agent 拿著過時的記憶做判斷,比沒有記憶更危險。
判斷標準:如果這個資訊可以從 code 或 git 的當前狀態推導出來,不要記。記憶只存「從當前狀態推導不出來的東西」— 決策的理由、踩過的坑、使用者的偏好、專案的非技術脈絡。
記憶跟 code 一樣需要維護。過時的記憶要更新或刪除。「上線前 freeze merge」— 如果 freeze 已經結束了,這條記憶就該清掉。
野中和竹內描述的核心難題是:企業最有價值的知識存在員工腦裡,員工走了知識就不見了。三十年來的 knowledge management 嘗試 — wiki、Confluence、Notion — 解決了一部分,但隱性知識的本質是「不問不說」,而文件容易寫完就不再更新。
AI agent 的記憶系統做了一件不同的事:它不是要求人把知識寫成文件,而是在日常工作的過程中自動萃取。沒有人刻意「寫文件」,但糾正 agent 的每一次、解釋專案背景的每一次、做技術決策的每一次,都在把隱性知識轉成持久化的記憶檔案。
野中和竹內把這個過程叫「外化」— 隱性知識轉換成可傳遞的顯性形式。他們的年代,外化需要刻意坐下來做:訪談、寫報告、整理 best practices。三十年後,外化變成了工作本身的副產品 — 雖然定期檢視和清理記憶仍然是人的責任,但萃取的起點不再需要刻意安排。
三十年前的問題:組織裡最值錢的知識最容易消失。現在的問題:AI agent 每次對話都從零開始。解法是同一個 — 把腦裡的東西變成可傳遞的形式。只是這次不是寫在 wiki 裡給下一個人看,是寫在記憶檔裡給下一次對話的 agent 看。
延伸閱讀