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