
MemoryCustodian
Zekun Wang (waittim) · 程式設計
MemoryCustodian 是一套免費、開源的工具,為程式碼代理提供持久的專案記憶。它把決策、限制與被否決的想法,以純 Markdown 檔案的形式存進你的儲存庫,再透過一份清單,只把與任務相關的部分傳給代理。結果是:提示詞不再塞滿雜訊,跨工作階段、跨代理、跨團隊成員的產出更一致。它是為了管理 AI 程式碼代理的上下文而打造,不是拿來當聊天紀錄。

關於 MemoryCustodian
MemoryCustodian 是什麼
MemoryCustodian 是一套 AI 程式碼代理記憶工具,為使用 Codex、Claude Code、Gemini 或任何 shell 型代理的人而設計。它也適合在單一儲存庫上共用多個代理主機、想要單一真相來源的團隊。它鎖定的問題很具體:每個新的代理工作階段,往往會重新學習你的儲存庫早就做過的決定。架構限制、偏好的工作流程、被否決的做法,以及專案當前的樣貌,全都被重新貼進提示詞裡,於是每一項任務都比上一項更沉重。那為什麼會這樣?因為記憶住在對話裡,而對話會被清空。
解法是把持久的專案上下文搬進儲存庫本身。MemoryCustodian 把這些上下文以純 Markdown 保存在 docs/memory/ 底下,讓人可以像審程式碼一樣審閱與比對。執行任務前,代理讀取的是一小包有界的上下文,而不是整份歷史。這就是代理上下文路由的實際運作。它壓低 token 用量,也避免代理捏造你從未同意的規則。
它不是對話紀錄,而是專案記憶。這個區別很重要,因為這代表記憶能挺過被清空的對話、換掉的模型,或新加入儲存庫的隊友。主要的取捨在於,你必須親手寫出最初的幾個檔案。粗糙的簡報會被內建的狀態與檢查指令標記出來。
開始使用
- 請你的程式碼代理從它的 GitHub 儲存庫安裝 MemoryCustodian skill,然後初始化。
- 或直接執行 CLI:
memory-custodian init --project-root /path/to/project --agent all(把all換成codex、claude或gemini,即可指定單一主機)。 - 檢視
docs/memory/裡產生的檔案,特別是brief.md,並依照你有公信力的專案文件補上 TODO。 - 工作時用
memory-custodian add記錄持久記憶,為每一筆加上主體與佐證。 - 執行
memory-custodian status與memory-custodian check,確認協定健康後再依賴它。
產品資訊
快速了解 MemoryCustodian 的定價、支援平台與效能。
適合對象
這項工具最適合的使用者、任務與情境。
使用者
- 每天使用程式碼代理的開發者:設定好核心記憶檔案後,能省下反覆重新說明專案規則的時間。
- 共用一個儲存庫的小型開發團隊:記憶存在版本控制裡,所以新隊友的代理會繼承同樣的決定。
- 在 Codex、Claude Code 與 Gemini 之間切換的人:一組記憶就能服務所有支援的主機。
任務
- 保留架構決策:記錄選了什麼、為什麼選,讓後續工作階段不會默默推翻它。
- 追蹤被否決的做法:`do-not-use.md` 讓代理不再重試團隊早已排除的路徑。
- 讓新的代理工作階段上手:一包有界的上下文,在第一次提示前就載入專案樣貌。
情境
- 隔了很久才回頭接一個儲存庫:簡報與決策檔案能快速重建上下文,不必翻找舊對話。
- 審查 pull request:限制會浮現出代理或審查者該遵守的不可退讓點。
- 在 CI 裡執行代理:純 Python 的 CLI 可離線運作,不需要向量資料庫或外部服務。
主要功能
原生於儲存庫的 Markdown 記憶
MemoryCustodian 把所有專案記憶以純 Markdown 存在 docs/memory/。這代表它能被審閱、比對、提交與安全回復,就跟你的原始碼一樣,而當記憶承載的是真正的工程決策時,這正是重點。沒有任何東西被鎖在專有資料庫裡,隊友也能在與程式碼相同的 pull request 裡審閱記憶的變更。
以清單為基礎的上下文路由
這個工具不是把整份歷史塞進每個提示詞,而是先讀 manifest.md,再讀 brief.md,接著只讀清單為你的任務指名的檔案。路由採用明確的任務與範圍輸入,不做語意猜測,也不做 LLM 排序。代理上下文路由維持確定且可預期。你拿到的是與手邊工作相符的有界上下文包。
標準任務類型
CLI 內建一組固定的任務類別:general、planning、implementation、artifact、preferences、history 與 maintenance。呼叫 read --task implementation 會拉出寫程式相關的記憶,其他任務則依你傳入的範圍載入不同切片。--strict-routing 旗標在範圍不完整或不明確時會直接失敗,而不是猜測。
保守的記憶寫入
作用中的記憶都有佐證。項目會拿到像 MC-DEC-... 與 MC-SUBJ-... 這樣的穩定 ID,每次寫入都需要使用者確認或專案來源,才算數。代理未經確認的觀察會以候選身分留在 inbox.md,直到有人背書為止,這讓幽靈規則進不了你的工作記憶,也遠離你的程式碼。
遺忘、檢查與維護
遺忘採預覽優先且有範圍:memory-custodian forget 會印出一組 Plan ID,你必須確認後才會刪除任何東西。這個預覽步驟很重要,因為記憶檔案是共用的,一次糟糕的刪除可能同時影響所有人的代理。像 compact 這類維護指令會讓檔案維持在預算內,並在你要求時封存最舊的項目。另外還有分別針對路由、新鮮度、隱私、安全與衝突的檢查,包括對基準分支進行的 Git 合併感知審閱。
零依賴的 Python CLI
整套工具只跑在 Python 標準函式庫上。完全沒有第三方執行期依賴。它能離線運作,也不需要 RAG 流程或向量資料庫,因而避開嵌入延遲與幻覺檢索。安裝方式是一次可編輯的 pip install,或一個隨附的腳本包裝器。
優缺點
優點
- 依 MIT 授權免費且開源,沒有付費層級,也沒有用量上限。
- 可離線運作,零第三方執行期依賴,也不需要向量資料庫。
- 記憶以可比對的 Markdown 存在你的儲存庫裡,因此可審閱又可安全回復。
- 一組記憶就能支援 Codex、Claude Code、Gemini 與通用的 shell 代理。
- 有佐證的寫入與穩定 ID,能減少幽靈規則與意外覆寫。
- 資源需求低:沒有伺服器、沒有資料庫,只有儲存庫裡的 Markdown 檔案。
缺點
- 它是面向程式碼代理的開發者工具,非技術使用者會覺得 CLI 與協定概念偏重。
- 能否獲得價值取決於是否用心整理最初的 `brief.md`;未經整理的設定會被標記,路由品質也跟著下滑。
- 記憶回想是確定且基於規則的,所以它不會替你自動摘要雜亂的對話。
常見問題
它為 AI 程式碼代理提供持久的專案記憶。它把決策、限制與被否決的做法存在你的儲存庫裡,只載入與任務相關的部分。如此一來,代理就不必在每次工作階段重新學習同樣的上下文。
相關內容
探索與 MemoryCustodian 相關的工具、技能與文章。
MemoryCustodian 替代方案
Forefront
Forefront · 程式設計Forefront 是一個用來打造開源 AI 的網頁平台。你可以用自己的資料微調主流的開源語言模型、評估它們的表現,再透過 API 執行,或匯出後自行架設。想要封閉式平台的便利、卻堅持要自己擁有模型與資料的開發者,就是這裡的目標客群。
Startkit
StartKit.AI · 程式設計Startkit 是一套用來打造 AI SaaS 與 AI 包裝產品的樣板。可以把它想成一個 AI 新創樣板,把枯燥的部分都先接好了:驗證、Stripe 與 Lemon Squeezy 付款、用量限制、交易型電子郵件,以及一套能與 OpenAI、Anthropic、Groq 或 Llama 溝通的 AI API 啟動套件。你複製儲存庫、設定價格,然後專心在產品中使用者真正願意付費的部分。它建構於 React 與 Tailwind 之上的 Next.js,所以大部分的樣板程式碼對你來說並不陌生。
Testim
Tricentis · 程式設計Testim 是專為網頁、行動與 Salesforce 應用程式打造的 AI 測試自動化平台,用來建立並執行端到端測試。它靠機器學習在介面變動時維持測試穩定,團隊因此少花時間修補壞掉的定位器。對於一款今天就能開始使用的自動化測試工具來說,這表現不算差。你透過在瀏覽器錄製動作來建立測試,需要更多控制時再補上 JavaScript。對忙碌的 QA 團隊來說,這是個可靠的選擇。
