dsh-reverie:在只读语料上做开放式联想实验

前言

个人笔记、会话导出和阅读摘抄会越积越大,全文检索能找到关键词,却很难回答「档案里还有什么我没主动去找过的联系」。常见做法是定期让模型做摘要或建索引,但那往往变成任务系统或画像生成,且容易把未核实的内容写回存储。

DeepSeek Harness(DSH)把能力拆成可组合的插件。下面介绍社区插件 dsh-reverie(维护者 klienkross):在隔离、只读的前提下,让模型自选主题、检索语料、展开原文并沿联想走下去,每次运行只留下一份报告和一条有上限的私密笔记;漫游、死胡同或「这次什么也没产出」都是合法结果。

这是什么

dsh-reverie 是 DSH 分类为「记忆」的插件(npm 包名 @kleinkross/dsh-reverie,当前版本 0.4.4,MIT 许可证)。它不是任务系统,也不是用户画像生成器;语料可以是文件夹笔记、JSON/JSONL 导出,或 Harness 已持久化的会话历史(非当前进行中的会话)。

每次「trip」只读不写回任何语料库,产物落在 ~/.dsh/reverie/runs/。默认 mock 模式不调用模型、不消耗 API,适合先看清报告形态再决定是否开 live。

核心能力

插件通过一组工具暴露完整流程(名称以 README 为准):

reverie_status    sources, corpus size and model route at a glance
reverie_sources   the corpus sources and their groups
reverie_search    lexical search, returning <source>/<inner> evidence locators
reverie_read      expand one locator back into its text
reverie_run       run one trip (mock by default, no model call)
reverie_report    read back a report / note / trail
reverie_config    inspect or change runtime settings and `sources`

语料来源类型(单源失败只记一行问题,其余照常加载):

kind 读取内容 定位符示例
folder root 下 md/txt,按标题切分,过长段落再切块 notes/dir/note.md#L12-L40
json .json 或 .jsonl,字段可配置 journal/entries#3
dsh-sessions 本工作区或 scope: "all" 下已持久化会话 dsh/session-id#96

未配置 sources 时,语料默认为当前工作区的会话历史。检索侧为词法搜索(BM25 + CJK),live 运行时模型在步数、输入输出 token 等上限内循环调用上述工具。

安装 Web 端后,界面会出现 Reverie 区块:Sampling 用密度条标出本次触及的文档;Journey 提供运行选择器与报告、私密笔记、步骤轨迹、证据定位符等只读视图。面板路由仅列举和读取已记录的运行,刷新页面不会自动开 trip 或扣费。

安装与启用

DSH Desktop:在 Settings → Plugins 中安装 @kleinkross/dsh-reverie。

CLI(资料原文命令):

dsh plugin --profile web add @kleinkross/dsh-reverie

本地开发、尚未发布时,可将路径指向仓库目录:

dsh plugin --profile web add /path/to/dsh-reverie

兼容性(README):DSH >= 0.1.5-rc.1,在 0.2.0-rc.2 桌面版上开发与测试;Node ^22.19.0 || >=24.0.0。宿主需 tools 与 systemPrompt;仅文件夹语料时可不依赖 llm 与 sessionQuery。常见 peer:@deepseek-ai/dsh-tools、@deepseek-ai/dsh-llm。

插件以当前 DSH 进程权限读取你配置的路径与会话;安装前请自行查看 GitHub 源码 与许可证。

典型用法

按 README 的快速上手顺序操作即可复现 mock 流程。

  1. 执行 reverie_status,查看已挂载的 source 与各语料文档数量。
  2. 用 reverie_config 配置语料,或直接编辑 ~/.dsh/reverie/config.json。示例:
"sources": [
  { "id": "notes",   "kind": "folder", "root": "D:/notes", "extensions": ["md", "txt"] },
  { "id": "journal", "kind": "json",   "path": "D:/data/journal.jsonl" }
]
  1. 执行 reverie_run,跑一趟 mock trip(不调模型),验证语料、排序与产物结构。
  2. 执行 reverie_report,阅读生成的报告与 handoff.md。
  3. 需要真实模型时,通过 reverie_config 将 mode 设为 "live",或在单次调用中传 live: true,再执行 reverie_run(会消耗 API)。

不想先碰个人数据时,仓库内 examples/tiny-memory-library/ 提供虚构小语料;docs/sample-report.md 是对其的 mock 运行样例,无模型调用。检索与阅读可单独用 reverie_search、reverie_read 核对 <source>/<inner> 定位符后再采信报告中的说法。

运行时设置集中在 ~/.dsh/reverie/config.json,常用字段包括 sources、scope(workspace | all)、mode(默认 mock)、maxSteps、language(默认 zh)等;完整列表见 README 的 Settings 小节。

适用场景与注意

适合:Obsidian/Logseq 库、日记目录、稍后读导出、JSONL 日课等体量大到「凭搜索很难偶遇关联」的个人档案;希望模型在只读语料上自由联想,并留下可核对的小痕迹,而不是自动写回笔记或抽任务。

不适合:要摘要仪表盘、任务抽取,或「记住我」式聊天记忆的场景;live 生成的报告与笔记是模型输出,不是权威记忆。

隐私与边界(README 归纳):只读,不改写会话/笔记/导出;会话语料排除 Harness 注入上下文与工具流量,且排除当前 live 会话;除 live 的模型调用外无遥测与第三方请求,mock 完全离线。产物路径形如 $DSH_HOME/reverie/runs/<date>/<run-id>/ 下的 run.json、report.md、handoff.md、events.jsonl、usage.json 及 latest.json。

社区目录 SkillHub 插件页 与 GitHub 仓库相互独立,并非 DeepSeek / 幻方官方应用商店;星标与版本以各站点当时展示为准。

结尾

dsh-reverie 把「在私人档案里随便走走、只留报告和短笔记」做成 DSH 插件:mock 可先验形态,live 再花 token。进一步了解可访问 SkillHub 目录页 与 GitHub:klienkross/dsh-reverie。

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

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

小夜