← 返回列表
未验证
让模型读取并操作你已登录的浏览器标签页
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/29 · 已提供中文文档
DeepSeek Harness(DSH)的 dsh-browser 全权限后台标签页分支。基于 dsh-browser、MCP 和 browser-use。
综合分
28.2
GitHub 分
28.2
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add LianPing-cyber/dsh-browser-full-access该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh 浏览器操作
把 DeepSeek Harness 连接到你正在使用的 Chrome 或 Firefox 标签页。模型可以读取页面内容、点击控件、填写表单、滚动与导航,同时保留登录态、会话和 Cookie。侧边栏提供对话界面。
dsh 是由 DeepSeek AI 开发的开源、插件化 agent harness(智能体框架)。本仓库将配套的浏览器桥插件与 Chrome/Firefox MV3 扩展组成一个独立的 pnpm workspace。
浏览器操作仍采用纯文本设计:页面会转换为结构化文本和带编号的交互元素清单,模型通过编号定位元素。dsh 0.1.1 的多模态对话走独立通道——宿主声明图片能力时,侧栏可发送 PNG、JPEG、WebP 和 GIF;浏览器工具本身仍不会截取页面截图。
快速安装
本项目不能只使用标准的 dsh plugin 命令安装。它同时包含 dsh bridge plugin 和浏览器扩展。一行安装器目前会安装 Chrome 构建。
macOS 与 Linux:
curl -fsSL https://raw.githubusercontent.com/Lum1104/dsh-browser/refs/heads/main/scripts/install.sh | bash
Windows(PowerShell):
$s="$env:TEMP\dsh-install.ps1"; irm https://raw.githubusercontent.com/Lum1104/dsh-browser/refs/heads/main/scripts/install.ps1 -OutFile $s; powershell -NoProfile -ExecutionPolicy Bypass -File $s
安装器打开 chrome://extensions 后,请按提示加载或重新加载 dsh 浏览器助手。如果 dsh 已经在运行,安装完成后请重启。前置要求、启动命令、更新方式和开发者安装详见详细安装与使用。
[!IMPORTANT]
npm 上未加 scope 的 dsh-browser 包属于另一个项目,与本仓库无关。本项目目前没有发布 npm 包,请使用上方安装器。
性能基准
在 2026 年 8 月 18 日完成的 60 次配对端到端评测中,两个后端分配到的 30 次运行均全部成功;dsh 浏览器操作使用了更少的模型/工具轮次,并以更短时间完成任务:
| 后端 | 成功率 | 平均端到端耗时 | 平均浏览器工具调用 |
|---|---:|---:|---:|
| dsh 浏览器操作 | 30/30 | 5.32 秒 | 3.4 |
| 对齐工具契约的 Playwright 基线 | 30/30 | 6.67 秒 | 4.7 |
Playwright / 扩展的配对耗时比为 1.24(95% CI 1.16–1.34):Playwright 耗时约多 24%;等价地说,dsh 浏览器操作将延迟降低约 20%,每个任务平均节省 1.35 秒。评测使用 6 个浏览器任务、5 个确定性 seed、相同的 DSH profile 与模型(deepseek-v4-flash),并通过独立页面状态验证结果。详见评测方法与复现说明。
核心能力
| 能力 | 工具 | 说明 |
|---|---|---|
| 读取页面 | browser_snapshot | 结构化文本快照:标题/URL/正文/编号交互清单/表单字段(敏感值掩码);delta: true 只返回变化 |
| 点击元素 | browser_click | 按编号点击链接/按钮/复选框等 |
| 填写表单 | browser_type | 输入文本(React/Vue 受控组件兼容),replace 清空重填 |
| 按键 | browser_press | 键盘事件(Enter/Tab/Escape/方向键…) |
| 滚动 | browser_scroll | 视口滚动(up/down/top/bottom) |
| 页面导航 | browser_navigate / browser_back / browser_forward / browser_reload | 受控标签页内导航,保留登录态 |
| 读取区域 | browser_get_text | 懒加载内容 / 局部文本 |
| 等待稳定 | browser_wait | 页面加载与渲染稳定检测 |
| 发送图片 | session.prompt / session.attachment | 按宿主能力启用图片草稿、纯图片消息和持久历史预览 |
| 引用选中内容 | 侧栏输入框 | 在页面里划选的文字会出现在输入框,随下一条消息一起发送,并带上来源与不可信内容边界 |
组成
packages/browser/bridge-browser/
cordis.patch.yml
extensions/dsh-browser/
scripts/install.sh
scripts/install.ps1
为什么这样设计
- 使用你的真实浏览器,而不是无头副本:模型操作你已经打开的页面,登录态、会话和 Cookie 均会保留。
- 纯文本页面接口:编号控件、跨快照稳定 ID、delta 更新和敏感值掩码,使模型无需截图也能操作页面;用户主动添加的对话图片走 dsh 独立的多模态消息通道。
- 用「指」代替「描述」:直接划选你要问的那段文字,侧栏会把它引用下来,说「解释这个」不必再描述整页内容。只有侧栏打开时才会捕获,并且在你发送消息之前不会离开浏览器。
- 收窄隐私边界:密码和支付卡字段始终显示为 ••••,字段值不会离开页面。
- 受保护的桥连接:远程连接使用认证握手,特权网关方法拒绝非回环调用方,扩展把工具绑定到一个由用户控制的标签页。
详细安装与使用
前置要求:Node.js ^22.19 或 >=24、Corepack/pnpm,以及 Chrome 116+ 或 Firefox 140+。Windows 还需要系统自带的 Windows PowerShell 5.1,或 PowerShell 7+。
安装或更新
托管安装请运行:
curl -fsSL https://raw.githubusercontent.com/Lum1104/dsh-browser/refs/heads/main/scripts/install.sh | bash
Windows 请运行:
$s="$env:TEMP\dsh-install.ps1"; irm https://raw.githubusercontent.com/Lum1104/dsh-browser/refs/heads/main/scripts/install.ps1 -OutFile $s; powershell -NoProfile -ExecutionPolicy Bypass -File $s
安装器会下载 main、构建并注册桥插件、把 Chrome 扩展构建到 ~/.dsh/browser-extension,然后打开 chrome://extensions。首次安装时,请把该目录作为已解压扩展加载;更新时点击重新加载。如果 dsh 已在运行,请重启。
scripts/install.sh 覆盖 macOS 与 Linux,scripts/install.ps1 覆盖 Windows;两者写入同一个托管工作区和同一份安装元数据。当系统提供剪贴板工具(pbcopy、wl-copy、xclip、xsel 或 PowerShell 的 Set-Clipboard)时,安装器会把扩展路径复制到剪贴板;无论是否复制成功都会打印该路径。若未检测到 Chrome/Chromium,安装器会打印对应的安装命令;设置 DSH_INSTALL_BROWSER=1 可让安装器尝试自动安装。
Windows 命令先下载 install.ps1 再执行,而不是管道给 Invoke-Expression:脚本是带 BOM 的 UTF-8,Windows PowerShell 依赖 BOM 才能正确显示中文,而 Invoke-Expression 无法处理开头的 BOM。
如需从源码 checkout 安装当前分支:
git clone https://github.com/Lum1104/dsh-browser.git
cd dsh-browser
./scripts/install.sh
Windows 请在 checkout 中运行 .\scripts\install.ps1。拉取或切换版本后,请重新运行安装器并重新加载扩展。
Firefox 源码构建
Firefox 使用独立的 MV3 manifest、事件页后台和 Sidebar。在 checkout 中构建后,打开 about:debugging#/runtime/this-firefox,选择「临时载入附加组件」,再选取 extensions/dsh-browser/dist-firefox/manifest.json:
pnpm install
pnpm --filter dsh-browser-extension run build:firefox
桥地址仍会自动探测。Firefox 的 moz-extension:// UUID 不能证明扩展身份,因此需要把 ~/.dsh/ext-bridge-token 中的 bearer token 填入扩展设置(dsh 启动日志会报告该文件路径)。签名发布时可直接使用同一份 dist-firefox/ 产物。
启动与使用
启动托管安装:
cd ~/.dsh/dsh-browser && pnpm start
使用源码 checkout 时,请在仓库根目录运行 pnpm start。如需启动最新公开版本的 dsh:
npx @deepseek-ai/dsh web
Chrome 本机使用无需配置;Firefox 需要填写上述本地桥 token。打开任意 http:// 或 https:// 页面,点击 DeepSeek 鲸鱼图标,等待侧边栏显示已连接。已有标签页会在第一次操作时自动加载;浏览器受保护页面和扩展商店不受支持。
故障排查
侧边栏一直显示「未连接」
- 确认本机 dsh web 正在运行(默认 http://127.0.0.1:3080)。
- 确认桥接已加载:浏览器打开 http://127.0.0.1:3080/ext/bridge-config,应返回类似 {"wsUrl":"ws://127.0.0.1:3080/ext/bridge"} 的 JSON。如果返回的是网页而不是 JSON,说明当前运行的 dsh 早于桥接注册——重启 dsh 并刷新页面即可,扩展会自动重连。
- 扩展会自动探测 3080/3081/3090/14389 端口。若 dsh 运行在其它端口,或使用 --host 0.0.0.0 远程部署,请在面板设置中填写地址与桥接 token。Firefox 始终需要 token。
开发
桥接插件和 Chrome/Firefox 扩展都属于本仓库 workspace;所有命令均在本仓库根目录执行。首次开发安装运行 pnpm install。
pnpm run build
pnpm run typecheck
pnpm run test
pnpm --filter @yuxianglin/dsh-bridge-browser run build
pnpm --filter @yuxianglin/dsh-bridge-browser run typecheck
pnpm --filter @yuxianglin/dsh-bridge-browser run test
pnpm --filter dsh-browser-extension run build
pnpm --filter dsh-browser-extension run build:firefox
pnpm --filter dsh-browser-extension run test
注意:
- 启动前桥接插件必须已有 lib/ 供 Loader 加载;scripts/install.sh 和根目录 pnpm run build 都会先构建插件再构建扩展。
- @deepseek-ai/dsh 与桥接插件的依赖固定在同一条经过验证的公开发布线上;升级时必须同时更新 manifest、锁文件并重跑根目录检查。
安全
- 桥路径在 /api 信任栅栏之外,自带 bearer token 认证。
- Chrome 扩展的本地 Origin 保留零配置回环访问;Firefox Origin 是每次安装生成的 UUID,必须携带 bearer token。
- 特权网关方法(settings./credentials./host.open*)对非回环来源一律拒绝。
- 单活动连接;浏览器页面管线为纯文本且不截图;用户主动添加的对话图片交给 dsh 持久附件服务,密码和卡号值永不回传。
- 助手开始工作时会绑定当时的活动标签页(提交提示时绑定;直接调用浏览器工具时则在首次调用绑定)。用户手动切页后,后续浏览器操作会暂停,侧栏会询问让助手继续原页面还是跟随新页面;选择原页面后允许在后台继续,但扩展绝不静默改绑或切换用户正在看的页面。受控标签页关闭后也会暂停,直到用户显式选择当前页。
- 只有在侧栏打开、且页面共享不是「关闭」时才会捕获划选内容,密码和卡号字段永不读取。内容在发送之前始终留在扩展内部;移除、页面跳转或标签页关闭都会丢弃它;发送时与页面快照一样包在不可信内容边界内,来源标题和 URL 同样由页面提供,因此也放在边界之内。
- 网页文字会标记为不可信输入。默认「自动共享」只按需读取受控标签页且不额外弹窗;对隐私敏感时可选择「每次询问」,或用「关闭」完全阻断读取。在「每次询问」模式下,读取弹窗可以仅允许一次,也可以持久切回自动读取;之后仍可在设置中关闭。读取的页面文字会发送给当前选择的模型。
- 点击、输入、按键、导航、历史跳转和刷新默认失败关闭,必须由用户批准。可以只在当前侧栏会话中信任单个 origin(最后一个侧栏关闭或 Service Worker 重启即清空);永久信任需在设置中显式管理。显式跨域 browser_navigate 和未知目标的历史跳转始终重新询问。扫码进群