前言¶
DeepSeek Harness(DSH)的 Web GUI 目前缺乏对会话消息进行编辑、重试和删除的标准操作。dsh-more-message-actions 插件旨在还原主流 AI 客户端中的这些交互,让 DSH 里的对话同样具备顺手的编辑与重试能力。
安装与启用¶
本插件未发布到 npm,仅通过 GitHub 分发。
dsh plugin --profile web add github:suzuran520yyz/dsh-more-message-actions
安装后重启 dsh web,并刷新已打开的页面即可生效。
核心功能¶
该插件在消息操作栏增加了按钮,支持以下操作:
- 消息编辑:弹出编辑框修改消息文本,支持用户消息和 AI 消息。
- 修改并重试:以修改后的用户文本重新发起请求,仅支持用户消息。
- 重试:以原用户消息重新生成,仅支持 AI 消息。
- 高级重试:先输入对 AI 回复的要求,再原地截断并按「原消息 + 要求」重新生成,仅支持 AI 消息。
- 删除消息:删除对应消息,支持用户消息和 AI 消息。
工作原理¶
该插件采用「双面」协作模式:
- Host 半(
lib/index.js):改写持久化日志(编辑/删除为单点改写,重试类为回合截断)、重置协调器游标、触发 Agent 重放;提供只读 RPC 供预填原文。 - 浏览器半(
lib/client.js):向消息操作栏注入图标按钮、调用 Host 接口并重新同步历史窗口;负责用户消息 DOM key → 持久化 id 的换算。
注意事项与限制¶
由于插件涉及改写 DSH 引擎内部结构,存在以下限制:
- 只能在会话空闲时操作:回合正在运行时 Host 会拒绝操作。
- 重试/高级重试/修改并重试仅支持纯文本回合开头:含图片附件的回合无法安全重放。
- 删除行为:删除只移除目标消息本身。
- 删除 AI 回复会连同它的思维链 / 思考过程 / 工具调用一并移除,但不删除它对应的用户提问。
- 删除用户消息不删除它的 AI 回复。
- 删除会话中间的消息后继续对话,模型请求中不再包含被删内容,可能出现「有问无答」或相邻同角色消息的情况,属于预期行为。
- 编辑行为:「编辑(保存)」只改文本、保留旧的 AI 回答时,旧回答可能与新文本不一致。若希望 AI 按新文本重新回答,请使用「修改并重试」。
- 依赖性:依赖当前 DSH rc 版本的内部结构;引擎升级后可能需要同步更新。
结语¶
该插件为 DSH Web 用户提供了消息层面的精细控制能力,适合需要在会话中进行文本微调或历史记录清理的开发者使用。源码位于 GitHub,使用前请自行审查代码并做好备份。