dsh-reply-forge-v3:在 DSH 会话中改写助手回复与思维链,改完立即生效

前言

在 DeepSeek Harness(DSH)桌面端里做智能体或长对话调试时,常见需求是:某条助手回复写错了、思维链里多了一段不该给模型看的推理,或者希望把历史上下文改成模型「以为」说过的话,以便后续轮次按新叙事继续。只改页面显示不够——模型读的是会话日志;直接手改 .jsonl.zstd 又往往要重启、且容易碰宿主校验。社区里 kinggod899 维护的 dsh-reply-forge-v3(npm 包名 dsh-reply-forge-v3)针对的是:在会话 UI 里选中目标块(含折叠的思维链),把改动写进「模型可见」的对话状态,在线路径下不用重启 DSH 即可在下一轮被模型采信。该插件归类为客户端,在 SkillHub 插件目录 可查到条目;GitHub 仓库当前约 6 stars,已收录 awesome-dsh-plugin 生态列表。

下面介绍它是什么、和前两代有何差别、如何安装与使用,以及关闭插件时的兼容性注意。DSH 生态奉行「一切皆插件」;SkillHub 等为社区目录,与 DeepSeek / 幻方无官方从属关系。

这是什么

dsh-reply-forge-v3 是 DSH 桌面端插件(当前 package 版本 3.3.0,许可证 MIT)。维护者 kinggod899,仓库:https://github.com/kinggod899/dsh-reply-forge-v3。

一句话:在每条 AI 回复旁提供「伪造」入口,编辑正文或思维链;写入后,该会话之后每一轮,模型只认你改过的版本(在线写活会话时立即生效)。实现上 v3 采用宿主提供的 message projection:追加自有事件类型 reply-forge/patch,由 projection 折叠出改写后的消息,而不是对 assistant/message 做 surface replacement(宿主对此有硬性约束)。

和 v1 / v2 的差别

三代是独立仓库、独立插件 id,可分别启用,但 README 明确建议不要同时启用——它们共用同一条消息操作条,同时开会挂出多条。安装脚本默认会把更早两代从 bundles 摘掉。

v1 v2 v3
改的是什么 页面显示 会话落盘文件 活会话对象
模型看得到吗 看不到 看得到 看得到
生效时机 立即(只对本机) 要重启 DSH 立即
能改思维链吗 不能 不能 能
实现 localStorage 覆盖 改写 .jsonl.zstd message projection

v3 把 v2 的落盘改写作为兜底:会话在内存里则写活会话;不在内存才落盘(落盘需重载后生效)。v2 仓库:https://github.com/kinggod899/dsh-reply-forge-v2。

核心功能(已文档说明部分)

  1. 会话内编辑:鼠标移到 AI 回复上,点「伪造」;在编辑器里选目标(本会话任意可编辑块,含页面上折叠的思维链)、选写入方式(默认「自动」),改文本后点写入伪造。写入前会弹确认,复述本次如何生效。
  2. 两种用户向出口:仅本机渲染(Ctrl+Enter,只改本页样子,模型看不见,可逆)与 写入伪造(改模型看到的对话;在线写活会话立即生效,或落盘路径重载后生效,不可逆)。
  3. 三种写入方式(界面三选一):自动(在内存则在线、否则落盘,推荐)、仅在线(立即生效)、仅落盘(重载后生效)。
  4. 改待发送队列(v3.1 之后):对尚未发给模型的 inbox 消息,可走官方 session.updateQueue;入口在带 data-pending-steering 的气泡上。定位靠文本回匹,有附件或非唯一匹配时会拒绝写入(见 README 错误说明)。
  5. 离线命令行:退出 DSH 后可用 scripts/forge-session.mjs 列出 seq、改正文或思维链(--kind text / reasoning / both)。
  6. 会话修复:若早期写入缺少 ignorable: true 导致宿主持久化闸门拒读,可用仓库内 修复会话.bat 做只读诊断或 apply 补标记(先备份)。

持久化方面,v3 在进入宿主持久化前为自有事件统一补 ignorable: true,以便插件未加载时会话仍可打开、伪造静默退回原文;完整机制与失败码见仓库 PLAN.md、使用说明.md。

安装与启用

前提:已安装 DSH 桌面端。静态配置仅在启动时加载,装完或改 bundles 后须完全退出并重启 DSH。

路线一:npm(推荐)

在 DSH「插件管理器」输入包名 dsh-reply-forge-v3 安装;或关闭 DSH 后在终端执行:

dsh plugin --profile desktop add dsh-reply-forge-v3

插件管理器可切换 npm 官方源、中国大陆镜像或自定义源。

路线二:zip + 脚本(需 Node.js 或 DSH 自带 node)

在解压目录双击 安装插件.bat。脚本会建 junction、写 package.json 的 bundles 与 dependencies、登记 lockfile,不执行 pnpm install。无 Node 时 bat 会打印手动四步说明。

其他 bat:启用插件.bat、关闭插件.bat(启动异常时可从 bundles 摘掉回滚)。需要保留 v1/v2 并存对比时:node scripts/install.mjs --keep-v2 --keep-v1。

插件在 DSH 进程内运行,安装前宜自行查看仓库源码与 MIT 许可证,确认符合你的安全与合规要求。

典型用法

界面快速流程

  1. 鼠标移到任意一条 AI 回复上,点「伪造」;
  2. 选择目标块与写入方式(默认自动),编辑正文或思维链文本;
  3. 点「写入伪造」,确认提示后完成。成功时界面有绿色回执,下一轮对话模型即按改写内容继续。

若只想本地看着顺眼、不让模型当真,用 Ctrl+Enter 的「仅本机渲染」。

离线改会话文件(先退出 DSH)

列出可改块:

node scripts/forge-session.mjs --session <会话id> --list
node scripts/forge-session.mjs --session <会话id> --list --kind reasoning

试跑改写:

node scripts/forge-session.mjs --session <会话id> --seq 42 --block-index 1 \
  --kind text --text "改后的正文" --dry-run

--kind 为 text、reasoning 或 both(默认 text)。

适用场景与注意

适合谁:需要在 DSH 里修正历史助手话术、统一思维链与正文、或做可控的「上下文注入」而不愿每次重启或手搓 jsonl 的开发者与重度用户。

务必知晓:

  • 写入伪造会改变模型后续所依据的对话事实,属于不可逆的语义操作,仅应在自有环境或明确授权场景使用。
  • 插件以当前 DSH 进程权限运行;第三方插件一律建议审源码后再装。
  • 正常关闭插件应通过 关闭插件.bat 或管理器卸 bundles 后重启 DSH;运行中热卸可能触发宿主 session message projection "reply-forge/patch" was removed 类错误。
  • 不要与 v1、v2 同时启用;与 dsh-chat-thinking-editor 等技术路线不同,v3 强调自有事件 + ignorable 以便冷启动无插件时仍可读会话。

仓库含 321 项 / 14 套测试(部分需本机 @deepseek-ai/dsh-session,缺失则 SKIP),对持久化与 ignorable shim 有 P0 级覆盖,可自行 node --test "tests/*.test.mjs" 验证。

结尾

dsh-reply-forge-v3 把「改助手说过的话、含思维链、在线立即被模型采信」收拢到 DSH 客户端一条操作流里,并用 message projection 与 ignorable 标记对齐宿主持久化规则。目录页:https://www.skillhub.cn/plugins/kinggod899/dsh-reply-forge-v3;源码与完整说明:https://github.com/kinggod899/dsh-reply-forge-v3。

羽毛球分组比赛记分
小程序二维码

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

小夜