dsh-evolution:本地会话账本与跨会话复盘

前言

用 DSH(DeepSeek Harness)写代码时,助手往往能在单次会话里把事做完,但不会记住你上次踩过的坑。新开一轮对话,你还得重复说明:回调守卫要放在幂等判断之前、金额别用 float、发版前要先跑某个脚本。常见补救要么是整段对话上云,要么是只存结论、不统计「这个问题你已经犯过几次」。

下面介绍社区插件 dsh-evolution(维护者 wycto,分类:记忆):在本地记录开发会话,用你在 DSH 里已配好的模型做跨会话复盘,把重复出现的坑和有效做法沉淀成本地知识;默认不联网、不上传、不写你的代码仓库。数据落在磁盘上的人可读文件里,可随时查看、导出或删除。


这是什么

dsh-evolution 是 DSH 的本地优先自动进化插件。当前 README 标注为 Phase 1 — 真复盘 + 注入(package 版本 0.2.2):会话账本采集、数据预览、试跑(看效果与成本、不调模型)、脱敏、界面化配置、目录自检;手动/自动复盘、本地洞察库、检索与注入、导出与 skill 草稿均已可用。自动复盘默认关闭——开着插件不会产生模型费用,直到你显式打开;注入只发本地已存条目,不调模型、不联网。

许可证 MIT,运行环境要求 Node >= 22。


核心功能

工作流概览

正常对话时,每次事件被结构化写入本地账本(纯本地、零成本、不调模型)。攒够 N 轮且会话静默后(或你在面板点「现在复盘」),会用你在「配置」页显式指定的模型做一次归纳——未指定则一次都不调,插件不会默认用当前会话里的模型。归纳结果经代码层校验(证据链、禁止清单、再脱敏)后写入本地洞察库;下次进入同一仓库时,把相关条目注入上下文。

三个关键设计:

决定 含义
账本记录零 LLM、零网络 可每轮都记、可回扫历史,成本近似为零
只记信号,不记工具输入输出 避免体积膨胀与噪音
默认关闭一切「往外」的行为 上传、写仓库、向量化、跨工作区聚合均需显式打开

洞察不是一句空结论,而是带证据链的条目(会话 id + 轮次 + 原文引用);无证据会被拒收。同一条经验再次出现时会合并加一(recurrence),而不是重复堆条目。

记什么、不记什么

内容 是否记录
提问与助手回答(可配置截断) 记
工具名称与成功/失败 记
工具参数与输出 不记
模型思考过程、图片等非文本 不记
绝对路径 默认脱敏为 <path>/文件名

面板能力

安装并重启 dsh web 后,侧边栏底部有「自动进化」,内含总览、洞察、试跑、数据预览、注入预览、脱敏预览、导出与草稿、配置、数据与隐私等页面。要点:

  • 试跑:开启自动复盘前先看会不会跑、会注入什么、大概花多少钱;不调模型、不写文件。
  • 注入预览:逐字展示下次进该仓库时会进 system prompt 的内容。
  • 洞察:手动「现在复盘」、看证据链、置顶/采纳/归档/合并等;可从日志重建索引。

隐私默认值(保守一侧)

能力 默认
记录会话账本 开
注入已有洞察 开(零模型调用)
自动复盘 关
上传、写代码仓库、向量检索、SQLite、跨工作区画像 关

脱敏在写磁盘之前完成;内置规则覆盖 API key、Bearer/Basic、JWT、常见云厂商密钥、绝对路径等,并支持自定义敏感词表。作者 README 声明:不提供云端托管、默认不上传、不做面向管理者的个人画像展示。


安装与启用

在已配置 DSH Web profile 的环境下执行:

dsh plugin --profile web add dsh-evolution

装完重启 dsh web,侧边栏底部会出现「自动进化」。

建议装完先做三步:

  1. 打开「自动进化」→ 总览,确认「运行中」且数据落点路径符合预期。
  2. 在 数据与隐私 页点「重新自检」,确认目录可创建。
  3. 正常对话几轮,在 数据预览 刷新,确认有记录。

若要试真复盘:先在 试跑 页预览(不花钱),再到 洞察 页点「现在复盘」——这一步才会调用模型并消耗你在 DSH 里配置的额度。


数据落盘位置

默认目录为 ~/.dsh-evolution/(Windows:C:\Users\<你>\.dsh-evolution\)。可通过环境变量 DSH_EVOLUTION_HOME 或面板「配置」里的数据目录修改。

~/.dsh-evolution/
├── config.json          # 配置(纯 JSON,可手改)
├── state.json           # 复盘水位、用量、暂停等
├── ledger/              # 账本,按天分片 NDJSON
├── insights/            # insights.ndjson(真相源)+ index.json(可重建)
├── exports/             # 导出留档
├── skills/              # skill 草稿默认落点
├── observations/        # 预留
└── drafts/              # 预留

可选开启 SQLite 后端(database.enabled + driver=sqlite,默认关)时,账本与洞察迁入 index.sqlite;首次启用会一次性从旧 NDJSON 导入且原文件保留。

配置主文件为 ~/.dsh-evolution/config.json,也可在面板修改;分组包括总开关、会话账本、自动复盘、隐私与脱敏、注入、导出与草稿等。自动复盘组内 review.enabled 默认为关;模型须在配置页下拉选择宿主里真实可用的 provider × model,留空则不会自动调模型。


典型用法

  1. 只采集、先沉淀:保持默认(自动复盘关),多轮开发对话,在数据预览确认账本正常;已有洞察会在同仓库下次会话被注入(注入预览可核对原文)。
  2. 手动复盘一次:配置页选好复盘模型 → 洞察页「现在复盘」→ 展开条目核对证据链与 recurrence。
  3. 开自动复盘前:试跑页确认抽取条件、注入片段与预估成本,再打开 review.enabled。
  4. 导出与 skill:在「导出与草稿」导出 markdown/JSON;对「已复现且采纳过」的条目可生成 SKILL.md 草稿(默认写在插件目录;写入代码仓库需面板额外确认)。

从源码开发安装(README 提供,需本地构建或直接使用入库的 client/dist/index.js):

git clone https://github.com/wycto/dsh-evolution.git && cd dsh-evolution
npm run build
dsh plugin --profile web add "link:<绝对路径>/dsh-evolution"

适用场景与注意

适合:长期在同一仓库用 DSH 迭代、希望把重复性失误变成可注入的本地提醒、又不愿把完整对话默认上传到第三方的开发者。

注意:

  • 插件以当前 dsh 进程权限运行,安装前建议阅读 GitHub 仓库 源码与 MIT 许可证。
  • 归纳质量差时,错误结论可能被注入并长期生效;务必先用试跑与注入预览,再开自动复盘。
  • 注入按 repoRoot 路径匹配仓库,避免同名目录串库;宁可少注入,也不让 A 仓库的经验进 B 仓库。
  • DSH 生态是「一切皆插件」;社区目录 SkillHub 插件页 为独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-evolution 把「跨会话记得住、进化得了」放在本机:账本零模型成本、复盘与外向能力默认关闭、洞察带证据链且可导出。若你在 DSH Web 里长期写同一套代码,值得一装并按总览 → 自检 → 预览 → 再开复盘的顺序启用。

  • 目录页:https://www.skillhub.cn/plugins/wycto/dsh-evolution
  • GitHub:https://github.com/wycto/dsh-evolution
羽毛球分组比赛记分
小程序二维码

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

小夜