dsh-scribe:DSH 跨会话记忆与本地知识库

前言

用 DeepSeek Harness(DSH)做智能体或日常编程辅助时,每个新会话往往从零开始:昨天定下的架构、踩过的坑、约定的规范,今天要再讲一遍。把记忆放到云端能缓解这一点,但对话内容可能离开本机,包括密钥路径、客户名和内部接口;不少方案还默认开启同步,不一定立刻意识到数据在传出。

DSH 的生态是「一切皆插件」:能力通过插件挂载到 Host,社区目录在独立站点 SkillHub 展示,与 DeepSeek / 幻方无官方从属关系。下面介绍维护者 zcd0818 发布的 dsh-scribe(DSH 书记官,分类:记忆):跨会话记忆 + 可选本地知识库,默认 local-first,云端与迁移均需你明确配置或审批。

这是什么

dsh-scribe 是面向 DeepSeek Harness 的 Cordis 插件:Cross-session memory + a local knowledge base — local-first by default, cloud optional, migration user-approved。

会话结束时把本次结论写入本地;下次会话开始时检索同项目与近期记忆并注入 system prompt;工作区文档可编入知识库供检索。记什么、存在哪、发给谁,由配置与审批决定。 当前 npm / GitHub 包版本为 1.1.0(MIT,Node >=20,零运行时依赖)。

核心功能

会话生命周期

时机 行为 预算
会话开始(agent/created) 检索同项目 + 最近记忆,注入 memory:context 5 条 / ≤1200 字符
会话进行中 模型按需调用 scribe_memory_search / scribe_memory_save / scribe_memory_list / scribe_memory_forget 按需
会话结束(agent/disposed) 压缩为一条记忆写回 1 条
知识库(可选) 索引工作区 kb/ 与全局资料;会话开始注入目录摘要;按需 scribe_kb_search / scribe_kb_read 目录摘要 ≤1100 字符

短于 10 轮的对话保留最后几段原文;更长对话由当前会话模型压成「项目在做什么、定了什么、为什么、还欠什么」。注入量与会话长度无关。

默认本机存储

默认不联网。记忆落在纯文本 JSONL:

cat ~/.dsh/memory/memories.jsonl

示例行(README 摘录):

{"id":"mem_mvqil36h_7c9ac9b6","content":"决定:默认本地 JSONL 存储,会话开始注入 5 条记忆到 system prompt,迁移必须经审批","createdAt":1793095200089,"source":"session-summary","tags":["project:dsh-memory","decision"],"schemaVersion":1}

斜杠命令查看状态:

/scribe status

未配置嵌入端点时,scribe_memory_search 在本机做词法打分。README 中列出了完整出网清单:例如配置了 embedding.endpoint、开启检索重排、长对话摘要、迁移到百炼或 ChromaDB 引擎时,才会有对应数据离开本机;想彻底离线可关闭 retrieval.llmRerank 与会触发模型的摘要,且不配 embedding.endpoint。

记忆与知识库分离

记忆 知识库
谁写入 插件(会话结束) 你维护的文档,插件只读
形态 一段结论 按标题切块,带行号
作用域 插件后端 工作区 kb/(可改)+ 全局 ~/.dsh/memory/kb/global/

知识库索引为派生数据,位于 ~/.dsh/memory/kb/indexes/,不改原文;默认 TTL 300 秒自动重建。Office 文档(.docx / .xlsx / .pptx)用内置解析器抽正文;.pdf 依赖可选包 pdfjs-dist。

换存储后端走 scribe_memory_migrate,须先看计划再在审批框确认,支持 scribe_memory_migrate_rollback。

设置页与左侧入口

安装后在 DSH 设置 → 记忆与知识库 有四分页:概览、记忆、知识库、数据迁移。API Key 只写不读;迁移确认使用一次性 token(5 分钟有效)。可选开关:在主页左侧菜单栏显示「记忆与知识库」,改完立即生效,无需重启。

安装与启用

三种方式任选,装完返回 application: applied 即生效,无需重启页面。卸载:

plugin_manager · action: remove_bundle · target: dsh-scribe

1)从 GitHub 安装(需能访问 github.com,DSH 会先 git ls-remote 探测):

plugin_manager · action: install_bundle · target: github:zcd0818/dsh-scribe#v1.0.0

#v1.0.0 为可选 ref;README 注明该路径实测装出为 dsh-scribe@1.0.0。

2)从 npm(dsh-scribe):

plugin_manager · action: install_bundle · target: dsh-scribe@1.0.0

3)本机 checkout(开发):

plugin_manager · action: install_bundle · target: /绝对路径/dsh-scribe

后装替换先装。若曾安装旧名 dsh-memory(dsh-memory-plugin),请先 remove_bundle 旧行再装 dsh-scribe,否则可能挂载两次;数据目录 ~/.dsh/memory 与格式不变,已有记忆无需因改名而迁移。

典型用法

会话内模型检索记忆(README 示例):

scribe_memory_search("上次部署脚本怎么写的")
→ 1. [2026-10-25] (project:infra) 部署走 deploy.sh,先用 staging 验证再 promote…

知识库:会话开始只注入目录摘要;需要条文时用 scribe_kb_search,再用 scribe_kb_read 按 kb/设计规范.md#L12-L40 这类引用读原文。

不想用设置页时,可在 profile 的 cordis.patch.yml 中配置,例如:

- insert:
    - id: dsh-scribe
      name: 'dsh-scribe'
      config:
        defaultProvider: local
        autoInject: true
        autoSave: true
        injectLimit: 5
        injectMaxChars: 1200
        providers:
          local:
            type: local
            path: '~/.dsh/memory'
            engine: file

可选后端包括 bailian、hybrid,以及 embedding、retrieval、summarization 等字段;完整字段见仓库 README。

适用场景与注意

适合需要在 单机上保留项目决策与规范上下文、又希望 默认不出网 的 DSH 用户;需要团队共享条文时,把工作区 kb/ 纳入 Git,与「会话记忆」分开维护。

插件以 当前 DSH 进程权限 运行,能读写你配置的记忆目录与工作区 kb/。安装前建议阅读 GitHub 源码 与 MIT 许可证,确认数据边界与出网项符合你的合规要求。社区目录页星标等信息以站点为准(资料抓取时 GitHub 为 2 stars)。

结尾

dsh-scribe 把跨会话记忆和可选知识库收进 DSH 插件:默认 JSONL 在本机,注入与工具调用边界在 README 里写清,迁移必须经你审批。进一步了解可打开 SkillHub 目录页 与 GitHub 仓库。

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

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

小夜