今天,我正式開始實作 Agent 的記憶系統。

Agent Build Log Episode 017:以 SQLite 和 Markdown 實作 Agent 記憶系統

第一版不會先使用向量資料庫或複雜的 RAG 架構。

我打算先用 SQLite 和 Markdown,組成一套簡單、透明,而且可以直接檢查內容的記憶系統。

這個設計主要參考 OpenClaw 的記憶方式。

在歷史記憶的部分,系統會按照日期建立紀錄。

每一天都會有一個以 yyyy-mm-dd 命名的目錄,用來保存當天發生的事情。

但一天之內,Agent 可能會有很多次不同的對話和任務。

所以我不打算把所有內容都塞進同一個 Markdown 檔案。

同一天內的每一個 session,都可以有自己獨立的 Markdown 檔。

這樣可以保留每次 session 的上下文,也能避免不同任務的內容全部混在一起。

Markdown 負責保存人可以直接閱讀的記憶內容。

SQLite 則負責保存結構化資料,例如 session 的時間、標題、檔案位置、狀態,以及不同記憶之間的關聯。

Agent 需要尋找過去的記憶時,可以先透過 SQLite 找到可能相關的日期和 session,再讀取對應的 Markdown 檔案。

今天,我先從最簡單的結構開始:

SQLite 負責索引。

Markdown 負責記住發生過的事情。

而每一段記憶,都從一個日期和一次 session 開始。

Updated: