前言¶
DeepSeek Harness (DSH) 的核心理念是“一切皆插件”。在开发智能体或调试会话逻辑时,我们经常需要回顾历史对话的执行过程,而不仅仅是查看文本。现有的方式往往需要在多个窗口或标签页之间切换,或者仅仅依靠手动滚动来查找状态变化。
bites-the-dsh 插件提供了一种更直接的方案:它将 DeepSeek Harness WebUI 的原生对话视图转化为一个可回放的时间线。这意味着你可以在不离开当前会话界面、不打开额外面板的情况下,像播放视频一样重演历史交互。
插件简介¶
Bites the DSH 是一个为 DeepSeek Harness WebUI 设计的只读、可脚本控制的会话回放插件。
- 维护者:memorax-ai
- 许可证:MIT
- 核心价值:在 DSH 原生界面内提供历史回放能力,同时保持会话源的完整性。
它通过 Harmony 补丁机制修改了 DSH 的 Conversation 和 Chat 服务,使得会话头控制栏可以直接唤起回放模式。
核心功能¶
插件将原生对话视图改造为回放视图,主要包含以下能力:
- 原生集成与入口:利用 DSH 原生的会话头控制栏作为入口,不开启独立面板。回放期间,原生编辑器、模型调用、停止、分支和助手写入等操作均被禁用,确保视图只读。
- 播放控制:提供完整的播放控制,包括暂停、快进、倒放、单步执行(按事件跳转)。支持调整播放速度和空闲间隙压缩,以优化回放体验。
- 直接跳转:支持按事件、按轮次或按时间戳直接跳转。
- 模拟打字预览:在只读模式下,原生编辑器会模拟显示下一条直接的用户消息,但不修改实际草稿。
- 脚本控制 API:插件暴露了
ctx.sessionPlayback控制器,允许其他插件或脚本通过代码控制回放状态。 - 历史投影:通过 DSH 的原生
ChatView进行历史投影,源会话与当前“回放指针”独立运行,互不干扰。
安装与启用¶
在终端中执行以下命令安装插件:
dsh plugin --profile web add @ch4acko3/bites-the-dsh
dsh harmony status --profile web
安装完成后,确保所有补丁状态为 bound。然后重载 DeepSeek Harness WebUI,打开任意会话,在会话头的控制栏中点击 Replay session 即可进入回放模式。
典型用法:脚本控制¶
除了手动控制,插件提供的 ctx.sessionPlayback 服务允许其他插件或脚本自动化回放流程。
以下是一个使用 TypeScript 控制回放的示例:
const playback = ctx.sessionPlayback
// 进入指定会话的回放模式
playback.enter(sessionId)
// 跳转到特定时间点(Unix epoch 毫秒)
playback.seekTime(sessionId, Date.parse('2026-08-20T12:00:00Z'))
// 设置播放速度并开始播放
playback.play(sessionId, 1)
// 暂停回放
playback.pause(sessionId)
// 退出回放模式
playback.exit(sessionId)
该服务还支持事件/轮次跳转、反向播放、速率和空闲间隙设置、订阅以及位置读取。它有意不暴露任何会修改源会话的操作,确保回放过程是纯粹的可视化。
适用场景与注意¶
- 适用场景:调试智能体在特定时间点的行为、向非技术人员演示历史对话流程、分析会话状态机的历史跳转逻辑。
- 只读约束:回放期间,原生编辑器和会话切换操作会被阻塞。插件仅修改视图展示,不会对源会话数据产生副作用。
- 权限与安全:作为 DSH 插件,它以 Harness 进程的权限运行。安装前建议检查其源码与许可证。
总结¶
Bites the DSH 适配了 DSH 的 Harmony 生态系统,为开发者提供了一个轻量级的会话回放工具。它通过原生 UI 的无缝集成和严格的只读设计,解决了历史会话复盘的痛点,配合脚本 API,可以作为更复杂工作流的一部分。