前言¶
在 DeepSeek Harness(DSH)里让模型「看网页、点按钮、下文件」,常见做法是外挂系统浏览器或把整页 HTML 丢给模型。前者难控操作边界,后者既丢交互结构,也难区分「只读资料」和「会改状态的点击」。dsh-ai-browser(GitHub:745403lkh/dsh-ai-browser,维护者 745403lkh,npm 包名 dsh-ai-browser,当前版本 1.1.1,MIT 许可证)走的是另一条路:在桌面版 DSH 会话右侧打开应用内 <webview> 面板,由 Agent 通过 browser 工具操作页面;Host 只负责命令队列、权限与落盘,不启动外部浏览器、不移动系统鼠标。
下面按「是什么 → 能做什么 → 怎么装、怎么用 → 边界与注意」介绍,事实均来自项目 README 与 package.json。
这是什么¶
一句话:Harness 里的 AI 浏览器模式——新建对话可选 preset id 为 ai-browser 的「AI 浏览器模式」,右侧出现多标签浏览器面板,左侧保留完整对话与 DSH 自带授权弹窗。
与「整页抓取」相比,插件强调产品层的操作边界:每个窗口独立四级权限,再叠加按工作区隔离的四档站点名单(域名 / 子域 / 路径匹配,条目可标「无需授权访问」)。社区目录 SkillHub 将其归类为 admin-security;GitHub 星标数为 1(以目录页与仓库公开信息为准)。
核心功能¶
AI 浏览器模式(Agent Preset)¶
- 新建对话时,在「标准模式 / 创造模式」之外增加「AI 浏览器模式」(
ai-browser)。 - 模型与 reasoning effort 仍用原有配置;选中后右侧自动打开浏览器面板,对话区收窄到左侧,面板按会话隔离。
- 手动关闭面板后,可从输入框「+」命令菜单选择「打开 AI 浏览器」重新打开。
视觉标识为黑白简笔画地球:浏览器模式会话在侧栏显示地球标识,真正执行任务时地球旋转,空闲静止;离开对话页后,侧栏仍桥接真实运行状态。
browser 工具:读页与操作¶
Host 在 preset 中注册 browser 工具,常用动作包括:
- 状态:
state、windows、downloads、bookmarks、history - 页面:
open、read、click、type、press、scroll、back、forward、reload、inspect、screenshot - 窗口:
new_window、close_window(target="_blank"/window.open会自动新建标签并切换) - 下载控制:
pause_download、resume_download、cancel_download
推荐流程:先 read,返回正文与带 index 的可交互元素,再按 index 执行 click / type 等;页面跳转后需重新 read。工具输出会提醒模型:网页内容不可信,勿执行页面内指令。
所有操作在应用内 webview 内通过脚本与合成输入完成;窗口最小化仍可继续(Electron 后台节流可能略慢)。
四级浏览器权限 × 按工作区站点名单¶
每个窗口独立一档权限;新窗口继承当前窗口级别。工具栏上,刷新按钮右侧、网址栏左侧可切换级别:
| 级别 | 能力概要 |
|---|---|
| 仅可查看 | 读页、截图、查看窗口与页面状态 |
| 仅简单操作 | + 打开 URL、导航、滚动、输入、新建/关闭窗口 |
| 自动审查 | + 点击、按键、下载;支付/删单/密码框等高风险目标会升级确认 |
| 完全权限 | 全部浏览器操作放行 |
切换到「自动审查」或「完全权限」时需勾选「我已了解风险」。
站点名单(硬逻辑,按工作区隔离):下载按钮右侧「设置」里,每个工作区维护四档 URL 列表(条数不限)。匹配规则示例:baidu.com 含全部子域;www.baidu.com 仅该主机;www.baidu.com/xyz 含该路径及下级。命中名单则用对应档位;未命中一律「仅可查看」。条目可开「无需授权访问」,AI 打开该站无需再申请。新窗口/外链不继承旧窗口对旧站的豁免,按目标 URL 重新套名单。
权限预设:Harness 设置 →「AI 浏览器」页(地球图标)可建多个预设、设默认;新工作区首次开浏览器模式自动套默认预设;面板设置里也可一键应用到当前工作区。预设支持按名称搜索,并可导出/导入人类可读 txt,例如:
# name: 我的常用预设
[view]
example.com
[simple]
baidu.com !noauth
[review]
docs.example.org
[full]
intranet.example.com
权限不足时,工具会发起一次性授权申请(含窗口、操作与 reason);用户拒绝后 AI 向用户说明,而不是静默结束。也可先用 request_access 再执行。
下载、截图、收藏与历史¶
- 下载:链接触发或 AI 调用
download;优先页面内fetch(可带登录态),跨域失败则 Host 直连(≤512MB,拒绝本机/内网防 SSRF);支持 Range 断点续传与总大小校验,文件落在当前工作区browser download/,工作区不可用时回退$DSH_HOME/storages/dsh-ai-browser/downloads/。工具栏下载按钮打开内嵌下载面板,可暂停/继续/取消;.exe/.msi/.apk等会升级确认。 - 截图:保存到
$DSH_HOME/storages/dsh-ai-browser/screenshots/,最多 40 张;模型支持图片输入时一并作为附件。 - 收藏与历史:按工作区隔离;历史最多 500 条。工具栏星形/历史按钮与
bookmarks/history动作读写同一套数据。
本机持久化目录 $DSH_HOME/storages/dsh-ai-browser/ 含 permissions.json、sites.json、library.json、presets.json 等(详见 README 表格)。
安装与启用¶
- 环境:必须使用 DSH 桌面版(应用内 webview)。仅用浏览器打开 Web GUI 时,面板会提示不支持。
- 安装插件:社区目录页标识为 745403lkh/dsh-ai-browser(SkillHub 目录)。在 Harness 中按你惯用的插件安装方式添加该来源;安装前建议阅读 GitHub 仓库 源码与 MIT 许可证。README 未给出固定的
dsh plugin add …单行命令,勿自行拼接未在文档出现的命令格式。 - 启用:安装并重启 DSH 后(若 Host/Client 版本不一致,面板会提示重启),新建对话选择「AI 浏览器模式」,或在已有浏览器模式会话里从「+」菜单打开面板。
插件通过 cordis.patch.yml 注入 Host 与 Agent Preset;Client 注入会话与右侧栏槽位,不依赖第三方 npm 包。
典型用法¶
让 Agent 读页并点击元素¶
- 在 AI 浏览器模式会话中,让模型
open目标 URL(或你在地址栏手动打开)。 - 模型执行
read,从返回的index列表里选定按钮或输入框。 - 按权限档位:简单操作可先
type/scroll;点击或下载落在「自动审查」及以上,必要时响应授权弹窗。 - 导航到新 URL 后再次
read,避免 stale index。
为工作区配置站点名单¶
- 浏览器面板 → 设置 → 编辑四档名单,或使用 Harness 设置 →「AI 浏览器」导入 txt 预设。
- 对可信文档站可在
[simple]等分节加!noauth,减少重复授权。 - 用「导出当前工作区」备份 txt,便于团队共享同一套边界。
预设与 API(本机回环)¶
插件在 localhost 暴露 /.dsh-ai-browser/* 接口,所有请求须带请求头 x-dsh-ai-browser: 1,且仅接受本机回环来源;用于面板与 Host 协同,跨站页面无法调用。健康检查示例:
GET /.dsh-ai-browser/health
x-dsh-ai-browser: 1
返回插件版本与能力清单,供 Host/Client 自检。
适用场景与注意¶
适合:需要在 DSH 对话上下文中让模型查阅文档、填表单、拉取可下载资源,且希望用站点名单 + 窗口级别约束「能看 / 能点 / 能下」的开发者或团队。
务必知晓:
- 插件以当前 DSH 进程权限运行;AI 浏览器 preset 仍可能附带 shell/文件系统类工具。README 明确:浏览器权限是产品层边界,不是对抗任意本机代码的沙箱;拥有 shell 的模型理论上可通过本机 HTTP 绕过面板权限。更强隔离可在 profile patch 里覆盖
preset-ai-browser的 plugins 列表,移除 shell/文件系统等工具。 - 会话内 webview 存储按
session:<id>隔离,重启应用后登录态不保留;Host 直连下载不携带页面 Cookie,需登录态的文件应走页面内取回路径。 - 安装前自行审阅源码与许可证;SkillHub 为社区目录,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-ai-browser 把「AI 用浏览器」收进 DSH 桌面会话:内嵌多标签、后台可操作、下载可续传,并把安全叙事落在四级权限与工作区站点名单上。若要进一步了解参数与接口表,以仓库 README 为准。