DeepSeek Harness (DSH) 的设计理念是「一切皆插件」。在 Web 交互场景中,核心功能往往只覆盖基础对话,对于文件传输、历史会话的高级检索以及本地资源监控等需求,通常需要通过外部插件补充。下面介绍的 dsh-user-addons 是一个由社区开发者 Yur0918 维护的 Web 插件,旨在为 DSH Web 界面增加文件处理、会话归档和性能监控的能力。
插件定位¶
dsh-user-addons 是一个开源的社区插件,采用 MIT 许可证。它不修改 DSH 核心文件,而是作为一个独立的包提供 Host 和 Web 客户端两端的扩展。该插件通过 DSH 的插件/包机制进行加载,核心价值在于填补 Web 端在文件操作和会话管理上的空白。
核心功能¶
该插件主要提供以下能力:
- 文件上传与附件处理:支持在 Web 编写器中进行文件拖拽上传。系统会自动检测当前选中的模型是否支持图像输入;若支持,图片将直接作为附件发送;若不支持,文件会被保存至本地,并通过路径引用的方式附加。
- 会话归档管理:提供了一个归档管理器,允许用户查找、归档和恢复会话。自 1.3.0 版本起,新增了「预览」功能(只读查看,无需恢复会话)和「全文搜索」功能(匹配对话日志的解码内容,而不仅仅是标题)。
- 模型与 Token 使用仪表板:从
~/.dsh/sessions目录折叠汇总本地的模型调用情况和 Token 使用数据。 - 图像能力检测:向 Web 客户端提供接口,用于判断当前模型是否具备图像输入能力,从而决定附件的处理策略。
安装与启用¶
安装此插件需要满足以下前提条件:
* 已安装 Node.js 22.19 或更新版本。
* DSH Web 配置文件已启用客户端模块加载器。
安装步骤如下:
- 使用 DSH 配置文件支持的插件/包机制安装此包。
- 重启 Web 配置文件,确保插件能够发现元数据和
lib/client.js打包文件。 - 确保已安装的
lib/client.js文件存在(如果是源码 checkout,需先构建)。
安装完成后,包会声明以下注入内容:
{
"dsh": {
"client": {
"platform": "web",
"inject": [
"@deepseek-ai/dsh-client-locale"
]
}
}
}
典型用法¶
插件在 Host 端注册了同源 /addons/* 路由,主要接口包括:
GET /addons/health
GET /addons/archive/list
POST /addons/archive/archive
POST /addons/archive/restore
GET /addons/image-capability
POST /addons/upload
GET /addons/usage/summary
在开发或调试阶段,可以使用以下命令进行代码检查:
npm run check
注意事项¶
- 文件限制:上传文件大小限制为 100 MiB,文件名在写入 DSH 主目录前会经过清洗处理。
- 数据来源:使用数据直接读取本地 DSH 会话日志,插件本身不发起任何网络请求。
- 隐私安全:请勿将会话日志、上传的文件、凭证、生成的任务状态或备份文件提交到版本控制系统中。
- 兼容性:请确保 DSH Web 环境与插件当前使用的 Node.js 版本兼容。
该插件通过补充 Web 端常用的文件管理和会话检索能力,降低了在 DSH 环境下进行日常交互和开发调试的门槛。更多细节可查阅其 GitHub 仓库。