前言¶
在开发 DeepSeek Harness 智能体时,让 AI 具备网页操作能力通常需要调用繁琐的浏览器自动化接口,或者让用户手动操作多个窗口,这种方式效率较低。dsh-inapp-browser 插件提供了一个内置的浏览器面板,让 AI 与用户在同一个上下文中操作网页,支持从打开网址、点击交互到截图读取的完整流程。
这是什么¶
dsh-inapp-browser 是一个客户端插件,由开发者 alllllinnrann 维护。它利用 Chrome DevTools Protocol (CDP) 在 Better Sidebar 中渲染一个独立的浏览器实例。默认情况下,该浏览器会启动必应搜索页面,且用户的登录资料会按聊天会话保存,互不干扰。
核心功能¶
插件提供了丰富的工具集,覆盖了网页浏览和交互的主要场景。
浏览控制¶
- 标签管理:支持多标签页操作。通过
iab_tabs查看当前标签列表,使用iab_select切换标签,iab_close_tab关闭标签(至少保留一个标签)。 - 导航与刷新:支持
iab_open打开网址或搜索词(支持 Bing、百度、Google 引擎),iab_back后退,iab_forward前进,以及iab_reload刷新页面。 - 弹窗处理:提供
iab_dialog接口,用于确认或取消网页的 JavaScript 弹窗(如 alert、confirm、prompt)。
页面交互¶
- 点击与输入:支持鼠标点击
iab_click(可指定左、右、中键),支持向聚焦控件输入中文iab_type,以及拖拽操作iab_drag。 - 滚动与按键:支持页面滚动
iab_scroll(可指定方向和位置),以及模拟键盘按键iab_key(支持组合键,如全选 Ctrl+A)。 - 等待机制:提供
iab_wait接口,在执行下一步操作前等待页面加载,范围 0-10000 毫秒。
信息读取¶
- 页面快照:调用
iab_snapshot可获取当前页面的网址、标题、文字内容、控件列表(含位置、标签、是否在视口内)及视口尺寸。 - 高清截图:调用
iab_screenshot可获取当前页面的图片附件及视口信息。注意,截图需要宿主支持图片输入的模型。
安装与依赖¶
使用此插件前,需确保环境满足以下版本要求:
- DeepSeek Harness:0.1.5-rc.2
- Node.js:22.19 或更高版本
- Better Sidebar:0.19.1 到 0.19.x
典型用法¶
以下为插件提供的典型工具调用示例。工具会自动使用当前聊天会话,无需传入聊天 ID。
打开网址并搜索
{
"name": "iab_open",
"arguments": {
"url": "https://www.bing.com",
"engine": "bing",
"newTab": false
}
}
输入文字
{
"name": "iab_type",
"arguments": {
"text": "Hello World"
}
}
点击坐标
{
"name": "iab_click",
"arguments": {
"x": 100,
"y": 200,
"button": "left"
}
}
截图
{
"name": "iab_screenshot"
}
配置与注意事项¶
环境变量¶
可以通过设置环境变量来定制浏览器路径和数据目录:
DSH_IAB_BROWSER_PATH:指定浏览器可执行文件路径,默认自动查找 Edge、Chrome 或 Chromium。DSH_IAB_DATA_DIR:浏览器资料根目录,默认为${DSH_HOME}/storages/dsh-inapp-browser/。DSH_HOME:Harness 数据根目录,默认为用户目录下的.dsh。DSH_IAB_HOME_URL:新会话的首页,默认为https://www.bing.com/。
坐标与按键规则¶
- 坐标系统:
iab_click和iab_drag中的x、y参数为网页视口的 CSS 像素,不是侧栏图片缩放后的坐标。如果模型端对截图进行了缩放,需要换算回原始视口坐标。 - 组合键:
iab_key中的modifiers使用位掩码组合:Alt=1、Ctrl=2、Meta=4、Shift=8。例如,全选操作为{"key": "a", "modifiers": 2}。
其他限制¶
- 截图功能依赖支持图片输入的模型及宿主附件服务。
- 插件不接管用户日常已经打开的浏览器,它运行在独立的进程中,仅用于当前 Harness 聊天会话。
总结¶
dsh-inapp-browser 通过 CDP 协议为 DeepSeek Harness 带来了原生的浏览器控制能力。它解决了 AI 操作网页时的上下文割裂问题,通过共享登录态和可视化面板,大幅降低了网页自动化开发的门槛。更多细节可查看 GitHub 仓库。