dsh-explorers:用本机浏览器承接 DSH 的网页操作

前言

在 DSH 里做联网或页面相关任务时,常见做法是让智能体调 Playwright、Puppeteer 一类无头浏览器,或走单独的 HTTP 抓取。这些路径能开页、能解析 DOM,但和你日常用的 Chrome、Edge、QQ 浏览器不是同一进程:登录态、站点插件、风控策略往往对不上,调试时也更难「所见即所得」。

下面介绍社区插件 dsh-explorers(维护者 startime-ltk,分类:联网工具)。它把 DSH 接到你本机已安装的浏览器上,通过 MV3 扩展、本机回环桥和一组 browser_* 工具,让模型开页、读快照、点按、填表、截图,走的是带 Cookie、带扩展的真实浏览器,而不是另起一个无头实例。安装包按 Chrome / Edge / QQ 浏览器分发行,扩展代码相同,装一个浏览器即可;同一座桥可同时接多款浏览器,命令里用 browser 指定目标。

这是什么

dsh-explorers(显示名:DSH Explorers 浏览器桥,当前仓库版本 1.0.1,MIT 许可)是 DeepSeek Harness 生态下的 cordis 插件:在 DSH 进程里注册 12 个浏览器工具,spawn 独立桥进程,由浏览器里的 MV3 扩展反向连入。命令只在 127.0.0.1 上传递,不经过外网。

社区目录页:startime-ltk/dsh-explorers
源码与发布包:GitHub startime-ltk/dsh-explorers(Releases 提供 -chrome.zip / -edge.zip / -qq.zip)

工作原理(便于排错)

整体链路可以概括为:

DSH 插件进程 (Electron Host, Node 24)
  lib/index.js            cordis 插件:注册 tools,spawn 桥进程
  lib/bridge-client.js    HTTP 客户端 → 桥
        │ HTTP  POST /command   (Bearer token)
        ▼
  lib/bridge.mjs          独立桥进程(detached,父进程死后自杀)
        │ 127.0.0.1:17731   HTTP + WebSocket
        │ WS /ws            扩展反向连入
        ▼
  extension/background.js  MV3 Service Worker
        │ chrome.tabs / chrome.scripting / chrome.debugger
        ▼
  网页(page-agent.js 注入到 ISOLATED world)

扩展主动连桥;桥默认端口 17731,被占用时顺延 17732…17740。同一桥可同时接 Chrome、Edge、QQ 浏览器各一条 WebSocket。每次桥启动会重新生成 token,桥只监听本机回环地址。

桥就绪后,可在 %USERPROFILE%\.dsh\dsh-explorers\bridge.json 中读取 port 与 token。

核心能力:12 个 browser_* 工具

下列工具对模型可见(节选说明,完整定义见仓库 README):

工具 作用
browser_status 连接状态与标签页(可用 browser 指定)
browser_tabs 标签页 list / new / activate / close / reload / back / forward
browser_navigate 打开 URL,可等待 load / domcontentloaded
browser_snapshot 可交互元素 + ref,或正文 / HTML
browser_click 按 ref / selector / text / 坐标点击
browser_type 输入框输入(兼容 React/Vue 原生 setter),可清空、可提交
browser_key 当前焦点按键 / 组合键
browser_scroll 滚动页面或滚到某个 ref
browser_extract 提取文本 / HTML / 属性
browser_screenshot 视口或全页截图,落盘供模型查看
browser_wait 等元素 / 文本 / URL 或固定时长
browser_eval 页面主世界执行 JS(需审慎使用)

v1 已知限制包括:仅操作顶层文档、不支持 iframe 内元素;一次命令只作用于一个标签页;不代管文件下载上传;不做网络抓包;扩展需通过「加载已解压的扩展程序」安装,无商店自动更新。

安装与启用

安装分两段:DSH 侧插件、浏览器扩展。中文逐步说明与故障表见仓库 docs/INSTALL-zh.md。

