anweat/dsh-web-search-pro
dsh-web-search-pro
Enhanced, persistent web search plugin for DeepSeek Harness (multi-engine search, SQLite+LRU cache, platform backends, Playwright rendering)
Install
npx @deepseek-ai/dsh plugin --profile web add @anweat/[email protected]Restart `dsh web` after install. Bundle APIs can change during the developer preview.
README badge
[](https://dshhub.dev/plugins/dsh-web-search-pro)Paste this into your README. The star count updates with every catalog sync.
From the README
Excerpt from anweat/dsh-web-search-pro, cleaned of badges and images.
dsh-web-search-pro
增强型、可持久化的扩展网页搜索插件 for DeepSeek Harness(DSH)。
一个 DSH bundle 插件,把多引擎网页搜索、平台搜索、持久化缓存、受控按站增强和 Playwright 渲染打包成模型可调用的能力。常驻上下文只有 web_index / web_call 两个工具(原 11 个 web_* 工具已并入 20 个动作,见工具面)。路由控制面借鉴 Agent-Reach 的后端探测、顺序选择和失败冷却思路,核心逻辑为本项目原生 TypeScript 实现。
兼容与发布通道
| 插件发布通道 | DSH 基线 | 兼容承诺 |
|---|---|---|
0.1.11 及更早的维护版本 | dsh-v0.1.1-rc.2 | 旧基线;不再维护,不与新插件混装 |
0.1.15 | dsh-v0.1.7-rc.2 + Browser 0.1.15 | 精确锁定该宿主版本;仍停留在 DSH 0.1.x 宿主或 dsh-browser 0.1.x 的用户请使用这一版(后续不再更新) |
0.1.17 | dsh-v0.1.7-rc.2 ~ dsh-v0.2.0-rc.2 + Browser 0.1.17 | 过渡版本,已不再演进;新功能不会回到这条线 |
0.2.0(正式版) | 只支持 dsh-v0.2.0-rc.2 这一条线(peer >=0.2.0-rc.2 <0.2.1-0)+ 可选 @anweat/dsh-browser ^0.2.0 | 第一个 0.2.0 线版本,破坏性变更(见 CHANGELOG.md);711 项单元测试、94 项 bench 测试,pnpm run test:peers 两种解析模式检查,真实 Host(DSH 0.2.0-rc.2)验收 |
0.2.1 | 同 0.2.0(peer >=0.2.0-rc.2 <0.2.1-0 + 可选 @anweat/dsh-browser ^0.2.0) | 独立 CLI 适配层与平台后端链,无破坏性变更(见 CHANGELOG.md);774 项单元测试、94 项 bench 测试,真实 Host(DSH 0.2.0-rc.2)验收 |
支持范围:DSH >=0.2.0-rc.2 <0.2.1-0,可选配套浏览器插件 @anweat/dsh-browser ^0.2.0(即 0.2.x,不含 0.3)。
不再支持 DSH 0.1.x 宿主线,也不再支持旧的 dsh-browser 0.1.x 线;仍在这两条线上的用户请停留在 dsh-web-search-pro 0.1.15。
- DSH 0.1.x 宿主:peer 范围不再包含它,
dsh plugin add会因 peer 不满足而拒绝,或在组装期点名报incompatible。本插件已去掉为旧宿主保留的兼容分支。 - 旧 dsh-browser 0.1.x:浏览器是可选依赖,本插件仍会识别它但不会驱动它。服务对象没有版本字段,所以以形状判定:不带任何 0.2 才有的方法(
observe/listTargets/sessionState)即视为旧线。检测到旧线时:read.snapshot、read.fetch mode=playwright、浏览器平台与 OpenCLI 平台返回CAPABILITY_UNAVAILABLE:dsh-browser 0.1.x is not supported by web-search-pro 0.2+; upgrade to @anweat/dsh-browser ^0.2.0;read.fetch mode=auto不再尝试浏览器渲染,静默跳过(全部后端失败时,错误说明里会写明原因);sources.status显示browser: legacy (unsupported);系统提示不加浏览器那一行;旧服务上的automationMode不参与写操作审批(按没有 Browser 处理,standard下询问);- 其他一切(网页搜索、证据管线、非浏览器平台、缓存、历史)照常工作。
peer 范围的写法与 @anweat/dsh-browser 0.2.0 完全一致:每个 @deepseek-ai/dsh-* peer 都是 >=0.2.0-rc.2 <0.2.1-0。
- 宿主的组装期校验用的是
semver.satisfies(host, range, { includePrerelease: true });真正决定装机成败的是 npm/pnpm 的默认 semver:预发布版本只有在某个比较符自带同号(同 major.minor.patch)预发布时才被判为满足。>=0.2.0-rc.2这个比较符自带0.2.0的预发布,是承重的,必须保留;写成>=0.1.7-rc.2 <0.2.1-0这类下界在别的版本线的范围会过宿主校验、却让dsh plugin add报 ERESOLVE。与@anweat/dsh-browser必须声明同一套策略,否则两者互为 peer 时会出现 ERESOLVE。 - 上界是
<0.2.1-0而不是<0.2.1:后者放行0.2.1-alpha.1这类 0.2.1 的预发布。收口后,若 0.2.1 真出现破坏,会在组装期直接报is incompatible with dsh 0.2.1并点名,而不是拖到用户机器上变成运行期怪错(0.1.5 → 0.1.7曾一次性打断所有按0.1.5-alpha.1构建的插件)。 - 范围只表示「测过哪些」,不等于承诺不破坏;真正的防线是每换一个 DSH 版本重跑一遍这套验证。
pnpm run test:peers(已并入pnpm verify)用两种解析模式逐个断言受管 peer:0.2.0-rc.2必须通过,0.1.7-rc.2、0.2.0-rc.1、0.2.1-alpha.1必须被拒绝;并自带--selftest已知行为自校验。
安装
# 默认安装(面向 dsh-v0.2.0-rc.2 宿主;浏览器插件可选,需要读取渲染页 / 浏览器平台时一起装):
dsh plugin --profile web add @anweat/[email protected] [email protected]
# 不需要浏览器能力时,只装本插件即可:
dsh plugin --profile web add [email protected]
# 或本地目录 / tarball:
dsh plugin --profile web add ../dsh-browser ./dsh-web-search-pro
# 重启(web profile 关闭了 HMR):
dsh --profile web
…

