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 渲染打包成模型可直接调用的 11 个工具。路由控制面借鉴 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 | 精确锁定此宿主版本;组合安装、真实 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与 Browser0.1.15,不能混用仍声明旧 DSH peer 的 Browser0.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。随后依次检查:
browser_status:确认 OpenCLI、playwright | patchright运行时、automationMode与usagePolicy符合预期。web_backend_status:确认搜索、CLI、Agent Reach 与浏览器后端是否 ready。- 打开
插件 → 已安装中两个 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_search | Reddit 等 OpenCLI 平台需要 Chrome 扩展在线;中文受限站点使用 AuthProfile |
| 登录后页面或私有论坛 | browserBindings + AuthProfile | Cookie 保存在本地 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 个)
…
