DeepSeek Harness (dsh) 目前处于开发者预览阶段,接口可能发生破坏性变更。在进行智能体开发时,面对较长的会话记录,快速定位上下文往往比较困难。dsh-conversation-map 是一个用于 DeepSeek Harness Web 客户端的插件,旨在对话区右侧渲染一条可拖动的会话地图,提供类似代码编辑器 minimap 的导航体验。
功能特性¶
该插件通过 Web 会话 DOM 契约实现,核心功能包括:
- 双模式切换:宽度小于 50px 时显示色块模式,按消息类型着色(用户、助手、工具调用、命令、错误),悬停可查看内容预览;宽度大于等于 50px 时自动切换为缩略图模式,展示会话的真实结构。
- 拖动调整宽度:按住地图左侧把手可左右拖动调整宽度,范围在 10 至 320px 之间,右缘固定。拖动过程中会显示实时宽度徽标。
- 快速滚动与定位:点击地图任意位置可跳转至对应内容,按住拖动可连续滚动。在缩略图模式下,按住当前会话内容框可跟随滚动。
- 悬停放大预览:在缩略图模式下,悬停地图任意位置,光标左侧会弹出放大预览窗口,完整展示该行内容。
- 收起与展开:悬停地图顶部点击
»可收起为 4px 细条;收起后细条顶部常显«标签,点击标签或细条即可展开。 - 实时同步:消息流式输出、工具调用、切换会话时地图会自动刷新。侧栏、详情面板的开合以及窗口缩放都会触发地图更新。
- 高度自适应:地图高度随会话内容实时伸缩,缩略图缩放比例恒由宽度决定,与会话长度无关。
安装与启用¶
安装该插件需要使用 DeepSeek Harness 的插件命令:
dsh plugin --profile web add dsh-conversation-map
安装后,可以通过以下命令验证插件层是否已挂载:
dsh --profile web --dump-config
随后启动 Web 客户端:
dsh --profile web
技术与注意事项¶
该插件当前基于 dsh 0.1.x 的 Web 会话 DOM 契约实现,依赖 react 平台模块和 slots 服务。Host 半身为空实现,浏览器半身通过 shell.overlay 槽位挂载。插件本身不包含网络请求或遥测(除使用 localStorage 进行状态持久化外无其他持久化)。
状态持久化于浏览器的 localStorage,键名为 dsh-conversation-map:width 和 dsh-conversation-map:collapsed。这意味着调整后的宽度和收起状态会在刷新页面或切换会话后保持。
总结¶
dsh-conversation-map 为 DSH Web 客户端提供了可视化的会话导航能力,适合需要在长对话中快速定位上下文的开发者使用。更多细节与源码可参考 GitHub。