
DSH Better Browser
☆ 2DSH 真实浏览器插件:通过 Kimi WebBridge 让 Agent 操作用户已登录的浏览器,并提供 13 个 webbridge_* 工具。 / Let DSH Agents use your signed-in browser through thirteen Kimi WebBridge tools.
Get this plugin
Review the source, then continue to the publisher.
dsh plugin add @dsh-external/dsh-better-browser@latest
About this plugin
Source snapshot 8/13/2026🌐 dsh-better-browser
让 Agent 使用你已经登录的真实浏览器。
|
🔐 需要 Agent 操作已经登录的网站,又不想复制 Cookie 或重新登录? |
✨ dsh-better-browser 把用户真实浏览器变成 13 个 Agent 工具。
通过本机 Kimi WebBridge 复用登录态、已有标签页和活动会话;DSH 负责模型工具, 浏览器状态继续留在浏览器里。
真实浏览器 + 本地桥接 + 13 个工具 → Agent 可执行的完整浏览器工作流
为什么需要它 · 核心能力 · 安装 · 快速开始 · 工具 · 安全边界
English · 简体中文

🎯 为什么需要 dsh-better-browser
无头浏览器适合隔离测试,却无法自然复用你正在使用的登录态、Cookie、标签页和
站点会话。dsh-better-browser 连接 Kimi WebBridge 的本地守护进程,让 DSH
中的 Agent 操作用户自己的浏览器。
| 无头浏览器 | dsh-better-browser | |
|---|---|---|
| 登录态 | 通常需要重新登录或注入凭据 | 复用用户浏览器现有状态 |
| 标签页 | 工具独立维护 | 使用真实标签页与标签组 |
| 浏览器状态 | 容易进入工具输出或模型上下文 | 保留在浏览器与本地守护进程 |
| 适合场景 | 隔离测试、抓取 | 登录后工作流、真实页面检查 |
本插件不包含浏览器驱动代码。真正的浏览器操作由 Kimi WebBridge 守护进程和 浏览器扩展完成;本插件只把它的本地协议适配为 DSH 模型工具。
✨ 核心能力
🌍 操作用户真实浏览器
导航页面、读取无障碍快照、点击、填写与执行 JavaScript,同时保留登录状态和 已经打开的标签页。
🔎 看见页面之外的证据
Agent 可以截图、检查网络活动、上传文件并保存 PDF,不必把整个浏览器状态放进 模型请求。
🗂️ 一个任务,一个标签组
稳定的 session 名把同一任务的标签页归到一起。不同任务互不混用,用户仍然
可以在自己的浏览器中看见并接管全过程。
🔌 零 DSH Core Patch
插件作为 Cordis bundle 安装,注册稳定的 webbridge 行与 13 个
webbridge_* 工具;卸载 bundle 即可移除能力。
⚡ 安装
1. 安装 Kimi WebBridge
Kimi WebBridge 是月之暗面的独立产品,本仓库不包含它的守护进程或浏览器扩展。 请先参考 Kimi 官方功能页与 帮助中心:
curl -fsSL https://cdn.kimi.com/webbridge/install.sh | bash
kimi-webbridge status # 期望看到 "extension_connected": true
同时需要在浏览器中安装 Kimi WebBridge 扩展并连接本地守护进程。
2. 安装 DSH 插件
dsh plugin --profile web add github:titanwings/dsh-better-browser#v0.3.2
重启 dsh web 并刷新页面。模型随后即可看到 webbridge_* 工具。守护进程未
运行时,工具会返回 daemon_unreachable,不会静默降级。
🚀 快速开始
安装完成后,可以直接让 Agent:
使用我的真实浏览器打开 GitHub,找到当前仓库的 Issues,检查最新三个问题, 不要关闭我已有的标签页。
Agent 会为任务选择稳定的 session,依次导航、读取页面并执行交互。浏览器动作 采用排他调度,不会并行修改共享标签页。
navigate → snapshot → click/fill → snapshot → screenshot/network
标签页只会在用户明确要求时关闭;任务结束不会自动清理用户浏览器。
🧰 13 个浏览器工具
| 工具 | 用途 |
|---|---|
webbridge_navigate | 打开 URL,并为任务设置标签组标题 |
webbridge_find_tab | 重新选择任务标签页或借用当前活动标签 |
webbridge_snapshot | 读取页面无障碍树与 @e 元素引用 |
webbridge_click | 按 @e 引用或 CSS selector 点击 |
webbridge_fill | 填写 input、textarea 或 contenteditable |
webbridge_evaluate | 在页面中运行同步或异步 JavaScript |
webbridge_screenshot | 截取页面或指定元素并返回文件路径 |
webbridge_list_tabs | 列出当前 session 的标签页 |
webbridge_network | 启停并检查网络活动 |
webbridge_upload | 通过文件输入上传本地文件 |
webbridge_save_as_pdf | 将当前页面保存为 PDF |
webbridge_close_tab | 关闭 session 的当前标签页 |
webbridge_close_session | 关闭 session 的全部标签页 |
🛡️ 会话与安全边界
- 一个任务 = 一个 session = 一个标签组。 每次调用保持相同 session 名。
- 关闭由用户发起。 只有用户明确要求时才关闭标签页或整个 session。
- 浏览器动作串行执行。 所有工具声明
isConcurrencySafe=false,避免共享 标签页发生交错修改。 - 本地优先不等于零风险。 Agent 操作的是真实登录会话;发送消息、提交表单、 发布内容等动作仍应遵守 DSH 的确认与权限策略。
- 工具输出有界。 返回值折叠为一行
summary与原始detail,浏览器完整状态 不进入模型请求。
🔧 技术细节
配置
| 字段 | 默认值 | 含义 |
|---|---|---|
baseUrl | http://127.0.0.1:10086 | 守护进程的 http/https 地址 |
timeoutMs | 30000 | 单次工具调用超时预算(毫秒) |
- id: webbridge
config:
baseUrl: http://127.0.0.1:10086
timeoutMs: 30000
非法 URL 或非正整数超时会在插件挂载时响亮失败。
从旧名称升级
已经安装旧包的 profile 需要先移除,再安装新版本:
dsh plugin --profile web remove @dsh-external/dsh-kimi-browser
dsh plugin --profile web add github:titanwings/dsh-better-browser#v0.3.2
@dsh-external/dsh-better-browser 包身份、webbridge 行 id、全部工具名和配置字段
保持稳定。GitHub 仓库归属变化不会改变 Cordis bundle 身份。
当前限制
- 严格检查
event.isTrusted的站点可能忽略合成 click/fill。 - snapshot、click、fill 与 evaluate 只作用于顶层 frame,不穿透跨域 iframe。
- screenshot 返回守护进程写入的临时文件路径,需要 Read 工具查看。
- 标签组由守护进程维护;重启守护进程会清空它们。
开发与测试
DSH 官方包尚未发布到公共 npm,开发工具链需要一个 DSH 源码 checkout:
pnpm link:dsh -- /path/to/dsh
pnpm typecheck
pnpm test
pnpm build
pnpm check
测试覆盖守护进程客户端、13 个工具、Cordis 生命周期、配置校验和 Loader 冒烟。
设置 KIMI_WEBBRIDGE_IT=1 可对真实守护进程运行集成测试。
📄 License 与 WebBridge 边界
本插件使用 BSD-3-Clause,见 LICENSE。它只兼容 Kimi WebBridge 协议,不包含 Kimi 的守护进程、扩展或代码。Kimi WebBridge 是月之暗面的产品 与商标,需根据 Kimi 自身条款另行安装和使用。