前言¶
在 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。
核心功能(已文档说明部分)¶
- 会话内编辑:鼠标移到 AI 回复上,点「伪造」;在编辑器里选目标(本会话任意可编辑块,含页面上折叠的思维链)、选写入方式(默认「自动」),改文本后点写入伪造。写入前会弹确认,复述本次如何生效。
- 两种用户向出口:仅本机渲染(Ctrl+Enter,只改本页样子,模型看不见,可逆)与 写入伪造(改模型看到的对话;在线写活会话立即生效,或落盘路径重载后生效,不可逆)。
- 三种写入方式(界面三选一):自动(在内存则在线、否则落盘,推荐)、仅在线(立即生效)、仅落盘(重载后生效)。
- 改待发送队列(v3.1 之后):对尚未发给模型的 inbox 消息,可走官方
session.updateQueue;入口在带data-pending-steering的气泡上。定位靠文本回匹,有附件或非唯一匹配时会拒绝写入(见 README 错误说明)。 - 离线命令行:退出 DSH 后可用
scripts/forge-session.mjs列出 seq、改正文或思维链(--kind text/reasoning/both)。 - 会话修复:若早期写入缺少
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 许可证,确认符合你的安全与合规要求。
典型用法¶
界面快速流程¶
- 鼠标移到任意一条 AI 回复上,点「伪造」;
- 选择目标块与写入方式(默认自动),编辑正文或思维链文本;
- 点「写入伪造」,确认提示后完成。成功时界面有绿色回执,下一轮对话模型即按改写内容继续。
若只想本地看着顺眼、不让模型当真,用 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。