dsh-personal:基於 SQLite 的個人數據管理與回顧 Bundle

前言

DeepSeek Harness (DSH) 的插件化架構允許開發者通過 Bundle 擴展核心能力。dsh-personal 是一個 Bundle,旨在爲 dsh 提供記錄、查詢和回顧個人數據的能力。它將經歷、項目、任務、博客、想法等結構化數據存儲在 SQLite 中,並提供 LLM 輔助的總結與回顧工具。

核心定位

dsh-personal 是一個個人助理 Bundle,提供結構化個人數據的 SQLite 存儲、捕獲、查詢與回顧工具。LLM 僅負責理解和總結,所有事實數據持久化在 SQLite 中,重啓後依舊可查。

安裝與配置

安裝命令如下:

pnpm dsh plugin --profile web add /path/to/dsh-personal

安裝後可驗證配置是否生效:

pnpm dsh --profile web --dump-config

配置文件(cordis.patch.yml)可設置時區:

- id: personal
  name: dsh-personal
  config:
    timezone: Asia/Shanghai

核心功能

該插件提供 22 個工具,覆蓋記錄、查詢、糾錯與回顧四個維度:

  1. 記錄與創建:支持記錄經歷(電影、書、專輯、展覽等)、創建項目與日誌、創建任務、更新任務、創建與更新博客、記錄想法與網站、每日記錄。
  2. 查詢與檢索:支持查詢各類記錄,以及基於 Jieba 中文分詞和 BM25 算法的全文檢索。
  3. 糾錯與維護:提供獲取、更新、刪除記錄的工具,以及生成日/週迴顧功能。
  4. 數據存儲:數據存儲在 SQLite 文件(~/.dsh/personal/personal.db)中,當前 Schema 版本爲 4。

典型用法

在對話中直接使用自然語言即可完成操作:

  • 記錄經歷:今天看了《靈媒》,7.5 分
  • 記錄閱讀:讀了半本《失控》
  • 項目日誌:Forge 今天定位了中文錯位問題
  • 維護操作:週末檢查博客證書
  • 查詢任務:我有哪些事情沒做?
  • 生成回顧:本週回顧

搜索與檢索機制

搜索功能使用 Jieba 中文分詞和 SQLite FTS5,支持中文複合詞的子詞匹配,但不支持向量檢索或自動語義擴展。權重可在配置中調整:

searchTitleWeight: 5
searchTagWeight: 3
searchBodyWeight: 1

搜索索引只存在於連接的內存 TEMP 表中,不改變 v4 數據庫格式。首次搜索會從現有記錄建立索引,後續寫入通過 TEMP trigger 同步。

數據一致性與修改

爲了保證數據一致性,修改和刪除操作必須傳入 revision 以防止併發衝突。

  • 獲取記錄:使用 get_personal_record 獲取完整行及 revision。
  • 修改記錄:使用 update_personal_record 時需傳入 expected_revision。模型會先查詢定位,用戶確認後再執行。修改使用行字段的 camelCase 名稱。
  • 刪除記錄:刪除是永久刪除,沒有撤銷入口。若記錄被其他記錄引用(如任務引用來源),則阻止刪除並返回引用列表。

注意事項

  1. 舊版本數據庫:當前 Schema 版本爲 4,舊版本(v1-v3)數據庫無法直接打開。如不需要舊數據,需手動移走或刪除舊 personal.db。
  2. 刪除限制:不支持級聯刪除,僅移除顯式關聯的 relations。
  3. 併發寫入:大量記錄或頻繁跨進程寫入時,首次搜索重建索引會增加延遲。
  4. 許可證:插件詳情未明確標註許可證,安裝前請檢查源碼。

總結

dsh-personal 通過 SQLite 將個人數據結構化,利用 LLM 輔助進行自然語言交互與回顧。它適合需要持久化記憶、定期回顧和結構化知識管理的 DSH 用戶。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