dsh-deepworker
tinyblckc0000al/dsh-deepworker
A DSH conversation workspace: turn actions, provenance quotes, local notes and summaries, in-conversation find, focus lock, and per-workspace command buttons.
설치
dsh plugin --profile web add github:tinyblckc0000al/dsh-deepworkerREADME
DeepWorker
DSH(DeepSeek Harness)的会话工作流扩展:把长会话中反复出现的手工操作,收敛为界面内的一步动作;不修改会话日志,不替换原生工作流。
解决的问题
DSH 原生已经提供会话、分支(fork)、全局搜索、终端和 @ 引用。DeepWorker 不重复这些基础能力,而是补齐原生界面中缺少的组合动作:
- 回到某一轮重做:原生需要自己确认轮次、fork、重新发送;DeepWorker 把「重试本轮 / 在此分支」放到轮末,把「编辑重发」放到用户气泡下面。
- 引用并保留出处:原生
@引用指向会话或文件;DeepWorker 增加「选中文本 + 第 N 轮 / seq」的引用,可点击跳回原文。 - 随手查一个词:选中回答里的术语,右键「随手百科」;宿主只做一次无状态模型调用,不建会话、不带上下文,气泡里给一两句话解释。
- 把常用说法放进输入框:输入框右侧「短语」下拉,点一下就插入;常用提示词、审查指令不必每次重打。
- 把结论留在会话外:原生没有独立笔记页;DeepWorker 提供本地笔记、标签、搜索和导入导出。
- 把长对话压缩成一条记录:原生没有「总结为笔记」的一步操作;DeepWorker 提供本地确定性摘要和可选的模型总结。
- 在长会话中定位一句话:原生全局搜索只返回会话与片段;DeepWorker 在已加载会话内高亮命中并跳到对应轮次。
- 临时只保留一个会话:原生没有会话级专注模式;DeepWorker 提供会话/工作区专注锁。
- 多项目服务的启停:原生终端需要每次打开、cd、输入命令;DeepWorker 把每个工作区的启动/停止/额外命令放到会话头部,并支持批量与前置序列。
界面

八项能力总览:轮次操作、引用、笔记、摘要、查找、专注锁、多工作区命令、本地优先。

一轮对话的五种处理、引用锚点与笔记卡片。

会话级 / 工作区级专注锁;非目标工作区变暗,保留解除入口。

真实界面:多工作区表格、批量操作与输出日志。

真实界面:路径、启动、停止、额外按钮与超时集中在一个弹窗。

