J
dsh-self-distill
jfhshx/dsh-self-distill
DeepSeek Harness 插件:空闲时自动把本机全部 DSH 会话记录解压、蒸馏、脱敏为个人档案与日程(默认输出 C:\myself)
Установка
dsh plugin --profile web add github:jfhshx/dsh-self-distillREADME
dsh-self-distill
DeepSeek Harness(DSH)插件:空闲时自动把本机全部 DSH 会话记录解压、蒸馏、脱敏为个人档案与定制日程(默认输出 C:\myself)。
会话存档 (*.jsonl.zstd, 多帧 zstd)
→ 多帧解压 → JSONL 解析(过滤系统注入/自动续跑)
→ 脱敏(keys/emails/phones/ids/im)
→ 蒸馏(画像/项目/活跃规律/日程)
→ C:\myself(01-个人画像.md … 04-日程规划.md + source/ 底稿)
功能
- 空闲自动整理:回合停止(
agent/turn-stopping)后启动空闲计时器,会话空闲满idleMinutes(默认 20 分钟)自动蒸馏一次;会话销毁(agent/disposed)时立即收档。全程防抖(冷却默认 60 分钟 + 无变化跳过),绝不打扰正常工作。 - 信息脱敏(默认开启):任何文本写入档案前经过确定性替换——
类别 规则 替换为 keyskey:/token=/Authorization: Bearer、sk-/ghp_/AKIA/AIza等前缀、≥28 位高熵随机串<REDACTED:credential>/ 保留前 4 位emails邮箱地址 保留前 2 位 + <REDACTED:email>phones中国大陆手机号 <REDACTED:phone>idsGUID/UUID、32+ 位 hex(账号 id、senderId) 保留前 4 位 + <REDACTED:uuid>im<dsh_im_source>消息来源包装<REDACTED:im-source> - 蒸馏产物:
01-个人画像(环境/沟通风格统计)、02-项目档案(工作区与仓库痕迹、未完成信号)、03-活跃规律(小时直方图、活跃窗口、空档)、04-日程规划(由活跃数据推导的黄金窗与每日模板)、source/脱敏底稿。 - 两个工具:
self_distill_run(立即运行,mode=force强制全量)、self_distill_status(查看配置与上次运行状态)。 - 零依赖:仅用 Node 内置模块(zlib 多帧 zstd 解压需 Node ≥ 22.15)。
安装(DSH)
# 在 DSH 的插件命令行(或 dsh CLI 可用的环境)中:
dsh plugin --profile <你的profile> add @jfhshx/dsh-self-distill
包声明了 dsh.bundle.patch,安装时会自动把 cordis.patch.yml 追加到 profile 的 bundle 列表,无需手工编辑。单个 profile 临时停用:
# 在该 profile 的 cordis.patch.yml 中
- id: self-distill
disabled: true
配置
~/.dsh-self-distill/config.json(不存在则用默认值):
{
"outDir": "C:\\myself",
"idleMinutes": 20,
"minIntervalMinutes": 60,
"timezoneOffsetHours": 8,
"keepSource": true,
"redact": { "enabled": true, "strict": false, "categories": { "keys": true, "emails": true, "phones": true, "ids": true, "im": true } }
}
CLI(手动运行)
node bin/dsh-self-distill.js # 跑一次蒸馏
node bin/dsh-self-distill.js --force # 强制全量(跳过冷却与变更检测)
node bin/dsh-self-distill.js --no-redact # 关闭脱敏(仅本地自用,勿分享)
node bin/dsh-self-distill.js status # 查看配置与状态
测试
npm test # node --test test/
发布到 GitHub
git init
git add -A
git commit -m "feat: dsh-self-distill 空闲自动蒸馏插件"
git remote add origin https://github.com/JFHSHX/dsh-self-distill.git
git branch -M main
git push -u origin main
# 然后到 GitHub 仓库页创建 Release;发布 npm 包(可选):
# npm publish --access public
已知限制
- 会话存档为多帧 zstd 拼接,依赖 Node ≥ 22.15 的
zlib.zstdDecompressSync(本插件已按魔数切帧,兼容单帧/多帧)。 - 活跃统计样本来自本机会话记录,日期越多规律越准。
- 脱敏是确定性正则替换,无法保证捕获所有自定义格式的凭证;分享档案前建议人工复核
source/底稿。
License
MIT © 2026 JFHSHX