前言¶
在 DSH 里做智能体开发时,常见分工是:主模型负责调工具、改文件,但长上下文自由讨论往往更适合网页版 DeepSeek;网页版本身又没有 DSH 的工具与文件权限。若只靠 API,长讨论会占额度;若只在主会话里聊,上下文和成本都容易顶不住。
下面介绍社区插件 dsh-webds-bridge(维护者 Sum556677):在 DSH 侧栏用内置浏览器打开网页版 DeepSeek,通过纯 DOM 自动化收发消息,把讨论进度按别名归档为本地记忆,再注入主会话,让本地模型带着上下文继续干活。分类为「记忆」,当前 npm 版本为 0.1.2,要求 DSH Desktop 0.2.1-rc.2 及以上(README 写明 0.2.1-rc.2 实测通过)。
这是什么¶
dsh-webds-bridge 是一条「网页版纯文本讨论 → 总结归档 → 主会话执行」的桥接插件:不依赖网页版私有接口,也不需要 API Key,走的是侧栏 <webview> 里的真实网页会话。
闭环可以概括为:
网页版纯文本讨论 → 总结归档(按别名,如 projects/alpha.md) → 主会话带着进度调用工具执行
插件以单 npm 包同时提供 Host 与 Client,安装时通过自带的 cordis.patch.yml 自动插入两条 loader,一般无需手改 cordis.patch.yml。
核心功能¶
纯 DOM 自动化(Client)¶
在侧栏浏览器里模拟操作网页版 DeepSeek:
- 通过
ctx.sidebarRight.openTab('browser', …)拉起页面,在 DOM 中定位webview[data-sidebar-browser-frame]。 - 用
webview.executeJavaScript写入输入、派发事件并发送;轮询.ds-markdown等待流式回复稳定。 - 从渲染后的 DOM 还原 fenced 代码块;按回复长度累加 token 估算,达到阈值可触发自动续接(总结 → 新开对话 → 接力)。
- 新建对话时会对「开启新对话」做多级点击兜底,并在 5 秒内确认 URL 或消息区变化,否则停止,避免盲发。
记忆与注入(Host)¶
- 保存记忆:总结经约 1800 字符智能截断后原子写入
progress.md(或按别名写入projects/下对应.md),旧内容归档到history/(保留最近 20 份)。 - 动态注入:通过
ctx.systemPrompt.context注入进度,progress.md变更后下一次组装即可生效。 - 执行注入:
ctx.sessionController.prompt()把进度作为用户消息投递到当前主会话(RPCexecute)。
多对话别名¶
不同话题用不同别名,避免切换网页会话后互相覆盖。例如默认别名 progress 对应 <root>/progress.md,别名 alpha 对应 <root>/projects/alpha.md。保存与执行始终作用于当前选中的同一别名;上次选择在 config.json 的 lastKey 中,重启后恢复。别名会经 normalizeMemoryKey() 校验,防止路径穿越。
设置页与会话栏¶
设置界面左侧出现「DSH 网页版桥接」面板(登录状态、Token 估算、打开网页版、保存/执行/续接、阈值与记忆目录等)。会话标题栏右侧提供 存记忆 | 执行 | 续接 三个按钮,与设置页共用同一套逻辑。
存储目录与迁移¶
记忆根目录优先级为:DSH_WEBDS_MEMORY_DIR 环境变量 > config.json 的 memoryDir > 默认 $DSH_HOME/dsh_memory。指针文件固定在 $DSH_HOME/dsh_memory/config.json。面板支持迁移并切换或仅切换目录,迁移时复制并做 size + SHA-256 校验,不删除源目录。
安装与启用¶
安装前请完全退出 DSH(托盘右键退出),否则可能出现 EPERM: rename package.json。官方一键安装命令为:
dsh plugin --profile desktop add dsh-webds-bridge
若使用其他 profile,将 desktop 换成你的 profile 名。升级到最新版:
dsh plugin --profile desktop add dsh-webds-bridge@latest
装完后须从托盘彻底重启 DSH(README 注明 Ctrl+Shift+R 无效)。自检:设置里应有「DSH 网页版桥接」;会话标题栏应有 存记忆 | 执行 | 续接。若无,可先执行 dsh plugin --profile desktop why dsh-webds-bridge 确认安装,并检查 profile 的 package.json 中 dsh.profile.bundles 是否包含 dsh-webds-bridge。
典型用法¶
- 重启 DSH 后,在侧栏打开网页版 DeepSeek,手动登录一次(每次进程重启后需重登,见下文注意)。
- 在网页版里做长文本讨论;需要落盘时,在设置页或标题栏点「存记忆」,选好别名(可选
projects/某话题)。 - 回到主会话,点「执行」,把当前别名下的进度作为用户消息注入,由 DSH 主模型带着上下文调工具。
- 若 token 估算接近阈值,可用「续接」或依赖自动续接流程,避免单对话过长。
面板里可调整 Token 阈值、预览已有记忆、更换或迁移存储根目录。
适用场景与注意¶
适合谁:希望在网页版 DeepSeek 上免费或低成本做长讨论,又要把结论交给 DSH 本地模型执行的场景;需要按话题隔离多份「讨论进度」、避免覆盖的用户。
登录态:每次重启 DSH 都要在侧栏网页版重新登录。原因是 DSH 为侧栏浏览器访客分配的是非持久化、每次启动随机 UUID 的分区,Cookie 与 localStorage 无法在重启间复用;这是 DSH 桌面端设计,插件侧 README 结论为不可行绕过,除非改 DSH 本体。
权限与安全:插件以当前 DSH 进程权限运行,记忆文件写在配置的根目录下。安装前建议阅读 GitHub 仓库 源码与 MIT 许可证,确认别名与目录配置符合你的安全预期。
生态说明:DSH 社区插件目录(如 SkillHub 上的条目)由社区维护,与 DeepSeek / 幻方无官方从属关系;安装命令以 README 为准,勿凭仓库名自行拼接 github:owner/repo 形式。
结尾¶
dsh-webds-bridge 把网页版 DeepSeek 的讨论能力与 DSH 的工具执行接成一条链:DOM 自动化、多别名记忆、设置页与标题栏操作,且无需 API Key。若你已在用 DSH 0.2.1-rc.2+,可按上文命令安装并从托盘重启后试用。