dsh-prime-diary:为 prime 记忆库增加每日日记与草稿审阅

前言

在 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 宿主不会加载),重启宿主生效。

典型用法

  1. 先安装并跑通 dsh-prime-memory,确认 $DSH_HOME/memory/memory.db 存在。
  2. 按上文安装 dsh-prime-diary,打开 设置 → 每日日记,保持 autoAdopt 为 false(默认),调好 dailyAt、intervalDays 等项。
  3. 在会话列表中剔除不需要纳入日记的会话;等待定时触发、上下文提前触发,或点「立即生成」。
  4. 在草稿列表中编辑内容,采纳 后写入 prime;在 prime 记忆面板检索 scene 为日记日期的条目。
  5. 流程稳定后,如需跳过审阅,再在设置中打开全自动开关(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
羽毛球分组比赛记分
小程序二维码

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

小夜