前言¶
在 DSH 里做联网任务时,常见做法是再接一套外部浏览器、扩展或代理,让 Agent 能「看见」页面并点击输入。页面和你在客户端里打开的侧边栏往往是两套环境,登录态、视口和权限要对齐,排查问题时还要在工具输出和真实界面之间来回对照。
dsh-sidebrowser 把操作对象收敛到 DSH Desktop 官方右侧「浏览器」侧边栏 里已经打开的网页:观察、操作、提取与操作后复核走同一套 guest,无需额外 Chrome、扩展、后台代理或对安装包打补丁。下面介绍它的定位、工具面、安装方式与使用注意。
这是什么¶
- 仓库: AsakuraAOI/dsh-sidebrowser
- 维护者: AsakuraAOI
- 分类:联网工具(社区目录 skillhub 条目)
- 包名与版本:
dsh-sidebrowser0.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 同时加载插件。
注意:
- 先停用其他注册了同名
browser_*工具的插件,避免冲突。 - 默认允许在目标网页内执行 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 再操作并核对」起步。