dshbase

插件目录 / Developer / dsh-tool-browser

dsh-tool-browser

已验证 · 实测可装 MashedPotato817

✓ 持续维护 基于 4 个官方 DSH 包

查看 GitHub ↗ ← 返回插件目录

1Stars
0Forks
0未关闭 issue
JavaScript语言
2026-08-14最近推送
跨平台平台

功能简介

dsh-tool-browser — DSH 插件(工具)

✅
我们的评价
可用 — 实测通过,早期项目

dsh-tool-browser — DSH 插件(工具) 实测能干净安装、正常启动。早期项目,但功能可用。

「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。

README

dsh-tool-browser

npm version
npm downloads
License

给 DeepSeek Harness(DSH)的原生浏览器自动化工具插件,由 Playwright 驱动。
默认直接使用本机安装的 Microsoft Edge(channel: "msedge",无需下载浏览器),
Edge 缺失时自动回退到 Playwright 自带的 Chromium。

能力

面向模型的只读/交互工具(全部注册进 DSH 的 ctx.tools):

工具 作用
browser_navigate 打开 URL,返回标题与最终地址
browser_snapshot 返回页面可见文本(body innerText,限长)
browser_click 按 CSS 选择器点击元素
browser_type 按 CSS 选择器向输入框填入文本
browser_press_key 按键盘键(Enter / Escape 等)
browser_evaluate 在页面执行 JS 表达式并返回 JSON 结果
browser_take_screenshot 截图保存为 PNG,返回文件路径
browser_console_messages 返回页面控制台消息
browser_wait_for 等待固定毫秒数
browser_back 返回上一页
browser_fill_form 一次填多个表单字段
browser_select_option 下拉框选择选项
browser_hover 悬停元素
browser_drag 拖拽(源元素 → 目标元素)
browser_resize 调整视口尺寸
browser_open_tab 新开标签页(可带 URL)
browser_tabs 列出所有标签页
browser_switch_tab 切换到指定标签页
browser_close_tab 关闭当前标签页

设计要点:

  • 共享页面:插件实例维护一个浏览器 + 一个页面,会话内浏览状态连续;工具默认互斥(非并发安全),避免相互干扰。
    • 限制:使用该插件的所有会话共享同一个页面,跨会话会互相影响;需要隔离时请用独立 profile 实例。
  • 中止安全:每个工具转发 exec.signal,超时/中止策略不会挂死 agent 回合。
  • 结果结构化:全部返回 { text },快照/求值结果限长,控制 KV cache 影响。

安装

已发布到 npm,一条命令安装(推荐,自动拉取 registry 最新版):

dsh plugin --profile <name> add dsh-tool-browser

GitHub / 本地开发备选:

dsh plugin --profile <name> add https://github.com/MashedPotato817/dsh-tool-browser.git
# 或本地:dsh plugin --profile <name> add /path/to/dsh-tool-browser

在 profile 的 cordis.patch.yml 里启用:

- insert:
    - id: dsh-tool-browser
      name: dsh-tool-browser
      config:             # 可选,下列为默认值
        channel: msedge    # 浏览器 channel
        headless: true
        allowedHosts: []   # 空 = 允许全部 host

快速开始

三步即可在 DeepSeek Harness(DSH)里获得浏览器自动化能力:

# 1. 安装插件
dsh plugin --profile <name> add dsh-tool-browser

# 2. 在 cordis.patch.yml 里 insert 启用(见上)

# 3. 启动 DSH 后,模型会自动拥有 browser_* 工具,直接在对话里让 agent 操作浏览器:
#    「打开 https://example.com 并截图」

调用示例

安装并启用后,这些工具会注册进 DSH 的 ctx.tools,agent 无需额外 import 即可直接调用:

// 在 DSH 插件 / 对话中,模型按工具名直接调用,无需手工引用
await ctx.tools.browser_navigate({ url: "https://example.com" });
await ctx.tools.browser_snapshot({});
await ctx.tools.browser_click({ target: "button#submit" });
await ctx.tools.browser_evaluate({ script: "document.title" });
await ctx.tools.browser_take_screenshot({});

工具名与 DSH 内置 browser_* 能力一一对应,完整清单见上文「能力」表。

配置

键 默认值 含义
channel msedge Playwright 浏览器 channel(msedge / chrome / 缺省=自带 Chromium)
allowedHosts [] 允许访问的 host 白名单(空=全部允许,*=全部,如 example.com);data:/about: 始终允许
headless true 无头模式(调试可设 false)
outputDir 系统临时目录 截图输出目录
timeoutMs 60000 工具调用总超时
navigationTimeoutMs 60000 页面导航超时
actionTimeoutMs 10000 单次动作(点击/输入)超时
snapshotMaxChars 12000 snapshot 文本上限
evaluateMaxChars 4000 evaluate 结果上限
viewportWidth/Height 1280x720 视口尺寸

开发

npm install
npm run check   # 语法校验
npm test        # smoke + 真实浏览器集成测试(本机 Edge;CI 用自带 Chromium)

License

MIT

安装

🧩 让 Agent 自动装(推荐)

装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:

dsh plugin add dshbase-catalog

然后对 agent 说「帮我装 dsh-tool-browser」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。

Web profile:

dsh plugin --profile web add dsh-tool-browser

Headless(CLI)profile:

dsh plugin --profile headless add dsh-tool-browser

包信息

npm:dsh-tool-browser · 版本 0.1.0 · 实测环境 dsh 0.1.0-rc.6

实测报告

端到端验证通过:dsh 0.1.0-rc.6 上 L1 安装 + L2 加载 + L3 运行问答。

使用场景

扩展 agent 的编码能力面——给它一个新工具、工作流或集成,让它接手以前做不了的开发任务。

适合谁

想让 dsh 在真实代码库上像队友一样干活的开发者——能改、能跑、能验证,而不只是回答问题。

二次开发建议

工具/命令面就是缝:暴露更多 SDK 能力、加更聪明的上下文接线,或收紧改代码与验证之间的循环。

安全:尚未扫描——我们的每日静态扫描将很快覆盖它。

分享徽章

Developer 里更多

浏览全部 7797 个插件 →