tinyblckc0000al/dsh-deepworker

dsh-deepworker

DSH 会话工作台:轮次操作、引用出处、本地笔记与摘要、会话内查找、专注锁和多工作区命令按钮。

未分類conversation-workspacedeepseekdeepseek-harness

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