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