Kept:從 AI 對話構建本地優先的知識庫
對許多人而言,AI 聊天介面已成為主要的「工作記憶」形式。我們使用它們來追蹤除錯路徑、草擬研究筆記、精練產品決策,並儲存程式碼片段。然而,這些寶貴的智慧歷史通常被鎖在專有供應商的 UI 內,使得在不同平台之間搜尋或整合到更廣泛的個人知識管理(PKM)系統變得困難。
Kept 是一個開源、以本地優先為設計的代理式知識管理器,旨在解決此問題。透過從多個 AI 供應商提取對話並將其儲存為純 Markdown 檔案於您的機器上,Kept 將短暫的聊天歷史轉變為永久、可搜尋且由使用者自行控制的檔案庫。
本地優先存檔的架構
Kept 採用三層架構,將資料從雲端移至本機磁碟,且不依賴脆弱的渲染頁面網頁抓取。
1. Chromium 擴充功能
擴充功能不再抓取 DOM,而是直接從供應商的 API 端點攔截對話資料,使用使用者已登入的會話。它會正規化來自各供應商(包括 ChatGPT、Claude、Gemini、Grok 與 Kimi)的訊息與影像資產,並將負載傳送至本機伺服器。
2. 桌面應用程式
使用 Tauri 2(React 前端與 Rust 後端)構建,桌面應用程式充當中心樞紐。它透過本機伺服器 (http://localhost:18241) 接收來自擴充功能的資料,並執行多項關鍵功能:
- Vault Management(檔案庫管理):將對話寫入帶有 YAML 前置資料的 Markdown 檔案至
~/.kept/vault/。 - Indexing(索引):使用 SQLite FTS5 進行高效能全文搜尋。
- Knowledge Graph(知識圖譜):使用 CozoDB 建立本地知識圖譜,以視覺化不同對話之間的關聯。
3. MCP 伺服器
為了讓檔案庫具備「代理」功能,Kept 包含 Model Context Protocol(MCP)伺服器。此伺服器允許 AI 程式編寫代理(如 Claude Code 或 OpenClaw)以程式化方式列出、讀取、搜尋與管理檔案庫,實質上讓代理能將您的歷史 AI 互動作為上下文來源。
為什麼選擇 Markdown 檔案而非資料庫?
Kept 最重要的設計選擇之一是使用與 Obsidian 相容的 Markdown 檔案庫作為唯一真相來源。雖然資料庫可能提供更快的初始查詢,但檔案為本的方式在長期上具備多項優勢:
- Interoperability(互通性):檔案庫可直接在 VS Code、Obsidian 或任何文字編輯器中開啟。
- Future‑Proofing(未來保證):由於資料以純文字儲存,即使 Kept 應用程式被棄用或供應商 API 變更,檔案庫仍可讀取。
- Recoverability(可復原性):搜尋與圖譜資料庫被視為快取;它們可隨時完全從 Markdown 檔案重建。
隱私與安全
在一切皆雲端同步的時代,Kept 採取嚴格的本地優先立場:
- No Cloud Sync(無雲端同步):沒有託管帳號或雲端備份。所有資料皆保留在
~/.kept/。 - Local Communication(本機通訊):擴充功能使用每次安裝的 bearer token,透過 localhost 與桌面應用程式通訊。
- Configurable Intelligence(可設定的智慧):如主題探索與跨檔案庫聊天等可選功能,可透過使用者選擇的供應商或本機 Ollama 伺服器路由,以確保完整隱私。
挑戰與考量
雖然 Kept 提供了強大的方式來重新取得 AI 歷史,但它仍面臨依賴私有供應商 API 的固有挑戰。正如社群所指出的,這些連接可能脆弱,因為它們依賴未公開的端點,供應商可能在未通知的情況下變更。
然而,透過將 Markdown 檔案庫作為主要儲存層,Kept 降低了資料遺失的風險。即使供應商適配器失效,已儲存至本機磁碟的對話仍保持完整且可存取。
入門指南
Kept 採用 MIT 授權,支援 macOS、Windows 與 Linux。安裝通常只需執行快速安裝腳本,即可設定桌面應用程式並提供 Chromium 擴充功能以手動載入開發者模式。若想將檔案庫整合至 AI 工作流程,可透過單行腳本安裝 MCP 伺服器,讓代理能直接使用 grep_vault 或 read_file 從您的歷史 AI 知識庫存取資料。