真实界面:启动前按顺序执行已定义动作。图片中的路径与项目名已脱敏。
核心能力
| 能力 | 具体行为 | 带来的价值 |
|---|---|---|
| 轮次操作 | 轮末四个动作:引用回复、重试本轮、在此分支、选模式新建;用户气泡下是编辑重发;编辑重发保留图片/附件;归档原对话会停止其活动,设置关闭或失败会明确提示,已结束轮次使用行内编辑器,可删/加/粘贴/拖放图片 | 把 fork / prompt / archive 等底层步骤收拢为一次点击;历史仍为 append-only;子会话标题追加「· 分支」,头部显示「来自第 N 轮」并可回跳 |
| 引用与出处 | 选中文本写入引用块,附「第 N 轮 · seq M」锚点;点击锚点跳回原轮并高亮 | 引用可追溯,长会话中不会失去上下文 |
| 随手百科 | 选中文字右键「随手百科」;宿主 POST /dsh-deepworker/quick-explain 只接收选中文字和问题,调用一次默认模型,不创建/读取会话;气泡支持存入笔记(Q&A)、生成新会话、关闭;设置页新增「随手百科」tab,可分别关闭这两个按钮;相同 provider/model + 选区 + 问题命中本地缓存时不调模型;跟随默认模型时,默认模型切换也会失效旧缓存并显示缓存提示,可重新查询;Q&A 笔记可回跳来源轮次;接口/模型可下拉选择原生已配置的 provider/model | 查术语不用污染主会话;结果可沉淀、可回看、可继续追问 |
| 快捷短语 | 输入框右侧「短语」下拉;点击插入光标位置,插入后光标在末尾;+ 新增、Enter 保存、Shift+Enter 换行、× 删除 | 常用提示词和审查指令一键复用;不占用系统快捷键 |
| 独立笔记页 | 侧栏底部打开;Markdown、标签、搜索、编辑重存、复制/删除、JSON 或纯文本导入导出;选区来源显示「第 N 轮」并可回跳;支持复制全部为 Markdown | 把会话中的结论沉淀为可检索的本地知识,同时保留出处,也方便带到外部工具 |
| 两个笔记入口 | 对话中选中文字右键「存为笔记」;笔记页「从剪贴板存为笔记」 | 不打断当前输入流,随手保存 |
| 总结为笔记 | 默认确定性摘要(本地、零成本、可复现);可选让模型总结(临时会话,完成后归档) | 长对话快速形成可读记录;模型总结为可选增强 |
| 会话内查找 | 已加载会话内查找、高亮、跳转到轮次 | 比全局搜索更接近「在正在读的对话里定位一句话」 |
| 专注锁 | 锁定当前会话或所在工作区;拦截所有会话切换入口;非目标工作区变暗 | 在一段时间内保持单一上下文,减少误切 |
| 多工作区命令按钮 | 每个工作区独立的启动/停止/额外按钮;批量串行执行;每个额外按钮可配置自己的前置命令;agent 可用 JSON 批量写入;每个按钮按自己的命令进程显示状态:绿=运行中、灰=未运行/已结束/已停止、红=失败;设置页有图例,可关闭例行执行气泡,错误仍显示 | 常用服务操作不必重复开终端、cd、敲命令;不假设启动/停止成对 |
| 输出日志 | 默认在设置页保留最近输出;每个工作区可选写入 .dsh-deepworker/logs/ | 启动失败、服务状态和偶发输出可回看 |
| 顶部按钮 | 每个工作区选择哪些动作显示在会话头部,并调整顺序;默认全部 | 头部只留当前工作区真正需要的按钮 |
| 版本检查 | 设置页底部手动检查 npm 最新版;默认不联网;失败或发现新版时都提供发布页与仓库链接 | 不自动安装,升级决策留在用户 |
| 功能开关 | 8 个能力可分别引入/移除;基础页总开关可一键全关;关闭项灰显并说明原因 | 只启用需要的功能;出问题时基础页始终保留恢复入口 |
| 失败可见 | 写失败、命令为空、权限不足、日志目录不可写等情况都会明确提示 | 避免「点了没反应」的静默失败 |
设计亮点
- 历史不改写:编辑重发、重试、分支都使用 DSH 原生 fork / surface replace,会话日志保持 append-only。
- 服务级会话拦截:专注锁不是 DOM 遮罩,而是包装
ctx.uiWorkspace的五个切换方法;侧栏行、搜索结果、子代理、任务面板、fork、新建会话都汇聚到这些入口。 - 一个无状态宿主接口:随手百科通过
webServer注册POST /dsh-deepworker/quick-explain,用ctx.llm.stream调一次默认模型;不建会话、不写会话日志,也不需要新增远程包。其余功能仍在渲染进程内。 - 功能可分别开关:8 个能力独立引入/移除;总开关一键全关;关闭项保留可见并说明原因;基础页始终是恢复入口。
- Agent 可批量配置:命令按钮支持工作区 JSON 文件;每个额外按钮可配置独立的前置序列;agent 写文件,用户点一次「立即读取」。
- 本地优先:笔记、设置、短语、最近输出保存在本机;不读写会话日志;模型总结、随手百科和文件日志都是显式 opt-in。
- 失败可见、可验证:注册失败经 guard 隔离并提示;命令为空、权限不足、日志目录不可写都会明确报错;门禁包含 SSR、真实 DOM、数据/执行器与变异测试。
典型使用场景
1. 长调试会话:回到失败点重做
一次排障可能经历多个失败轮次。DeepWorker 允许直接在目标轮次上重试、从该轮分支,或编辑原提问后重发;原会话历史保留,新分支独立推进。
2. 架构/方案讨论:把结论沉淀为笔记
在讨论中选中关键段落右键存为笔记;会话结束时用确定性摘要或模型总结生成一条结构化笔记,后续可搜索、打标签、导出。
3. 多服务项目:会话头部启停服务
为每个项目配置启动、停止和额外动作(重启、状态、日志);批量勾选多个工作区串行启动;需要时给单个按钮配置前置命令(例如重启前先停)。
4. 阅读与研究:引用、标记、回看
阅读长对话或资料时,选中内容引用并保留出处;随时跳回原轮核对;把重要结论保存到笔记页。
5. 深度工作:锁定当前会话
需要连续处理一个任务时,锁定当前会话或工作区;侧栏其它会话不可打开,非目标工作区变暗,减少误切。
与原生 DSH 的关系
- 增量,不替换:所有入口挂在 DSH 现有界面上(会话头部、轮次底部、侧栏、设置页)。
- 不改写会话日志:编辑重发、重试、分支都使用 DSH 原生 fork / surface replace,日志保持 append-only。
- 宿主只多一个无状态路由:随手百科通过
ctx.webServer+ctx.llm.stream完成一次调用,不创建会话、不持久化;其余功能在渲染进程内。 - 非官方 API 的边界:专注锁对
ctx.uiWorkspace的五个切换方法做包装;DSH 升级后方法名变化会失效,插件会在自检中报告,不会假装生效。
安装
0.1.6 是当前 npm 发布版,包含随手百科、快捷短语、行内编辑重发和设置页重构。
从 npm(推荐)
在 DSH 的 设置 → 插件 中从注册表安装:
dsh-deepworker@0.1.6
或由 agent 调用 plugin_manager:
install_bundle target = dsh-deepworker@0.1.6
插件管理器会写入 profile 的 dsh.profile.bundles,并在安装前检查兼容范围。
本地开发
cd ~/.dsh/plugins/dsh-deepworker
npm install
将插件目录接入当前 profile,然后重启 DSH。
快速上手
| 位置 | 可用操作 |
|---|---|
| 会话头部 | 命令按钮、查找、总结、专注锁 |
| 每一轮底部 | 引用回复 / 重试本轮 / 在此分支 / 选模式新建 |
| 用户气泡下 | 编辑重发 |
| 侧栏底部 | 笔记页 |
| 选中文字右键 | 引用、存为笔记 |
| 设置 → DeepWorker | 功能开关、专注锁、笔记、会话操作、命令按钮 |
通知设置
通知分三层,互不替代:
- 「通知与气泡」:插件总开关。关掉后例行提醒静默,错误和专注锁仍可见。
- 「用系统通知」:投递方式。开=系统通知,失败或权限拒绝时回退页内气泡;关=只用页内气泡。
- 「只通知本会话 / 静音本会话 / 清除范围设置」:只决定哪些会话可以通知你。
功能开关
设置 → DeepWorker 每个 tab 顶部都有功能简介;「基础 → 功能引入 / 移除」可逐档关闭。新增五档都有真实门控:
- 随手百科:右键菜单入口消失
- 快捷短语:下拉与快捷键不注册
- 分支血缘:分支标题后缀与「来自第 N 轮」不写入、不显示
- 工作区状态:文件树 tab 的「工作区改动」入口不注册
关闭需要 Cmd+Q 完全重启后生效。
兼容性与数据边界
- 兼容范围:
engines.dsh = >=0.2.1-rc.1 <0.3.0。 - 本地优先:设置、笔记、最近输出保存在本机浏览器存储;插件不读取或写入会话日志。
- 模型总结:只有主动选择「让模型总结」时才创建临时会话并消耗 token;确定性摘要完全本地。
- 命令输出:默认只保留最近若干条;每个工作区可单独开启文件日志。日志可能包含敏感信息,且不会自动轮转。
- 设置仅通过界面修改:客户端插件没有配置文件;需要 agent 批量配置时,使用命令按钮页的 JSON 文件入口。
- 文件编辑/保存不在范围内:原生只提供预览/外部打开和工具 diff;DeepWorker 不复刻编辑器,也不写文件。
验证
node tools/ha-core/verify/prepublish.mjs
判据为 failed = 0。套件包含 SSR 结构检查、真实 DOM 交互(jsdom)、数据层与执行器测试,以及变异测试。
文档
- 命令按钮 JSON 配置:
docs/command-buttons-config.md - 变更记录:
CHANGELOG.md - English:
README.en.md
License
MIT © 2026 pandamustard