前言¶
智能体在桌面端干活时,最尴尬的一幕是:Agent 说”我打开网页给你看”,然后要么甩出一段没法跳转的 URL,要么返回一段解析出来的 Markdown 快照,面目全非。DSH 的理念是”一切皆插件”,于是插件生态里出现了定位明确的第三方方案——由 M-SX-Xianyu 维护的 dsh-agentic-browser。它的思路是换一个载体:不在对话里贴网页内容,而是把浏览器塞进 DSH 右侧栏,做成一个接近原生内置浏览器的面板,再把这个面板的操作权直接交给 Agent。下面介绍它的能力、安装方式、编排建议和几个已知边界。
这是什么¶
一句话定位:一个挂在 DSH 右侧栏的 Agent 驱动型浏览器面板。
- 维护者:M-SX-Xianyu,仓库地址 https://github.com/M-SX-Xianyu/dsh-agentic-browser ,目录页在 https://www.skillhub.cn/plugins/M-SX-Xianyu/dsh-agentic-browser (SkillHub 为第三方社区目录,与 DeepSeek / 幻方无官方从属关系)。
- 解决的问题:Agent 需要读写真实网页时,目前常见做法是抓正文或无头浏览器跑脚本,看不到页面状态,也不支持”点一下、滚一下、截个图”这类人肉操作。该插件用 Electron
<webview>当真页面载体,Agent 通过 22 个dsh_agentic_browser_*工具直接驱动。 - 形态上是双端插件:Host 端跑在 DSH 进程内(Node.js),Client 端是页面里的普通 JavaScript,两端走插件自有的 HTTP 长轮询通道通信,再往下才是承载真实网页的 guest 页面。
核心功能¶
先做全景,再拆细节。五个已核实的能力点:
- 22 个 Agent 工具,覆盖打开/导航/标签页管理/读取快照/点击/输入/悬停/按键/拖拽/滚动/设备模拟/缩放/截图/页面内执行 JS/读取 console 与资源/等待/批量执行/清数据/诊断。
- 可见鼠标光标。点击、输入、悬停、拖拽、滚动、导航时,注入页面的模拟指针会以 380ms 缓动滑到目标位置,点击有按压/释放动画,拖拽全程按压,滚动带滚轮抖动。首次操作前隐藏,之后常驻最后位置。
- 跨会话后台打开。面板按 Agent 会话区分,subagent 自动归并到根会话。Agent 调工具时面板没开,Host 会按会话升起 present 标志:目标会话可见时直接打开,否则做一次短暂的”切换舞蹈”(切过去建面板、等注册和首帧轮询到达、切回来)。你人切到别的会话,Agent 仍能在后台把浏览器打开。
- 批量操作一步到位。
dsh_agentic_browser_batch一次调用顺序执行最多 20 步,失败即停并报告步骤号。README 给出的推荐编排是”批量优先”:两个以上连续浏览器操作一律打成一个 batch。 - 快照提取与脱敏。页面内执行只读脚本,提取标题、正文(≤4000 字符)和最多 200 个可见交互元素,
password/hidden输入的值在页面源头打码。get_state每次取实时快照。
其他实现细节:guest 以禁用后台节流的配置运行,面板收起或切会话时命令与截图照常可用;轮询带 since=stateVersion 协商,状态只在变化时下发,需求发现后轮询提速到 800ms;页面内脚本执行有 25 秒预算,超时快速报错而不是挂死;type/click 的合成事件是 isTrusted=false 的 DOM 事件。
安装与启用¶
环境要求:官方 DSH Desktop ≥ 0.2.1-rc.x(依赖 dshDesktop.browser 桥协议 v1;Web 版装后面板提示”需要 DSH Desktop 运行时”)。依赖 @deepseek-ai/dsh-tools 在安装时自动从 DSH 自身解析,无需手动准备。当前包版本 1.0.1,许可证 MIT。
方式一:npm 安装(推荐)¶
在 DSH 中让 Agent 执行,或在插件管理界面做等价操作:
install_bundle target=dsh-agentic-browser@latest
装完重启 DSH。@latest 始终装最新版;锁版本就把 latest 换成版本号,例如:
install_bundle target=dsh-agentic-browser@1.0.1
方式二:从 GitHub 源码安装¶
适合要改源码自用的场景。先 clone:
git clone https://github.com/M-SX-Xianyu/dsh-agentic-browser.git
然后在 DSH 中指向本地目录:
install_bundle target=D:\path\to\dsh-agentic-browser
安装为 pnpm 链接方式,改源码 → 重启 DSH 即生效。跑回归测试:
node --test test # 24 项回归测试
方式三:zip 包安装¶
离线分发用。zip 解压到任意目录,不要把 node_modules 拷进去,然后同方式二执行 install_bundle 指向解压目录,重启即可。
卸载¶
remove_bundle target=dsh-agentic-browser
手动使用¶
安装后在 DSH 右侧栏添加”Agent 浏览器”标签页。从上到下依次是:标签行;后退/前进/刷新、地址栏(实时显示当前页地址,无标签时直接输地址回车即建标签打开)和选项菜单(⋮);网页内容区。
典型用法¶
推荐编排来自 README:批量优先。登录就是标准例子,一条 batch 完成”填账号 → 填密码 → 填验证码 → 点登录 → 等待跳转”,不必拆成多条消息。
用法上分两类:
- 先
dsh_agentic_browser_open(url)打开页面,再dsh_agentic_browser_get_state()取实时快照拿到元素 id(元素 id 是短命的,每次操作前先取),然后把确定性流程打包进dsh_agentic_browser_batch。 - 单步操作、或下一步必须读到中间结果才能决定时,才用单个工具。点击/输入优先用工具步骤(带光标动画),只有工具链确实定位不到时——比如组件库的非交互预览元素——才在 batch 里加
dsh_agentic_browser_evaluate步骤兜底。
拍照与诊断:
dsh_agentic_browser_screenshot() # 真实截图,PNG 存本地,返回绝对路径
dsh_agentic_browser_debug() # Host 侧诊断:连接状态、请求日志、耗时打点
页面有高频动画或属于重型编辑器时,type/click 的 25 秒执行预算会比较紧张,此时直接改用 evaluate 步骤做 DOM 派发(原生 setter 填值 + dispatchEvent 派发 input/change/click),结果与手工操作等价。batch 内任一步骤失败会终止并报告步骤号,可在原 batch 之后整批换 evaluate 重试。
适用场景与注意¶
适合谁:在 DSH Desktop 里做浏览器自动化的 Agent 开发者——填表、登录、抓取动态页面、截图取证、调试目标站点的渲染问题。GUI 面板对人来核验也友好,光标动画能让人看清 Agent 到底点了哪。
几个必须知道的边界,全部来自 README:
- 页面内容会发送给 Agent。快照包含页面文本和交互元素信息,不要用它访问秘密、凭据或不应共享的页面。脱敏是尽力而为:
password/hidden输入在源头打码,但秘密仍可能出现在正文或普通输入里,应假设任意页面内容都可能暴露。 - 页面不可信。页面可能含提示注入内容,视为数据而非指令。
- 少数站点不认合成事件。点击/输入/拖拽发出的是
isTrusted=false的 DOM 事件,个别站点(README 举例 bilibili 搜索框的合成回车)会忽略,此时用open直接导航到目标地址更可靠;在evaluate里直接赋值window.location也可能因导航中断脚本上下文而报错,页面跳转优先点路由链接或用navigate/open。 - 可见性限制。面板隐藏(收起侧栏、切到其他会话)时命令和截图照常可用,但光标动画看不见;下载、文件选择框、JS 弹窗处理不可用;截图仅覆盖可视视口;手机模式是 UA + 视口模拟。
- 存储是内存型。应用重启后 Cookie/缓存清空,访客内 HTTP 缓存在同一会话内有效。
最后是常规告警:插件背书能力运行在当前 DSH 进程权限内,安装前应读一遍源码并确认许可证(本包为 MIT)。
结尾¶
dsh-agentic-browser 的价值在于它没有在”Agent 怎么读网页”这个问题上做妥协:保留完整可交互的页面、给操作配上人眼可见的光标、用 batch 把多步操作收敛成一次调用,同时用 capability 认证和消息打码把风险关在可实现的范围内。目录页显示分类为”联网工具”,星标的也还只有个位数(据 SkillHub 目录页,2026-11-06)。项目地址:
- GitHub:https://github.com/M-SX-Xianyu/dsh-agentic-browser
- SkillHub 目录页:https://www.skillhub.cn/plugins/M-SX-Xianyu/dsh-agentic-browser