前言¶
在 DSH 里用 dsh-prime-memory 做长期记忆时,对话碎片会进库,但「这一天做了什么、哪些值得长期保留」往往还要自己整理。手工记日记、再从会话里挑重点,和 prime 的检索是两条线。下面介绍社区插件 dsh-prime-diary(维护者 shargritton,目录分类为「记忆」):它不改动 dsh-prime-memory 源码,通过其数据与写入通道,把「每日日记生成、重要记忆筛选、草稿人工审阅」接到同一份 memory.db 上;稳定后再可选全自动采纳。
这是什么¶
dsh-prime-diary 是 dsh-prime-memory 的伴生插件。日记与提炼出的条目最终写入 $DSH_HOME/memory/memory.db;插件自身数据落在 $DSH_HOME/prime-diary/。设计上是先出草稿、人工采纳,确认流程可靠后再打开全自动开关。日记取材区间为 [上次生成, 现在),成品文件按结束日期命名。
环境要求¶
装插件前请确认宿主与依赖满足 README 中的表格:
| 项 | 要求 |
|---|---|
| DSH | 桌面端 / Web 端,宿主需支持 dsh.bundle 插件格式 |
| Node | ≥ 22.19(使用 zlib.zstdDecompressSync) |
| dsh-prime-memory | 必装,且至少有一份可打开的 memory.db |
sqlite3 |
系统 PATH 可执行(Debian/Ubuntu 需 apt install sqlite3) |
| 宿主依赖 | @deepseek-ai/cordis ^4、@deepseek-ai/schemastery ^3(由宿主提供) |
| 可选 | @node-rs/jieba(有则按词切分,无则逐字切分) |
会话素材来自 dsh-reference-session-collector 的 session.v4.jsonl.zstd;日记只取 user/assistant 文本,不含 reasoning 与工具输出。
核心功能¶
与 prime 记忆库的协作¶
插件不单独建库。写入前会对 prime 库做 VACUUM INTO 备份到 $DSH_HOME/prime-diary/backups/;按 ext_key 幂等,同一篇日记重复采纳不会重复入库。设置页提供「写入通道自检」:复制一份库试写并校验 FTS,不动正式数据。若 prime 未装或库不存在,采纳失败并提示 prime memory.db 不存在: <路径>;草稿不丢,pending-write 留在 prime-diary/outbox/ 待库恢复后重试。
入库记录在 prime 记忆检索中可见,scene 为 日记/<日期> 或 快照/...。
调度与生成¶
设置页「每日日记」顶部可配置:启用、固定生成时间、生成间隔、上下文阈值、偷懒概率、字数范围、入库门槛、全自动开关。触发方式为 固定时刻 + 锚点日(默认每天 23:00,可改;每 N 天一次;锚点在保存配置当天固定,自动生成后不回写锚点)。也可在某一未剔除会话的上下文占用超过阈值时提前触发。「立即生成」不改动 lastRunAt / nextAt / 锚点,不影响下一次自动生成时间。
中部可勾选参与日记的会话(默认全部);下部为草稿列表,详情可编辑、采纳或丢弃。
本地数据布局¶
| 路径 | 内容 |
|---|---|
drafts/<date>.json / .md |
草稿与候选记忆 |
diaries/<date>.md |
已采纳的日记成品 |
outbox/<date>.json |
待写入 prime 的载荷(写入失败时保留) |
digests/ |
会话提炼产物 |
state.json |
上次运行时间、偷懒记录、错误 |
config.json |
UI 配置 |
backups/ |
写库前备份 |
debug.log |
调试日志 |
安装与启用¶
插件以当前 DSH 宿主进程权限运行;安装前建议在 GitHub 查看源码与 MIT 许可证。
方式 A:从 GitHub 安装(推荐)¶
在 DSH 设置 → 插件 中,用 GitHub 规格安装:
github:shargritton/prime-diary
装好后确认 profile 的 package.json 里 dsh.profile.bundles 含有 dsh-prime-diary,重启宿主(或重新应用 bundles),客户端刷新后应出现设置里的「每日日记」页签。
方式 B:本地手动安装¶
在对应 profile 目录执行:
cd "$DSH_HOME/profiles/<profile>"
pnpm add github:shargritton/prime-diary
将 dsh-prime-diary 加入同一份 package.json 的 dsh.profile.bundles 数组(只加依赖、不加 bundles 宿主不会加载),重启宿主生效。
典型用法¶
- 先安装并跑通 dsh-prime-memory,确认
$DSH_HOME/memory/memory.db存在。 - 按上文安装 dsh-prime-diary,打开 设置 → 每日日记,保持
autoAdopt为 false(默认),调好dailyAt、intervalDays等项。 - 在会话列表中剔除不需要纳入日记的会话;等待定时触发、上下文提前触发,或点「立即生成」。
- 在草稿列表中编辑内容,采纳 后写入 prime;在 prime 记忆面板检索
scene为日记日期的条目。 - 流程稳定后,如需跳过审阅,再在设置中打开全自动开关(
autoAdopt)。
主要配置项(默认值见 README 设计文档)包括:enabled、dailyAt(默认 23:00)、intervalDays(默认 1)、contextThreshold(默认 85)、skipProbability(默认 0.20)、minChars / maxChars(10 / 500)、importanceThreshold(默认 0.6)、autoAdopt(默认 false)、maxInputTokens(默认 12000)等。
适用场景与注意¶
适合:已使用 dsh-prime-memory,希望从 DSH 会话自动归纳日记并把高重要度片段写入同一记忆库、且愿意先审阅草稿的开发者。
务必注意:
- 写入依赖 prime 的 schema(资料写明当前对应 0.26.x),插件未做版本探测;prime 改表可能导致 SQL 错误,草稿与
outbox/载荷需人工处理。装完建议先执行一次「写入通道自检」。 - 依赖系统
sqlite3命令;缺失时报spawnSync sqlite3 ENOENT。 - 会话格式变更会导致该会话被跳过并记日志。
- 卸载:
pnpm remove dsh-prime-diary并从dsh.profile.bundles移除条目;$DSH_HOME/prime-diary/数据需手动清理。
DSH 生态强调「一切皆插件」;SkillHub 目录页 为社区站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-prime-diary 把「按 interval 从会话写日记、筛候选记忆、草稿审阅再入库」接到 prime 记忆库上,且不 fork prime 源码。进一步了解实现与配置见仓库 README。
- 目录页:https://www.skillhub.cn/plugins/shargritton/prime-diary
- GitHub:https://github.com/shargritton/prime-diary