dsh-web-share: Polish solutions in the web version and deliver handover packages to DSH with one click

前言

用 DeepSeek Harness(DSH)跑 agent 时,复杂任务往往有一段「磨方案」:试措辞、比路子、来回改。这段若在 agent 上下文里做,每一轮试探都在消耗 token。DeepSeek 网页版(chat.deepseek.com)自带搜索与深度思考,聊方案可以不占 agent 的账;难的是聊完后如何把结论交给 agent——长对话复制粘贴不现实。社区插件 dsh-web-share(维护者 huang13113,分类:联网工具)针对的是这一步:从网页版只读拉取会话,压成「交接包」,在 DSH 里一键预填到新对话或当前输入框,让 agent 接着已定稿的方案干活。

这是什么

dsh-web-share 是 DSH 的 web profile 插件(npm 包名 dsh-web-share,当前版本 0.3.1,MIT 许可证)。它不调用网页版生成接口,只用 Playwright 驱动本机 Edge/Chrome 读取历史;交接包在内存中拼装,默认不落盘转写文件。一句话定位:别人常见做法是「让网页版替 agent 生成」;本项目做的是「让 agent 接着你们在网页版聊好的方案干活」——只读、零 LLM 蒸馏。

核心功能

省 token 的交接流程

README 描述的典型路径如下:

网页版里把方案聊好(免费额度,随便聊)
        ↓
在 DSH 里点「导出到新对话」
        ↓
自动生成「交接包」+ 新建对话 + 预填进输入框
        ↓
你按回车 —— agent 拿着方案去写代码 / 写文件 / 干活

两个入口、两种落点

入口 位置 行为
侧栏「网页版导出」 侧栏 插件 / 自动化任务 / 任务看板 下方整页面板 导出到新对话:新建对话并预填
对话栏「网页版」 与「对话」「轨迹」并列的第三个标签页 导出到输入框:写入当前对话输入框,不新建对话

点「预览」可展开最后 4 轮、勾选要完整上传的轮次,再点「导出所选 N 轮」;也可直接「导出到新对话」,默认最后 2 轮完整。

交接包而非全量转写

全量转写过长(README 举例:202 条消息约 25 万字符)。交接包规则:

  • 更早轮次:每轮一行压缩(提问与回答各截一段),保留脉络
  • 选定轮次(默认最后 2 轮):逐字完整

README 实测:30 轮对话约 6,620 字符。交接包通过 DSH 界面传递;命令行 export 完整转写会落盘,属于存档用途,与面板一键交接不同。

只读与安全边界

插件声明 只读:代码启动前扫描源文件,禁止 POST/PUT/PATCH/DELETE 及生成、删改会话等模式(readonly.guard.json)。登录态留在插件独立浏览器配置目录(~/.dsh/web-share/browser-profile),插件不读写密码类凭据文件。

给 agent 的工具与 CLI

宿主注册工具示例:

read_deepseek_web action=list               # 列出所有网页版会话
read_deepseek_web action=read query="毕业论文"  # 返回交接包

命令行(在插件内 dsweb-share 目录):

node dsweb.mjs doctor                          # 驱动 / 登录状态
node dsweb.mjs list --count 20                 # 列出会话
node dsweb.mjs handoff "毕业论文"               # 打印交接包
node dsweb.mjs export "毕业论文" --out D:\share  # 完整转写(存档用,会落盘)

安装与启用

前置要求

依赖 说明
Edge 或 Chrome playwright-core 驱动系统浏览器,不额外下载 Chromium
DSH >= 0.1.7-rc.2(README 写明在 0.1.7-rc.2 与 0.2.1-rc.2 上验证过)
Node >= 20
平台 仅 Windows(package.json 中 os: win32)

已安装 Tabbit 的用户可选用 tabbit 驱动(仅 Windows):
DSWEB_DRIVER=tabbit node dsweb-share/dsweb.mjs doctor

安装命令

下面步骤来自项目 README,安装后需 重启 DSH(插件在启动时装配)。

# 1) 装插件(会一并装 playwright-core,约 5 MB,不下载浏览器)
dsh plugin --profile web add github:huang13113/dsh-web-share
# 2) 登录一次(会弹出一个真实浏览器窗口)
cd "$env:USERPROFILE\.dsh\profiles\web\node_modules\dsh-web-share\dsweb-share"
node dsweb.mjs login

在弹出窗口登录 chat.deepseek.com 成功后窗口关闭;也可在 DSH 面板点 「登录 DeepSeek」。

# 3) 验证
node dsweb.mjs doctor

自测清单(建议装完后先跑)

cd <插件目录>\dsweb-share

node dsweb.mjs selftest        # 只读自检,必须通过
node dsweb.mjs doctor          # 驱动与登录状态
node dsweb.mjs list --count 5  # 真读一次会话列表

README 强调:插件不依赖官方 API,稳定性受本机浏览器、网页端前端变更、网络环境影响;只读失败不会写坏数据,最坏情况是读不到会话。

典型用法

侧栏(推荐):侧栏 → 「网页版导出」 → 选中对话 → 「导出到新对话」 → 在新对话输入框改一改后按回车。面板无当前会话上下文,因此只能新建对话。

对话栏:对话栏 → 「网页版」 → 「导出到输入框」 → 交接包进入当前对话输入框,适合已在该对话中干活、要把网页版结论接进来的情况。

适用场景与注意

适合:已在 DeepSeek 网页版长聊定方案,希望把结论交给 DSH agent 执行,且希望减少 agent 侧「磨需求」token;需要确定性交接包、不想走生成接口或 LLM 蒸馏的用户。

不适合:若要在 DSH 里直接与网页版双向聊天,README 指向同类项目如 dsh-web-chat;若只需公网分享会话链接,应看 dsh-share 等分享类插件,与本插件「交给 agent」目标不同。

权限与安全:插件以当前 DSH 进程权限运行,会通过浏览器读取你已登录的网页版会话内容。安装前应查看 GitHub 仓库 源码与 MIT 许可证,并在本机完成上述自测后再日常使用。macOS / Linux 上 npm 会因 os 字段拒绝安装,除非强制 --force;官方发布面向 Windows。

DSH 社区插件目录(如 SkillHub 上的 dsh-web-share 页)由社区维护,与 DeepSeek / 幻方无官方从属关系;生态理念是「一切皆插件」,本文介绍的是其中一款联网工具类插件。

结尾

dsh-web-share 把「网页版免费聊方案」和「DSH agent 执行」之间的缺口收成一次导出:交接包压缩前情、保留定稿轮次,侧栏开新对话或对话栏续写当前框,只读、零凭据落盘。进一步了解与 issue 反馈见 GitHub:https://github.com/huang13113/dsh-web-share;目录页:https://www.skillhub.cn/plugins/huang13113/dsh-web-share。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye