前言¶
在 DSH 里做浏览器相关任务时,常见的问题是:模型需要访问一个已经登录的网站,但浏览器会话不在模型手里,或者不同客户端之间各自维护一次登录态。dsh-plugin-browser 针对这个问题,把 Playwright + CDP 的浏览器自动化封装成 DSH 插件,让模型通过 15 个 browser_* 工具操作同一个已登录 Chrome。
这是什么¶
q35888/dsh-plugin-browser 是一个 DeepSeek Harness(DSH)插件。它的定位是:
- Native browser automation for DeepSeek Harness
- 在
ctx.tools上提供 15 个browser_*工具 - 使用 Playwright + CDP
- 可在 DSH / pi / MCP clients 之间共享同一个已登录 Chrome
维护者是 q35888,许可证为 MIT。仓库地址:
https://github.com/q35888/dsh-plugin-browser
包中给出的依赖版本约束如下:
{
"peerDependencies": {
"@deepseek-ai/dsh-tools": "^0.1.0-rc.7",
"@deepseek-ai/cordis": "^4.0.1"
},
"dependencies": {
"playwright": "^1.61.1"
}
}
核心功能¶
下面介绍与日常使用最直接相关的几组能力。
会话模式¶
browser_session:启动或切换会话real:使用已登录 Chromeisolated:使用独立无痕会话- Chrome 没开时,插件会自动拉起
- 默认目录设置可与
agentic-browser-mcp共享同一个已登录 Chrome
页面交互¶
下面这些工具主要基于 ref 定位:
browser_navigate
browser_snapshot
browser_click
browser_type
browser_select_option
browser_hover
先打开页面,再用 browser_snapshot 取得可操作元素,然后执行点击、输入、选择或悬停。
标签页、弹窗、页面状态¶
browser_tabs:管理标签页browser_handle_dialog:处理 JS 弹窗browser_eval:执行页面 JSbrowser_storage:读取 cookies/localStoragebrowser_console:读取控制台日志browser_screenshot:截图存文件browser_wait_human:遇到验证码或登录时,在 DSH 界面弹卡片等待人工操作,5 分钟超时
安装¶
安装方式 A 与方式 B 二选一,混用会产生重复插件行导致 DSH 启动失败。本文按 dsh CLI 的方式写。
dsh CLI 安装命令:
dsh plugin --profile web add github:q35888/dsh-plugin-browser
如果会使用 isolated 模式,再安装 Chromium:
npx playwright install chromium
isolated 模式需要 npx playwright install chromium(约 95MB);只用 real 模式可跳过。
经过上面的步骤后,插件会在 DSH 的 ctx.tools 中注册 browser_* 工具。
典型用法¶
一个来自资料中的示例:
你: 帮我看看 github 今天有什么通知
模型: browser_navigate → browser_snapshot → 读到通知列表 → 汇报给你
实际操作时,通常按这个顺序:
1、先调用 browser_session,选择 real 或 isolated 会话。
2、调用 browser_navigate 打开目标页面。
3、调用 browser_snapshot 获取页面元素和 ref。
4、用 browser_click、browser_type、browser_select_option、browser_hover 等工具操作页面。
5、需要固定某个标签页时,用 browser_tabs 的 switch。
几个使用要点:
ref是临时的,页面变化后先重新browser_snapshot再操作- 遇到验证码或二次验证时,调用
browser_wait_human,在 DSH 界面操作完点确认 - 新开的标签页自动跟随;需要固定某个标签页时用
browser_tabs的switch isolated模式需要npx playwright install chromium(约 95MB);只用real模式可跳过
适用场景与注意¶
这个插件适合需要在 DSH 会话里访问已登录网站的场景:你已经在浏览器里登录过某个站点,模型就可以在这个插件提供的浏览器里继续读取或操作页面。
使用前需要注意:
- 插件以当前 dsh 进程权限运行;
browser_eval和browser_storage能读取浏览器里的 cookies 和登录凭据,请只在你信任的会话中使用本插件 - 安装前应检查源码与许可证,许可证为
MIT - 同一个 DSH 进程里的多个会话/子代理共享同一个浏览器标签页,并发使用时会互相干扰
isolated模式下如果 DSH 意外退出,独立浏览器进程可能残留- 它依赖 DSH 的 rc 期工具 API;DSH 大版本升级后若失效,删掉机器级配置里的两行即可完全回滚
- macOS 无头
isolated模式设置AGENT_BROWSER_ISOLATED_CHANNEL=chrome可能挡住日常 Chrome
结尾¶
dsh-plugin-browser 的价值,是把浏览器自动化接回 DSH 的工具调用链路里:模型可以直接导航、读取页面、操作元素,并在需要人工验证时把操作交还给使用者。
仓库地址:
https://github.com/q35888/dsh-plugin-browser
目录页 URL 未在本文事实中确认,这里不额外给出。