前言¶
在 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 许可证。
典型用法¶
- 把鼠标移到任意一轮的提问气泡上,动作行里点「✎ 编辑提问」;
- 修改文本,可选粘贴图片补充或删掉已补的图;
- 选择「保留原会话」或「删除原会话」;
- 点「丢弃后续并重发」,界面切换到新会话。
需要 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