前言¶
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 個工具,覆蓋記錄、查詢、糾錯與回顧四個維度:
- 記錄與創建:支持記錄經歷(電影、書、專輯、展覽等)、創建項目與日誌、創建任務、更新任務、創建與更新博客、記錄想法與網站、每日記錄。
- 查詢與檢索:支持查詢各類記錄,以及基於 Jieba 中文分詞和 BM25 算法的全文檢索。
- 糾錯與維護:提供獲取、更新、刪除記錄的工具,以及生成日/週迴顧功能。
- 數據存儲:數據存儲在 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 名稱。 - 刪除記錄:刪除是永久刪除,沒有撤銷入口。若記錄被其他記錄引用(如任務引用來源),則阻止刪除並返回引用列表。
注意事項¶
- 舊版本數據庫:當前 Schema 版本爲 4,舊版本(v1-v3)數據庫無法直接打開。如不需要舊數據,需手動移走或刪除舊
personal.db。 - 刪除限制:不支持級聯刪除,僅移除顯式關聯的
relations。 - 併發寫入:大量記錄或頻繁跨進程寫入時,首次搜索重建索引會增加延遲。
- 許可證:插件詳情未明確標註許可證,安裝前請檢查源碼。
總結¶
dsh-personal 通過 SQLite 將個人數據結構化,利用 LLM 輔助進行自然語言交互與回顧。它適合需要持久化記憶、定期回顧和結構化知識管理的 DSH 用戶。