Codex project 一多,最麻煩唔係寫 code,而係 context 好容易散。
一個 project 有自己嘅 chat history,另一個 project 又有另一段討論。隔幾日返嚟做,或者由一個 workspace 跳去另一個 workspace,就可能要重新解釋一次背景、決定同已知風險。
今次我整理咗一個做法:用 Obsidian 做 central memory,將真正值得長期保存嘅 project knowledge 留低。
唔直接搬 chat history
一開始最直覺嘅諗法係:可唔可以直接將 Codex chat history 搬去另一個 folder?
實際上我唔建議咁做。Desktop app 通常會有自己嘅內部狀態、cache 同 project index。手動改呢啲資料,就算短時間睇似成功,都可能令 sidebar、project mapping 或 chat 顯示變得唔穩。
最後我採用另一個策略:chat history 繼續由 Codex 管理;長期記憶就寫入 Obsidian。
Central memory 放咩
Obsidian vault 入面,我將 memory 分成幾類:
- workspace map
- project index
- chat summary
- decisions
- command notes
- 每個 project 一份 handoff note
project note 唔係要抄晒所有對話,而係保留下一次開工真正有用嘅內容,例如:
- project 目的
- 技術棧
- 目前狀態
- 已知 bug 或風險
- 重要 decisions
- 下一步要做咩
咁下次 Codex 入 project,就唔使靠估。
AGENTS.md 嘅角色
每個 project root 可以放一份 AGENTS.md。
佢唔係真正記憶本身,而係 Codex 入 project 時嘅工作指令。我的做法係喺入面寫清楚:
- 開始做 project work 前,先讀 Obsidian central memory
- 有實質發現或改動時,更新相關 project note
- 重要 decision 要寫入 shared decisions note
- 唔好為咗搬 chat 而手動改 app internal state
換句話講:
|
|
Durable memory 先值得寫
唔係每句閒聊都要寫入 Obsidian。否則 vault 好快會變成流水帳。
我會將以下內容視為 durable memory:
- code 或 file 改動
- project 狀態發現
- bug / fix
- security 或 deployment note
- user preference
- command 成功或失敗
- 修正之前記錯嘅內容
相反,普通確認、寒暄、重覆資訊,就唔需要寫入。
Obsidian CLI
Obsidian CLI 令呢套 workflow 更順手。Codex 可以透過 CLI 讀 note、search context、睇 links 或 backlinks。
概念上會係咁:
|
|
如果 CLI 暫時用唔到,退一步直接讀 markdown files 都可以。重點係 memory 用普通 text notes 保存,不會鎖死喺某個 app 入面。
Graph View 有咩用
Obsidian Graph View 唔係主要工作台,但好適合做健康檢查。
如果某份 note 單獨一粒,代表佢可能冇同其他 memory note 建立 link。最簡單做法係加返 wiki links:
|
|
Graph View 就會幫你睇到 central memory 有冇斷線、有冇孤島 note、有冇 project 被遺漏。
加新 project 嘅流程
之後加新 project,我會跟一個固定流程:
- 先掃 project structure 同重要 config。
- 在 Obsidian 建一份 project note。
- 更新 workspace map 同 project index。
- 如有需要,在新 project root 放
AGENTS.md。 - 把重要 context 寫入 decisions 或 chat summary。
如果 project 唔再 active,唔會即刻刪 memory,而係先標記 archived。咁之後想追返歷史,都仲有路可循。
今次 setup 嘅重點
呢套做法唔係神奇自動記憶,而係一個可維護嘅工作習慣。
Codex 負責做事,Obsidian 負責留低真正 durable 嘅 context,AGENTS.md 負責提醒每個 project 用同一套規則開工同收尾。
最後得到嘅效果係:project 可以保持獨立,但重要記憶可以共用。下次再開 project,就唔使由零開始。