① 安装 DSH 插件

在插件仓库目录执行(会备份 profile 的 package.json,幂等,可重复执行):

node scripts/install-profile.mjs            # 默认装进 desktop profile
node scripts/install-profile.mjs --uninstall

等价手改:在 %USERPROFILE%\.dsh\profiles\<profile>\package.json 中增加 dependencies 的 dsh-explorers 本地 link,并在 dsh.profile.bundles 中加入 dsh-explorers。随后在该 profile 目录执行 pnpm install,必要时重启 DSH(部分桌面端会监听 profile 变更自动重载,可先等待 5–10 秒确认 bridge.json 是否出现)。

自检可运行:

node scripts/selfcheck.mjs        # 插件/桥/扩展/安装页 18 项检查

运行环境要求(来自 package.json):Node >=22.19.0;peer 依赖 @deepseek-ai/cordis、@deepseek-ai/dsh-tools 需在 DSH 自带范围内满足。

② 安装浏览器扩展

  1. 打开安装页 http://127.0.0.1:17731/install(端口以 bridge.json 的 port 为准)。备选:http://127.0.0.1:<DSH web 端口>/plugins/dsh-explorers/(第三方路由不保证可用,打不开则用桥地址)。
  2. 在安装页下载对应浏览器的扩展 zip,解压后于 chrome://extensions / edge://extensions / qqbrowser://extensions 开启开发者模式,「加载已解压的扩展程序」。
  3. 点扩展图标「自动配对」;失败则将安装页「复制配对码」粘贴到扩展设置。桥重启换 token 时,扩展收到 WebSocket 关闭码 4401 会尝试重新配对。
  4. 安装页状态条变绿表示已连接。

典型用法

README 中的对话式流程可直接复现:

你:打开 example.com,在页面里找到第一个链接,点进去,然后截图给我。

dsh:browser_navigate  { url: "https://example.com" }
     browser_snapshot  { mode: "interactive" }        → elements: e1 "More information..."
     browser_click     { ref: "e1" }
     browser_extract   { selector: "h1" }
     browser_screenshot{ fullPage: false }            → .dsh-explorers/shots/shot-*.png

实操时常见顺序是:browser_navigate → browser_snapshot(拿 ref)→ browser_click / browser_type → browser_screenshot 或 browser_extract。

适用场景与注意

适合谁: 需要 DSH 操作已登录站点、依赖浏览器扩展、或希望与人工同一浏览器窗口对照调试的开发者;需要在本机 Chrome / Edge / QQ 浏览器上完成导航、表单、截图类自动化,且接受「开发者模式加载扩展」部署方式的用户。

权限与安全:

  • 插件与桥在本机以当前 DSH 进程用户权限运行;安装前应阅读源码与 MIT 许可证,确认符合你的安全策略。
  • 桥 token 主要防范网页误打本机端口与同机端口串用,不隔离同用户进程读 bridge.json。
  • browser_eval、browser_type 能把内容与按键送入页面;仅在明确要求时使用,不要主动填写密码。
  • 扩展申请 debugger 权限(全页截图),浏览器会显示「正在调试此浏览器」,属预期行为。
  • 扩展不上传数据;命令仅来自本机桥。

生态说明: DSH 采用「一切皆插件」扩展思路;SkillHub 目录 为社区站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-explorers 把 DSH 的网页能力锚定在你本机真实浏览器上:一座本地桥、一份 MV3 扩展、12 个 browser_* 工具,覆盖开页、快照、交互与截图。若你的痛点是「无头浏览器没有我的登录态」,可以按仓库 docs/INSTALL-zh.md 完成双端安装后,用 node scripts/selfcheck.mjs 做一次全链路自检。

  • 目录页:https://www.skillhub.cn/plugins/startime-ltk/dsh-explorers
  • GitHub:https://github.com/startime-ltk/dsh-explorers
羽毛球分组比赛记分
小程序二维码

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

小夜