前言¶
在 DSH 里让模型读网页、点按钮,常见做法是装浏览器扩展,走 browser_* 工具,连的是你日常在用的那个 Chrome。扩展方便复用已有登录态,但画面多以文本快照为主,且和本机主浏览器绑在一起。
如果你希望每个工作区有自己的浏览器进程和登录态,并在右侧栏看到实时画面,同时用一套独立前缀的工具名与扩展类插件并存,dsh-helper-plugin-workspace-browser 就是面向这个场景的联网工具插件。下面介绍它是什么、怎么装、怎么用,以及和扩展路线的差别。
这是什么¶
维护者 x102201 在 GitHub 开源的 DSH 插件(当前 package 版本 0.1.0,MIT 许可证)。它为当前工作区单独启动一个带调试端口的 Chrome:你在 DSH 右侧栏看画面,模型通过 workspace_browser_* 阅读和操作页面。
它不接管日常浏览器,也不安装扩展。每个工作区有独立 profile 与登录态;本机需已安装 Chrome,插件不会代为下载浏览器。社区目录分类为「联网工具」,SkillHub 目录页:https://www.skillhub.cn/plugins/x102201/dsh-helper-plugin-workspace-browser。
和扩展类插件的差别¶
扩展路线(例如 dsh-browser-control)通过扩展加调试桥,连的是正在使用的浏览器;本插件另起一个 Chrome 进程,无扩展,直连调试端口。
| 扩展路线 | 本插件 | |
|---|---|---|
| 和浏览器的关系 | 扩展加调试桥 | 无扩展,直连调试端口 |
| 准备 | 安装扩展 | 点胶囊里的「启动」 |
| 登录态 | 日常浏览器里已有的 | 工作区自己的 profile,站点要再登一次 |
| 你看到的画面 | 以文本快照为主 | 右侧栏实时画面 |
| 工具名 | browser_* |
workspace_browser_*,可与扩展同时装 |
核心功能¶
适合做的事¶
- 打开网页,让模型读正文并总结(总结由模型写,插件只交出页面文字)。
- 按页面控件完成点击、填字、翻页;控件用当次快照编号(如
e1、e2)指认,不靠截图认字。 - 把跑通的步骤存成技能,下次从输入框再调出。
不适合:操作已登录的日常浏览器;让模型自己写页面脚本或点击坐标。
模型工具(前缀 workspace_browser_)¶
工具在插件加载时注册,不随浏览器启停增减;浏览器未启动时调用会返回带说明的错误。
| 类型 | 工具 |
|---|---|
| 读 | snapshot、get_text、list_tabs、select_tab、screenshot |
| 写 | click、type、press、scroll、navigate、open_tab、close_tab、back、forward、reload、wait |
| 保存技能 | save_skill(需先在对话里确认) |
默认没有 evaluate。snapshot 先给可见正文再给可操作控件编号;点击和填字用编号,不用 CSS 或坐标。页面文字包在不可信标记里,模型不应把它们当成指令。读写页面使用 playwright-core 连到已启动的 Chrome;进程、标签、画面和截图走 Chrome 调试协议。
界面与数据¶
点输入框旁胶囊打开小面板,点「启动」后 Chrome 窗口出现,右侧栏展开画面。默认上下两块:上面是当前焦点页,下面是标签缩略图(胶片条);中间分隔条可拖。
工作区数据目录:
<workspace>/.workspace-browser/
├── chrome-profile/ # 本工作区登录态
├── skills/ # 技能说明
├── shots/ # 截图
└── endpoint.json # 端口线索,不代表浏览器仍存活
无工作区会话时使用 <DSH_HOME>/workspace-browser/_ungrouped/。
安装与启用¶
需要 Node.js 20 或更高,以及本机 Chrome。安装会修改当前 web profile 的 package.json(依赖和 dsh.profile.bundles)。装完后重启 dsh --profile web(或 dsh web);bundle 列表只在启动时读一次。
通过 GitHub 安装(推荐,无需克隆仓库):
dsh plugin --profile web add github:x102201/dsh-helper-plugin-workspace-browser
本机已有源码、需要跟着改时,可用绝对路径 link 安装:
dsh plugin --profile web add link:/absolute/path/to/dsh-helper-plugin-workspace-browser
注意:cordis.patch.yml 已插入 loader id workspace-browser,profile 里再插同一 id 会报 duplicate loader entry id;同名工具装两次也会导致加载失败。本插件工具前缀与 browser_* 不冲突。
插件在 DSH 宿主进程权限下运行;安装前建议在 GitHub 查看源码与 MIT 许可证:https://github.com/x102201/dsh-helper-plugin-workspace-browser。
典型用法¶
打开本工作区浏览器¶
胶囊点「启动」;关窗后约半秒内胶囊回到「未启动」,需再点「启动」。未找到 Chrome、版本过低或多个候选时,小面板会说明原因;可在插件配置区指定 chrome.exe 路径。
/browser 命令¶
在输入框使用 /browser(未注册的 /命令 会被 DSH 直接拒绝):
| 输入 | 插件行为 | 模型看到 |
|---|---|---|
/browser |
启动窗口并打开画面 | 无新消息 |
/browser https://… |
已有同 URL 用该标签,否则后台新开 | URL 与标签 id |
/browser https://… 后面的话 |
同上 | 再加这段话 |
/browser 无 URL 的一段话 |
开窗口和画面,不开新标签 | 整段话,由模型决定去路 |
/browser --new https://… |
强制新开标签 | 同有 URL 的一行 |
交给模型的是芯片式上下文;展开说明要求只用 workspace_browser_*,不要用 DSH 自带网页抓取或 browser_*。已打开标签也可从胶片条「加入对话」。
技能¶
技能记在 <workspace>/.workspace-browser/skills/<名字>.md,不是宿主 .dsh/skills/。可用 /browser 新增技能、/browser 保存技能 等发起,模型复述步骤并经你同意后才写入。输入框 @ 可选技能;胶片条右键可加入对话、查看、删除等。
配置要点¶
侧边栏「插件」→「已安装」中本插件卡片,配置写在 profile 的 cordis.patch.yml 用户层(namespace 为 loader row id workspace-browser)。常见项包括:capsuleEnabled(胶囊)、debugPort(0 自动分配)、userDataDir(留空用工作区目录)、instanceOnDshExit(keep 或 close)、画面流帧率与质量等。用户数据目录、调试端口、跨域和退出行为在下次启动浏览器时生效。
适用场景与注意¶
适合:需要与工作区绑定的独立 Chrome、右侧实时预览、与 browser_* 扩展插件并行;重复网页操作想沉淀为工作区本地技能。
注意:站点登录态与日常浏览器分离,需在本插件 profile 里重新登录。写操作由工具直接执行。DeepSeek Harness 生态是「一切皆插件」;SkillHub 为社区目录,与 DeepSeek / 幻方无官方从属关系。
仓库与设计说明(接口与实测):https://github.com/x102201/dsh-helper-plugin-workspace-browser(DESIGN.zh.md)。