dsh-explain:把 DSH 工作会话变成本地优先的学习循环

前言

用 DeepSeek Harness(DSH)做开发时,主会话里往往堆满命令、报错和临时结论,但真正值得记住的概念很少被单独整理。常见做法是另开笔记或靠记忆,和当时的工作上下文容易脱节,也很难在后续会话里复用。

下面介绍 dsh-explain(维护者 yuezengwu)。它是 DSH 的学习模式插件,从已完成的工作回合里提取概念,生成结构化讲解卡片,并写入跨会话的全局学习线程;主智能体不受影响,Explain 使用独立的模型调用、调度器、上下文和本地 SQLite 数据库。

这是什么

dsh-explain 面向 DSH 0.1.0-rc.8,在 SkillHub 插件目录 中归类为「记忆」。插件当前版本为 v0.1.0,采用 MIT 许可证。

它解决的核心问题是:如何把日常 DSH 工作里出现的概念,转成可回顾、可反馈、可跨会话延续的私人学习记录,而不是散落在各次对话里。

核心功能

按来源讲解与学习卡片

Explain 支持多种入口,均围绕当前或选定的来源材料生成讲解:

入口 行为
/explain <request> 以当前会话为有限来源上下文请求讲解
Explain selected text 从可见文本生成可编辑的 /explain --selection … 草稿,不会自动提交
Learn from this answer 绑定到已完成的 assistant 回合,生成可编辑草稿
自动评估 符合条件的已完成回合后,Explain 可能在配置预算内自动添加一条有用讲解

每张学习卡片回答三个问题:What is it?(概念是什么)、Why does it matter?(在工作中的实际意义)、What is the common pitfall?(常见误区)。可选择 Got it 关闭卡片,或 Not yet 请求换一种讲法;即使来源会话后来被删除,仍可对已有讲解进行 rephrase。

跨会话全局学习线程

每个 $DSH_HOME 只拥有一条 Explain 学习线程。各工作会话贡献材料,但 resume 和 fork 不会复制学习状态:

  • 每个来源会话最多有一条待反馈的讲解
  • 所有工作会话在 DSH 原生的 Learning 标签页展示同一份全局历史
  • 全局调度器串行处理手动讲解、自动评估、rephrase 和压缩
  • 默认自动评估预算为滚动 24 小时内 50 次请求,重启后仍保留
  • 私有 ExplainContext 跟踪讲解偏好、知识水平和学习进度

本地优先与上下文隔离

数据 存储与行为
学习线程 $DSH_HOME/dsh-explain/v1/thread.sqlite
启用与模型设置 通过 DSH 设置写入 $DSH_HOME/settings.yaml
来源材料 压缩为有界 capsule;rephrase 时保留最多 2,000 字符的受限来源摘要
全局学习上下文 仅发送给 Explain 辅助模型,不进入主智能体
主会话 不接收 Explain 事件、提示或学习上下文;主回合不被阻塞

当结构化观察或已关闭讲解处于 pending 状态时,若 30 分钟内无 Explain 操作,或某次请求将超过所选模型上下文窗口的 50%,辅助历史会自动压缩。

可诊断的设置界面

在 DSH Web 中打开 Settings → Learning,选择辅助 provider 与模型,启用学习模式并保存。Explain 只观察启用之后新完成的顶层回合,不会扫描已有历史。Composer 内可用 /explain on/explain off/explain status 控制或查看运行时状态。

安装与启用

Explain 当前兼容 DSH 0.1.0-rc.8。安装命令如下:

npx @deepseek-ai/dsh@0.1.0-rc.8 plugin --profile web add github:yuezengwu/dsh-explain
npx @deepseek-ai/dsh@0.1.0-rc.8 web

Git 托管插件在安装时会构建。若 pnpm 请求 build 批准,需将打印出的 dsh-explain 条目加入 profile 的 pnpm-workspace.yaml,然后重复安装命令。

启动 Web 后,进入 Settings → Learning 配置辅助模型并启用学习模式。经过上面的步骤,Explain 即开始监听后续完成的工作回合。

典型用法

从回答中学习

  1. 在 DSH Web 中完成一次有意义的主智能体回答。
  2. 选择 Learn from this answer,或在选中文本后使用 Explain selected text
  3. 检查并编辑生成的 /explain 草稿,确认后提交。
  4. Learning 标签页查看生成的学习卡片,选择 Got itNot yet

手动请求讲解

在 Composer 中直接输入:

/explain <你的问题或概念>

当前会话内容作为有界来源上下文参与生成。可用 /explain status 查看当前状态。

控制学习模式

/explain on
/explain off
/explain status

无需离开 Composer 即可开关或检查 Explain 运行时。

适用场景与注意

适合谁: 长期用 DSH 做开发、希望把会话里出现的概念沉淀为可回顾学习记录的用户;需要主智能体保持独立、学习逻辑由辅助模型承担的场景。

兼容性: 插件跟随 DSH 公开 API 线(当前为 0.1.0-rc.8),不为更早的 private-preview 包保留兼容层。仓库包含 64 个单元测试、4 个 assembled DSH Web 验收场景和 3 个 Explain 自有快捷方式验收场景;详细矩阵见 docs/ACCEPTANCE.md

安装前注意: 插件以当前 DSH 进程权限运行,会读写 $DSH_HOME 下的 SQLite 与设置文件。安装前应阅读 源码仓库MIT 许可证,确认数据落盘位置与模型调用方式符合你的预期。SkillHub 是社区插件目录,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-explain 把 DSH 日常工作中值得记住的概念,转成本地存储、跨会话共享的学习线程,主智能体路径保持干净。若你在 DSH 生态里寻找「记忆」类插件,可从目录页或 GitHub 进一步了解:

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

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

小夜