前言¶
在 DeepSeek Harness(DSH)里做本地记忆,常见路径是:网页端留下大量对话,再用自己写的脚本同步到知识库,偶尔还要跑体检和「让模型做判断」的整理步骤。这几件事往往分散在终端、定时任务和不同目录里,状态要自己拼。
dsh-kb-sync 是社区插件(分类:记忆),维护者相关信息见 SkillHub 目录页 与 GitHub 仓库。源码 README 中的安装命令指向 github:284022719/dsh-kb-sync,与目录页展示的仓库路径可能不一致,安装与查阅文档时以你实际选用的仓库与 README 为准。
下面介绍它做什么、怎么装、怎么配,以及控制页上的典型操作。
这是什么¶
dsh-kb-sync 是标准 dsh.bundle 插件:把你自己已有的同步流水线搬到一个同源控制页——一键运行、看状态、看日志、跑完整性体检。典型流水线是「网页端对话历史 → 本地知识库」,但插件本身不绑定你必须同步什么内容。
README 用三块能力概括:
- 自己拉取:用 DSH 凭据服务里的网页端
userToken调chat.deepseek.com,把对话规范化落到本地知识库,并在插件内检索。这一块读凭据值、会出网。 - 编排:启动你配置的同步/体检命令,读状态与日志。不读凭据、不出网。
- 整理(模型判断):把管线里「让模型做判断」那一步搬进进程内(准备输入 → 调宿主
llm服务拿 JSON → 校验通过才落盘/重建)。不读凭据;出网走宿主llm适配器,域名由你配置的提供方决定。
当前 package.json 记录版本为 0.2.0,许可证 MIT,要求 Node ≥ 20、DSH ≥ 0.2.0-rc.2,并提供 webServer 与 subprocess 服务。
核心功能¶
编排半:接管你已有的命令¶
插件对你现有脚本的核心要求是:一个可执行的同步命令。其余项可选,缺失时对应功能降级,不会因为缺项而整体崩溃。
| 你提供的内容 | 插件用途 | 缺失时 |
|---|---|---|
同步命令(默认发现 sync/sync-daily.{cmd,ps1,sh},或 syncScript 指定) |
控制页「运行」 | /run 返回 sync-script-missing,其余照常 |
日志目录(默认 sync/logs/) |
日志与「最新日志」 | 状态里不显示日志 |
进度文件(默认 sync/LAST-SYNC.txt) |
「最近几次结果」 | 跳过该栏 |
凭据文件(默认 .token) |
只读 mtime,显示年龄/是否偏旧 | 跳过该栏 |
体检命令(默认 <kbDir>/tools/kb.mjs doctor) |
/doctor |
找不到脚本时返回 doctor-script-missing |
拉取半:网页对话进本地知识库¶
拉取流程(README 描述):用凭据服务中的 userToken 访问 chat.deepseek.com → 拉会话列表 → 只处理新增/续聊线程(以 chat_session.current_message_id 定位末端)→ 落盘为 conversations/*.md、conversations.jsonl、catalog.json → 支持插件内检索。
默认知识库目录在插件包内:<插件目录>/data/kb/。可用 outDir 改到其他路径或复用已有库。插件不把 token 写入文件、日志或响应;拉取半不访问 chat.deepseek.com 以外的地址。
整理半:进程内跑判断步骤¶
整理步骤:准备输入 → 调宿主 llm 服务 → 用管线的 apply-extraction.mjs 校验 JSON → 通过才落盘并重建;默认行为侧重校验。可通过 processProvider、processModel、processMaxTokens、pipelineDir 等配置对接宿主模型。
控制页与设置入口¶
同源控制页地址:
http://127.0.0.1:<你的 DSH Web 端口>/__dsh-kb-sync/
首屏按任务分块:结论条、收新对话、找内容、整理;较重操作收在「运行详情与诊断」折叠区。应用内 设置 → dsh-kb-sync 另有状态摘要与「抓取新对话 / 更新知识库」动作,但不提供配置编辑(配置在加载时解析一次,改完需重启)。
收新对话支持增量抓取;补齐全量历史走官方导出包(export_all 等),后台运行、页面定期刷新进度。另有 chainMinIntervalMs(默认 6 小时)作为更新新鲜度闸门,页面可用 force 绕过。
安装与启用¶
README 给出的安装方式为 profile web 下添加 GitHub 源(装完需重启 DSH):
dsh plugin --profile web add github:284022719/dsh-kb-sync
插件为零依赖 bundle,无客户端构建步骤。安装前建议自行阅读仓库源码与 LICENSE,确认在以当前 DSH 进程权限运行时可接受的行为边界(见仓库内 docs/CAPABILITY-DISCLOSURE.md)。
配置¶
未配置时插件仍可加载,控制页会提示缺少项。改完配置必须重启 DSH;resolveSettings() 仅在加载时执行,内存中的配置不会随文件修改即时更新。
配置优先级(README):loader config → 环境变量 → 用户设置文件 ~/.dsh/.dsh-kb-sync.json(或 $DSH_HOME 下同名文件)→ 插件目录内 config.json → 内置默认。
方式一:profile patch(节选)
- id: dsh-kb-sync
name: 'dsh-kb-sync'
config:
root: 'D:\path\to\pipeline'
# tokenOldDays: 21
# chainMinIntervalMs: 21600000
方式二:插件目录 config.json(可复制同目录 config.example.json)
{ "root": "D:\\path\\to\\pipeline", "outDir": "data/kb", "tokenOldDays": 21 }
环境变量:DSH_KB_SYNC_ROOT、DSH_KB_SYNC_OUT_DIR、DSH_PIPELINE_DIR。
POSIX 示例(显式指定 shell 脚本同步入口):
{ "root": "/srv/kb-pipeline", "syncScript": "/srv/kb-pipeline/sync/daily.sh", "logDir": "/srv/kb-pipeline/sync/logs" }
/status 的 configFile 字段会报告实际使用了哪份配置文件(used / localUsed)。
典型用法¶
- 在 DSH 凭据服务中准备好网页端
userToken(拉取半需要;编排半不需要)。 - 配置
root指向你的流水线根目录,必要时改syncScript、logDir、doctorScript等。 - 重启 DSH,打开控制页或设置页查看结论条与关键数字(会话数、最近更新、登录态年龄)。
- 需要新内容时点「抓取新对话(增量)」;需要与自有
sync-daily脚本对齐时,用「更新知识库」或/run走编排路径。 - 在「找内容」使用插件内检索;在「整理」跑管线判断步骤(出网经宿主
llm配置)。
适用场景与注意¶
适合谁:已经在本机维护「DeepSeek 网页对话 → markdown/JSONL 知识库」或类似流水线,希望用 DSH 统一看状态、拉增量、检索,并可选地把「模型判断」收进进程内的开发者。
边界与注意:
- 拉取半属于能力披露中的红线类行为(读凭据、访问
chat.deepseek.com);编排半与整理半的出网范围不同,整理走你配置的 LLM 提供方。 - 插件不注册提示词段落、不改核心 bundle、无安装脚本;不以插件替你做「该同步什么」的业务决策,只编排你已有的命令与内置拉取/整理链路。
- 社区目录 SkillHub 与 GitHub 为独立信息源,与 DeepSeek / 幻方无官方从属关系。
- 星标与用户规模等目录统计会变动,本文不引用未在 README 中核实的数字。
结尾¶
dsh-kb-sync 把拉取、编排、整理三块能力收进一个本地控制页:网页对话可规范化为 conversations/*.md + conversations.jsonl + catalog.json,自有同步与体检命令仍由你掌握,判断步骤可经宿主 llm 在校验后落盘。
- 目录页:https://www.skillhub.cn/plugins/xinming-chenniang/dsh-kb-sync
- GitHub:https://github.com/xinming-chenniang/dsh-kb-sync(README 安装示例:
github:284022719/dsh-kb-sync)
更完整的 API、路由表与分步说明见仓库内 docs/USAGE.md 与 README.md。