dsh-sidebrowser:让 Agent 操作 DSH 桌面端侧边栏里的同一网页

前言

在 DSH 里做联网任务时,常见做法是再接一套外部浏览器、扩展或代理,让 Agent 能「看见」页面并点击输入。页面和你在客户端里打开的侧边栏往往是两套环境,登录态、视口和权限要对齐,排查问题时还要在工具输出和真实界面之间来回对照。

dsh-sidebrowser 把操作对象收敛到 DSH Desktop 官方右侧「浏览器」侧边栏 里已经打开的网页:观察、操作、提取与操作后复核走同一套 guest,无需额外 Chrome、扩展、后台代理或对安装包打补丁。下面介绍它的定位、工具面、安装方式与使用注意。

这是什么

  • 仓库: AsakuraAOI/dsh-sidebrowser
  • 维护者: AsakuraAOI
  • 分类:联网工具(社区目录 skillhub 条目)
  • 包名与版本:dsh-sidebrowser 0.4.2(以 README 为准)
  • 一句话:DSH 官方侧边栏浏览器——结构化观察、原生输入、提取与操作后复核;开发侧还提供一组 browser_dev_* 诊断工具。

实现上以 web-access 的观察、操作、验证流程为参考,基于 dsh-agent-browser 的侧边栏接入代码。普通浏览工具统一 browser_*,开发诊断统一 browser_dev_*;旧版三个调试工具名已移除。

核心功能

与侧边栏共用同一页面

Agent 读取和操作的是当前 DSH 会话所属侧边栏标签里的页面,继承桌面端 guest 的权限、下载、登录态分区及重启行为,插件不额外持久化 Cookie。在对话右侧打开「浏览器」、手动完成登录后,即可在聊天里让 Agent 对该页做快照、点击、输入和导航。

Web profile 下跨域 iframe 只能被列出,不能读取和操作;桌面 profile 使用原生 guest。

普通浏览工具(browser_*)

工具 作用
browser_tabs 列出当前会话的标签、载体、加载与失败状态
browser_snapshot 正文、标题层级、链接、元素 ref、iframe 边界及能力状态
browser_read 按文字、元素或 HTML 定向读取,可用 selector 或 ref 限定区域
browser_act click、type、press、scroll、select、reload、wait、click_xy 等
browser_extract 按选择器提取 links、headings、tables、list 的有界 JSON
browser_navigate 新建页面或导航已有标签(多标签时需明确 tabId)
browser_screenshot 可视区域截图,经 DSH 附件服务交付;preset 仅作用于单次截图
browser_viewport 自适应、手机、平板、桌面或自定义视口
browser_close 关闭会话内标签并核对
browser_eval 在页面内执行 JS(可通过配置关闭)

原生输入与操作后观察:默认 inputMode 为 auto,点击/按键优先 sendInputEvent,文本用 insertText 与原生编辑命令;native 为严格原生,dom 为明确脚本后端,坐标点击仅支持 native。每次动作默认附带新的 observation,便于核对表单或主体区域变化;actionDispatched 表示已派发,verificationRequired 提醒仍需核对业务结果。

元素 ref:同一文档、URL 与未变目标下,重复读取与局部读取后 ref 可保持有效;导航、DOM 替换或身份变化会使旧 ref 失效,不会按同名选择器自动改指向新节点。

开发诊断工具(browser_dev_*)

在不打开 DevTools 窗口、不暴露 CDP/调试端口的前提下,可在当前标签上采集控制台、网络、元素盒模型、性能指标、存储与 DOM 监听等,例如:

  • browser_dev_debug:启动、查询、清空或停止采集
  • browser_dev_console / browser_dev_network:日志与 Fetch/XHR、WebSocket/SSE 等(敏感头与常见查询参数会遮蔽)
  • browser_dev_inspect / browser_dev_styles:布局与可读 CSSOM、临时样式补丁
  • browser_dev_performance / browser_dev_storage / browser_dev_watch / browser_dev_sources

排查网页问题时,可先对同一侧边栏页调用 browser_dev_debug 启动采集,再照常操作,最后读 browser_dev_console 与 browser_dev_network;结束时用 stop 恢复包装并丢弃历史。

