dsh-edit-question:在 DSH 里编辑已发提问并重发

前言

在 DeepSeek Harness(DSH)里跑智能体对话时,常见情况是:某一轮提问写错、想补图,或者后面几轮已经跑偏,希望从这一轮重新开聊。DSH 会话是多帧拼接的 zstd 追加日志,带内核写租约,外部直接改写会破坏租约与 seq 连续性;界面上的 surfaceOp: replace 也只能让模型「看不见」旧内容,记录仍在。社区插件 dsh-edit-question(维护者 Akiccat)在 Web GUI 每条用户提问旁增加「✎ 编辑提问」入口,用宿主官方的 fork 语义从该轮重开会话,并支持图片随重发或粘贴补充。

这是什么

dsh-edit-question 是 DSH 的客户端插件:在 Web 界面编辑已发送的提问文本,从该提问起丢弃后续上下文,用编辑后的内容重新发送。原提问中的图片会随重发带上(内容寻址复用同一附件);编辑框里也可粘贴补充图片。提交时可选择保留原会话(新旧并存)或归档原会话(新会话建好后原会话进「已归档」)。分类与详情见社区目录:akiccat/dsh-edit-question;源码与说明:GitHub — Akiccat/dsh-edit-question。当前仓库星标为 0,许可证 MIT,包版本 0.1.0(package.json)。

为什么是 fork 而不是原地改历史

DSH 没有「删除会话中某段历史」的官方能力。本插件使用官方「从某点重开」语义:ctx.sessions.fork({ sessionId, atSeq }),复制前缀生成子会话,再在子会话里重发编辑后的提问。

切点取上一轮的 turn/end:第 1 轮用 0(原提问自己的 agent/inbox/spliced 在 turn/start 之前,从它之后开始会把旧提问带进新会话);第 N>1 轮用第 N-1 轮结束的 seq。

核心功能

  • 编辑入口:鼠标移到任意一轮提问气泡上,在动作行点击「✎ 编辑提问」。
  • 文本与图片:修改正文;原图随重发;可在编辑框粘贴补充图片或删掉已补的图。
  • 两个出口:对话框内二选一——「保留原会话」或「删除原会话」(实际调用 DSH 原生归档 uiWorkspace.archiveSession)。
  • 重发:点「丢弃后续并重发」后界面切换到新会话,该提问之后的对话不再进入新会话上下文。

安装与启用

npm 包尚未发布(README 标明计划中)。发布后预期命令为:

dsh plugin --profile <profile> add dsh-edit-question

在那之前需手工挂载源码(README 以 Windows PowerShell 为例;Linux 可用符号链接等等效方式,让 profile 能解析到包目录)。

第一步:让 profile 的 node_modules 能解析到本仓库路径(Windows 目录联接示例):

New-Item -ItemType Junction -Path "$HOME\.dsh\profiles\desktop\node_modules\dsh-edit-question" `
  -Target "<本仓库路径>"

第二步:在 profile 的 cordis.patch.yml 末尾追加:

- insert:
    - id: edit-question
      name: dsh-edit-question

cordis.patch.yml 受 HMR 监视,改完即热重组,不需要重启应用;浏览器端代码在刷新页面后生效。

注意:不要同时使用 package.json 里的 dsh.bundle.patch(供 dsh plugin add 用)与 profile 里手工 insert 同一 id,否则会挂载两次、启动报错。迁移到 bundle 安装前,先删掉 profile 里 - id: edit-question 那一行。

插件以当前 DSH 进程权限运行,安装前请自行查看源码与 MIT 许可证。

典型用法

  1. 把鼠标移到任意一轮的提问气泡上,动作行里点「✎ 编辑提问」;
  2. 修改文本,可选粘贴图片补充或删掉已补的图;
  3. 选择「保留原会话」或「删除原会话」;
  4. 点「丢弃后续并重发」,界面切换到新会话。

需要 Node.js >= 20(package.json 的 engines)。

适用场景与注意

适合:改错提问、从某一轮重新分支对话、在重发时保留或整理原会话列表。

已知限制(来自 README):

  • 「删除原会话」是归档,可在「已归档」里恢复;要物理删除需自行清理 ~/.dsh/sessions/ 下对应目录。
  • 文件类附件(非图片)不重发:receiptId 只对原会话有效,对话框会单独提示。
  • 当前模型需支持图片输入,否则宿主会在 prompt 准入时拒绝并提示。
  • 入口位置依赖宿主 DOM 契约(data-chat-flow-kind / data-chat-turn / data-clock),宿主改版时可能退到轮尾一行,功能不受影响。

DSH 生态理念是「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-edit-question 用 fork + 重发补齐「改提问、从该轮重来」的工作流,并处理图片复用与双会话出口。进一步了解实现可看仓库内 docs/DEVELOPMENT.md。

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

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

小夜