前言¶
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 用户。