前言¶
在 DeepSeek Harness(DSH)里,模型会产出 Markdown、HTML、图片等「成果」。这些内容通常散落在对话消息里:要对照多份文档、在页面上标出「改这一段」、或对比修改前后,往往得自己复制粘贴、另开编辑器,再把这些上下文写进下一条 prompt。社区插件 dsh-canvas(仓库 GlariaLuminous/dsh-canvas)把同一会话里的成果放到一张持久化画布上,支持元素级批注、勾选多份成果交给 DSH 处理,以及版本比较与历史恢复。下面介绍它的定位、能力与安装用法。
这是什么¶
dsh-canvas 是 DeepSeek Harness 的成果工作台社区插件(npm 包名 dsh-canvas-workbench,当前版本 0.1.0,MIT 许可)。维护者为 GlariaLuminous。README 标明其为非官方插件,直接使用当前 DSH 会话的模型、消息队列和权限设置,当前为早期预览版。
插件在会话顶部增加 Canvas 视图:在同一张画布上查看页面和文档,勾选相关成果后交给 DSH 继续处理;也可在页面元素上保存修改意见并绑定到当时版本,再让 DSH 按批注或右侧指令改写。DSH 通过原生工具 canvas_get 与 canvas_publish 读写成果,新版本完成后画布会自动更新。
核心功能¶
整理成果与上下文¶
- 导入
.md、.txt、.html或 PNG/JPEG/WebP/GIF;也可点击「新建」粘贴 Markdown 或 HTML。 - 在同一张画布上平移、缩放、搜索标题、整理布局;拖动卡片标题移动,拖动空白区域框选,勾选多项(发送时最多 8 个成果)。
- 不导入文件时,也可在普通 DSH 对话中要求模型用
canvas_publish创建成果(README 示例见下文「典型用法」)。
元素批注¶
打开成果后,点击「选择区域批注」,在页面上点击标题或段落,填写并保存修改意见。批注绑定到当时的版本;修改前会校验画布 revision 和成果 base version,过期修改会报冲突,避免静默覆盖。
版本比较与恢复¶
点击「比较版本」可并排查看双栏预览或文本差异。采用任意历史版本时保留已有历史(历史内容不可变,恢复只切换当前版本)。也可「编辑源码」生成新版本,或导出原始文件。
与 DSH 的协作方式¶
点击「让 DSH 按批注修改」,或在画布勾选成果后在右侧输入具体要求并发送。发送时传递所选成果的 ID、当前版本及批注;文本/HTML 由工具读取,图片作为 DSH 原生消息附件发送(能否理解图片取决于当前模型)。
安装与启用¶
当前 README 记录的验证环境为:DeepSeek Harness 0.2.1-rc.2、Web 界面、Node.js 22.18+。DSH 扩展接口仍在变化,其他版本与桌面内嵌界面尚未验证。
从 Releases 下载构建好的 dsh-canvas-workbench-0.1.0.tgz,在终端执行(路径替换为实际位置):
dsh plugin --profile web add "C:/path/to/dsh-canvas-workbench-0.1.0.tgz" --ignore-scripts
dsh web
若 DSH 已在运行,安装后需重新启动。打开已有会话,或先在新会话发一条消息,再点击会话顶部的 Canvas 标签。
生产安装包已包含 lib/,安装插件不需要运行构建脚本;项目目前未发布到 npm。需要从源码本地链接安装时,README 提供了 git clone、npm ci、npm pack 与 dsh plugin --profile web add "link:..." 的步骤,此处不重复展开。
典型用法:完成一次迭代¶
README 给出的主流程如下:
- 导入或新建成果(见上文)。
- 打开成果,使用「选择区域批注」保存修改意见。
- 点击「让 DSH 按批注修改」,或勾选最多 8 个成果并在右侧发送具体要求。
- DSH 通过
canvas_get/canvas_publish读写;新版本完成后画布自动更新。 - 使用「比较版本」查看差异;需要时可采用历史版本。
在对话中直接创建成果的示例(无需先导入文件):
请用 canvas_publish 创建一个 Markdown 成果,标题「发布清单」,包含准备、验证和发布三个部分。
其他交互包括:聚焦画布后方向键移动选中成果,Shift + 方向键加大步长,Ctrl/Cmd + A 全选;右侧输入框支持 Ctrl/Cmd + Enter 发送。
数据存储与预览边界¶
成果按 DSH 会话独立保存到 <DSH_HOME>/storages/canvas-workbench/boards/。默认 DSH_HOME 为 ~/.dsh;文件名为会话 ID 的 SHA-256。备份此目录可保留画布数据;存储内容未加密。
HTML 为静态预览:样式保留、内容清洗后放入无同源权限的 iframe;禁用用户脚本、外部网络资源、表单、弹窗和下载。用于审阅页面成果,不承载任意 React 应用运行环境;外部图片、字体和 CDN 样式不会加载。
容量与界面限制(来自 README):文本单版本最多 1 MiB,图片最多 5 MiB;单画布最多 100 个成果、500 条批注、25 MiB,每个成果最多 100 个版本。当前界面没有成果删除或跨会话移动功能,接近上限时请导出并使用新会话。
每 2 秒读取一次当前可见画布的 revision。未配置模型、权限被拒或连接失败时会显示错误,不生成假结果。
Canvas API 使用 DSH Connection 的原生身份验证与 owner 限制;持有该 DSH 实例完整权限的用户可以访问该实例的画布。面向本机、单个 DSH host;不要让多个进程同时写同一个 DSH_HOME(目前不提供跨进程锁或多人协同)。
适用场景与注意¶
适合:在同一 DSH 会话里维护多份文稿/页面成果,需要可视化批注、批量勾选上下文、对比版本并继续让模型改写的 Web 端用户。
安装前建议:社区插件以当前 DSH 进程权限运行,安装前应自行查看源码与 MIT License,确认符合你的环境与安全要求。人工验证记录见仓库 VALIDATION.md。
结尾¶
dsh-canvas 把 DSH 对话成果收到一张可持久化的画布上,用批注和版本历史把「审阅—修改—对比」串成闭环,并依赖 DSH 原生 canvas 工具与当前会话的模型和权限,而不是另起一套运行时。