@anweat/dsh-browser
用于 DeepSeek Harness 的自包含浏览器运行时插件(范围 @anweat)——将 Playwright (chromium) 和 OpenCLI 捆绑为插件本地依赖(并提供全局复用回退),暴露 `browser` 服务及交互式浏览器工具。
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:anweat/dsh-browser说明文档
阅读完整 README ↗dsh-browser
自包含的浏览器运行时插件 for DeepSeek Harness(DSH)。
把 Playwright(chromium 内核) 与 OpenCLI 作为插件自身的 npm 依赖打包(优先插件本地,缺省回退全局复用),对外提供一个 browser 服务 + 一组交互式浏览器工具。dsh-web-search-pro 通过 inject: ['browser'] 注入该服务,驱动它的 playwright / opencli 后端——不再依赖全局 CLI。
安装
dsh plugin --profile web add @anweat/dsh-browser
# 或本地目录 / tarball:
dsh plugin --profile web add ./dsh-browser
# 重启(web profile 关闭了 HMR):
dsh --profile web
依赖
@deepseek-ai/*已发布到 npm(^0.1.0-rc.6)。 若你的 harness 是本地源码 checkout(如0.1.0-rc.5),版本号可能有出入——用dsh plugin --profile web add ./并在 profile 的pnpm-workspace.yaml里对齐版本后重装即可。
内核与依赖的"打包 vs 复用"
| 层 | 实际是什么 | 打包还是复用 |
|---|---|---|
| chromium 内核 | 共享缓存 %LOCALAPPDATA%\ms-playwright(约 400MB) | 永远复用共享缓存,不塞进插件、不重复下载;缺失时 browser_install 一键补 |
| playwright 驱动(JS 包) | playwright npm 依赖 | 插件本地 node_modules 优先,缺省回退全局 npm |
| opencli(纯 Node CLI) | @jackwener/opencli npm 依赖 | 同上,本地优先 / 全局复用 |
服务:browser
dsh-browser 在 apply() 里 ctx.provide('browser', service)。任何插件声明
inject: ['browser'] 即可消费:
export const inject = ['tools', 'browser']
export function apply(ctx: Context) {
const browser = ctx.get('browser') as BrowserService
// browser.render / snapshot / searchResults / opencli / open / click / type / scroll / read / screenshot / close
}
服务接口(结构性,无需共享类型包)见 src/browser-service.ts。
工具(9 个)
| 工具 | 作用 |
|---|---|
browser_open | 打开 URL,返回标题/可读文本/全页截图路径(持久页会话) |
browser_click | 按 CSS 选择器点击 |
browser_type | 向 input/textarea 输入 |