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

換句話講:

1
2
3
AGENTS.md = 開工規則
Obsidian notes = 長期記憶
Codex chats = 當次工作現場

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。

概念上會係咁:

1
2
3
obsidian read path='Codex Memory/Home.md'
obsidian search:context query='deployment'
obsidian backlinks path='Projects/Example Project.md'

如果 CLI 暫時用唔到,退一步直接讀 markdown files 都可以。重點係 memory 用普通 text notes 保存,不會鎖死喺某個 app 入面。

Graph View 有咩用

Obsidian Graph View 唔係主要工作台,但好適合做健康檢查。

如果某份 note 單獨一粒,代表佢可能冇同其他 memory note 建立 link。最簡單做法係加返 wiki links:

1
2
3
[[Codex Memory/Home]]
[[Codex Memory/Decisions]]
[[Projects/Example Project]]

Graph View 就會幫你睇到 central memory 有冇斷線、有冇孤島 note、有冇 project 被遺漏。

加新 project 嘅流程

之後加新 project,我會跟一個固定流程:

  1. 先掃 project structure 同重要 config。
  2. 在 Obsidian 建一份 project note。
  3. 更新 workspace map 同 project index。
  4. 如有需要,在新 project root 放 AGENTS.md
  5. 把重要 context 寫入 decisions 或 chat summary。

如果 project 唔再 active,唔會即刻刪 memory,而係先標記 archived。咁之後想追返歷史,都仲有路可循。

今次 setup 嘅重點

呢套做法唔係神奇自動記憶,而係一個可維護嘅工作習慣。

Codex 負責做事,Obsidian 負責留低真正 durable 嘅 context,AGENTS.md 負責提醒每個 project 用同一套規則開工同收尾。

最後得到嘅效果係:project 可以保持獨立,但重要記憶可以共用。下次再開 project,就唔使由零開始。