DSH Hub

anweat/dsh-web-search-pro

dsh-web-search-pro

UIWeb UI70 GitHub stars· updated 2026-09-27

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

dsh-web-search-pro DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-web-search-pro.svg)](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 渲染打包成模型可直接调用的 11 个工具。路由控制面借鉴 Agent-Reach 的后端探测、顺序选择和失败冷却思路,核心逻辑为本项目原生 TypeScript 实现。

兼容与发布通道

插件发布通道DSH 基线兼容承诺
0.1.11 及更早的维护版本dsh-v0.1.1-rc.2旧基线;不与新插件混装
0.1.15dsh-v0.1.7-rc.2 + Browser 0.1.15精确锁定此宿主版本;组合安装、真实 Web profile 与设置持久化已验证

0.1.15 的 DSH 运行时依赖精确锁定 0.1.7-rc.2, 客户端配置改走 configForms 和插件 bundle 的专属配置槽位。

安装

dsh plugin --profile web add @anweat/[email protected] [email protected]
# 或本地目录 / tarball:
dsh plugin --profile web add ../dsh-browser ./dsh-web-search-pro
# 重启(web profile 关闭了 HMR):
dsh --profile web

两个插件都必须是 profile 的直接依赖:DSH 只激活直接依赖的 bundle layer,且标准 profile 可能设置 autoInstallPeers: false。不要只安装 Web Search Pro 后依赖 peer 自动补齐。 pnpm 11 若拦截 Browser 的 OpenCLI 依赖安装脚本,会要求在 profile 的 pnpm-workspace.yaml 中明确决定 allowBuilds: { '@jackwener/opencli': false }(或在确实需要安装期下载 adapter 时自行审核后设为 true),再重试安装;隔离 profile 中禁用脚本后,已发布 Browser 的 OpenCLI 入口仍可运行。 本版仅支持 dsh-v0.1.7-rc.2 与 Browser 0.1.15,不能混用仍声明旧 DSH peer 的 Browser 0.1.15-alpha.2。若你的 harness 是本地源码 checkout,版本号可能有出入——用 dsh plugin --profile web add ./<path> 并在 profile 的 pnpm-workspace.yaml 里对齐版本后重装即可。

从旧版本升级

升级 Web Search Pro 时应同时升级浏览器插件;两者都需要作为 profile 的直接依赖。

dsh plugin --profile web add @anweat/[email protected] [email protected]

升级完成后需要完整停止并重新启动 Web profile;仅刷新网页不会重新扫描插件的 client.js。随后依次检查:

  1. browser_status:确认 OpenCLI、playwright | patchright 运行时、automationMode 与 usagePolicy 符合预期。
  2. web_backend_status:确认搜索、CLI、Agent Reach 与浏览器后端是否 ready。
  3. 打开 插件 → 已安装 中两个 bundle 各自的详情页,确认配置表单都已加载;浏览器表单负责自由度、运行时、OpenCLI 与调用缓冲。

automationMode 和防止过度调用的 usagePolicy 都属于 dsh-browser,升级不会自动改写现有配置。生产 profile 建议保留 standard;unrestricted 只用于隔离的自动化测试 profile,并且仍受并发、突发、页数/深度和 429/503 退避保护。

若 Clash/TUN 使用 fake-IP DNS,原生 HTTP 后端可能看到 198.18.0.0/15 或 fdfe:dcba:9876::/96。可在可视化面板的高级设置中启用 allowProxyFakeIp;默认关闭。该开关只信任这两个代理网段的 DNS 解析结果,字面 fake-IP URL、localhost 和其他私网地址仍会被 SSRF 防护拒绝。

快速使用与适用情形

安装并重启后,直接在 DSH 会话里要求模型调用工具即可:

请调用 web_backend_status 检查后端,然后用 web_search_pro 搜索
"DeepSeek Harness community feedback",指定 exa、fresh=true、返回 8 条来源。
情形推荐入口说明
日常网页搜索web_search_pro默认按配置顺序回退;需要强制刷新时传 fresh=true
语义研究、社区观点web_search_pro + exa有 API Key 时走原生 Exa API;只有 Exa MCP 连接时自动经 mcporter 回退
已知 URL 的批量正文web_exa_contents直接调用 Exa /contents,必须配置 EXA_API_KEY
GitHub/B站/Reddit 等平台web_platform_searchReddit 等 OpenCLI 平台需要 Chrome 扩展在线;中文受限站点使用 AuthProfile
登录后页面或私有论坛browserBindings + AuthProfileCookie 保存在本地 storageState,按域名授权,默认只读
页面改版、懒加载platformRules 或 RulePack优先改选择器;需要等待/点击/滚动时再使用有界 RulePack
模型生成多步页面操作browser_recipe_run只读步骤直接运行;页面交互按 dsh-browser 的 automationMode 决定拒绝/审批/直通
外部模型生成油猴脚本browser_script_validate → browser_userscript_run强制 @match、@grant none、禁用 @require;仅 unrestricted 跳过审批
有限泛爬取browser_crawl匿名、默认同源;调用参数不能突破浏览器插件的页数/深度预算
OpenCLI 站点适配器或浏览器桥browser_opencli_status → browser_opencli_catalog → browser_opencli_run先发现精确 adapter;仅 unrestricted 跳过通用 argv 审批

先运行 web_backend_status 判断后端是否 ready。指定单一引擎时失败会原样返回;不指定时才会按 engines 顺序自动回退。

工具(11 个)

…

Related plugins