界面上的操作反馈

Agent 使用浏览器期间,目标页四周会出现蓝色呼吸辉光(整轮 Agent 运行期间保持,随会话结束淡出);模拟光标跟随点击与输入位置,点击有圆环反馈。提示画在 DSH 界面层、鼠标可穿透,不修改网页 DOM,也不混入正文提取或截图。系统开启「减少动态效果」时会相应尊重该设置。

安装与启用

安装命令(README 原文):

dsh plugin --profile desktop add 'github:AsakuraAOI/dsh-sidebrowser'

安装后 重启 DSH,让 Host 与 Client 同时加载插件。

注意:

  1. 先停用其他注册了同名 browser_* 工具的插件,避免冲突。
  2. 默认允许在目标网页内执行 JavaScript;若不需要,可在 bundle 配置里设 enableEval: false。

可选配置示例(安装后的 bundle 条目):

- id: dsh-sidebrowser
  name: 'dsh-sidebrowser'
  config:
    enableEval: true
    observeAfterAction: true
    maxReadChars: 20000
    snapshotMaxChars: 8000
    screenshotMaxWidth: 1568

README 记载初始适配 DSH Desktop 0.2.0-rc.2 / Cordis 4.0.4;作者本机验证版本为 0.2.1-rc.2,Electron 44.7.0。请以你环境中的 DSH 版本为准。

典型用法

先做两件事:在右侧侧边栏打开目标站并完成登录;在聊天里用自然语言或斜杠命令约束 Agent 先观察再操作、逐步核对。

README 给出的示例提示:

/dsh-sidebrowser 读取当前侧边栏网页,先观察页面,再根据我的任务操作,每一步核对结果。

也可直接要求 Agent 调用 browser_tabs 与 browser_snapshot;新开页用 browser_navigate;多标签时写明 tabId。

browser_act 参数示例(ref 来自快照):

{"action":"type","ref":"从刚才快照取得的完整ref","text":"Hello","inputMode":"auto"}
{"action":"wait","selector":".result-list","state":"visible","timeoutMs":4000}

局部读取示例:

{"mode":"elements","selector":"form#mission","maxElements":20}

启动网络与正文采集的调试示例:

{"action":"start","captureBodies":true,"maxEntries":100}

适用场景与注意

适合:需要在 DSH 桌面端侧边栏里完成登录后,让 Agent 对 同一可见页面 做结构化浏览、表单操作、有界提取,或在不改安装包的前提下做控制台/网络/布局类排查的场景。

边界与限制(README 已写明,使用时宜心中有数):

  • 不提供跨域 iframe DOM、完整无障碍树、自动文件上传或完整浏览器级网络抓取;Worker、跨域子框架、closed Shadow Root 等不在覆盖范围。
  • 多窗口 Inspect 存在广播与「首个有效回答」的上游限制,建议单窗口使用;用户接手页面后 Agent 需重新观察。
  • 超时结束的是等待,不能取消已交给 Electron 的底层操作;超时后应先查状态,不要自动重复提交。
  • browser_read 的 HTML 与 browser_eval 可能带回站点敏感字段;快照会遮蔽常见凭据字段,但不是通用隐私过滤器。
  • 测试通过不代表所有真实站点的登录与复杂控件均已验收,目标站点应自行实测。

安全与信任:插件以当前 DSH 进程权限运行,默认可在页面内执行 JS。安装前请阅读仓库源码、LICENSE 与 THIRD_PARTY_NOTICES.md,确认符合你的合规要求。DeepSeek Harness 生态强调「一切皆插件」;skillhub.cn 为社区目录,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-sidebrowser 把 Agent 的网页能力绑在 DSH Desktop 官方侧边栏上:一套 browser_* 完成观察、原生输入、提取与导航,需要深挖页面问题时再用 browser_dev_* 做有界诊断。若你已在桌面端用侧边栏浏览内网或需登录的站点,可按上文命令安装、重启后从「先 browser_snapshot 再操作并核对」起步。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye