面向 DeepSeek Harness DSH 的免费 Bing 搜索 provider。无需 API…
36.2/100
综合分
2
GitHub 星标
354
npm 周下载
—/5
用户评分
数据截至 2026/10/22 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add @godchen520/dsh-web-search-bingnpm 源 · @godchen520/dsh-web-search-bing 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · search
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 13 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包@godchen520/dsh-web-search-bing @ 1.2.3
✓Node 引擎要求 >=18 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/31 10:22:52
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
发起外部网络请求
查看扫描证据(共 1 处,展示前 1 条)
- 发起网络请求lib/index.js:437
response = await fetch(url, {
扫描于 2026/10/31(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-web@deepseek-ai/schemastery@deepseek-ai/cordis给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
为 DeepSeek Harness(DSH)提供免费必应网页搜索服务商,无需 API key。
最近更新
在 GitHub 查看全部 →v1.2.32026-10-18
· v1.2.3 — 修复 DSH 0.2.1 下 web_fetch 全部失败
⚠️ 如果你在用 DSH 0.2.1-rc.2,请务必升级到本版 —— 旧版在这个 DSH 上每一次 web_fetch 都会失败。
· 🐛 问题
DSH 0.2.1-rc.2 给 base 的 web 行新增了 fetchProvider: http。
而 cordis patch 的语义是「整体替换 config」而不是合并 —— 本插件的 patch 此前只重述了 searchProvider,
于是新出现的 fetchProvider 被静默抹掉。
后果:http 与 deepseek-fetch-api 两个抓取 provider 同时可用、且没有显式选择 →
每一次 web_fetch 调用都抛错:
WEB_PROVIDER_AMBIGUOUS: multiple usable web providers are registered
(deepseek-fetch-api, http); configure one explicitly
· ✅ 修复
cordis.patch.yml 补回 fetchProvider: http —— web 行现在同时重述两个 key
(fetchProvider 保持 base 默认值 http,即免费的本地抓取器)。
· 📊 兼容性
| DSH | 状态 |
|---|---|
| 0.2.1-rc.2 | ✅ 本版修复后可用 |
| 0.2.0-rc.2 | ✅ 可用(该版本 base 无 fetchProvider,多写一个 key 无副作用) |
| ≤ 0.1.6 | ❌ 不支持 |
另外 peerDependencies 的 @deepseek-ai/dsh-web 从 ^0.2.0-rc.2 改为 >=0.2.0-rc.2
📋 完整技术细节(点开看 CHANGELOG 原文)
· 修复(严重)
· cordis.patch.yml 补回 fetchProvider: http。
DSH 0.2.1-rc.2 给 base 的 web 行新增了 fetchProvider: http。而 cordis
patch 的语义是整体替换 config 而非合并,本插件的 patch 此前只重述了
searchProvider,于是新出现的 fetchProvider 被静默抹掉。
后果:http 与新版新增的 deepseek-fetch-api 两个抓取 provider 同时可用且
没有显式选择,每一次 web_fetch 调用都失败并抛:
WEB_PROVIDER_AMBIGUOUS: multiple usable web providers are registered
(deepseek-fetch-api, http); configure one explicitly
修复后 web 行同时重述两个 key(fetchProvider 保持 base 默认值 http,
即免费的本地抓取器;deepseek-fetch-api 走 DeepSeek 付费 Search/Fetch API)。
· 说明(为什么这类 bug 会发生)
补丁层必须重述目标行拥有的每一个 key,否则被省略的 key 会在整个组合里消失。
dsh-base 自己的注释也写了这一点("a patch replaces the targeted row's whole
config … each row below restates every key it owns")。本文件顶部现已加入醒目
警告,升级 DSH 时需要对照 base 的 web 行同步这份 key 列表。
· 兼容性
| DSH | 状态 |
|---|---|
| 0.2.1-rc.2 | ✅ 本版修复后可用 |
| 0.2.0-rc.2 | ✅ 可用(该版本 base 无 fetchProvider,多写一个 key 无副作用) |
| ≤ 0.1.6 | ❌ 不支持 |
peerDependencies 的 @deepseek-ai/dsh-web 从 ^0.2.0-rc.2 改为
=0.2.0-rc.2
v1.2.22026-10-02
· v1.2.2 — 发布到 npm(改用组织作用域名)
运行时行为与 1.2.1 完全一致,本版只改包的身份与分发方式。
· 改动
· 包名改为 @godchen520/dsh-web-search-bing —— npm 上的 dsh-web-search-bing
已被其他开发者占用,因此改用组织作用域名。GitHub 仓库名不变。
· cordis.patch.yml 中插入行的 name 同步改为作用域名
(该名字从 profile 的 node_modules 解析,必须与包名一致)
· package.json 补齐 repository / homepage / publishConfig.access=public
· README / README_EN 安装章节:改为 pnpm add @godchen520/dsh-web-search-bing
· 新增 .github/workflows/publish.yml:Release 时经 Trusted Publishing(GitHub OIDC)
自动发布到 npm,不需要任何令牌,并生成 SLSA 来源证明
· ⚠️ 从旧版本升级注意
老名字 dsh-web-search-bing 与新名字不能并存。升级时请把 profile 里
dependencies 的键和 dsh.profile.bundles 里的条目一起换成作用域名,否则
插件会在下次重启时加载失败(包目录名与 patch 行名不一致)。
// profiles/web/package.json
"dependencies": {
"@godchen520/dsh-web-search-bing": "^1.2.2" // 原来是 "dsh-web-search-bing"
},
"dsh": { "profile": { "bundles": [
// ...
"@godchen520/dsh-web-search-bing" // 原来写的是 "dsh-web-search-bing"
] } }
· 安装
cd $DSH_HOME/profiles/web
pnpm add @godchen520/dsh-web-search-bing
· 把 @godchen520/dsh-web-search-bing 加进 dsh.profile.bundles,重启 dsh web
v1.2.12026-09-30
· v1.2.1 — 补齐端到端测试与开发依赖
纯开发侧改动:运行时行为与 1.2.0 完全一致,发布产物 lib/ 未变。
· ✨ 新增:可复跑的端到端测试
tests/e2e.provider.test.mjs —— 直接 import 真实的 BingFreeSearchProvider(不复制解析逻辑),用桩 fetch 驱动两种传输,因此走的是与运行时完全相同的代码路径。
离线 41 项(确定性,可进 CI):
· RSS 优先:默认只发一次请求且带 format=rss;publishedAt 正确映射(含中文 pubDate)
· HTML 兜底:preferRss: false 时强制走 HTML,且不请求 RSS
· 回退触发:RSS 返回非 feed、返回 HTTP 500 —— 都要回退到 HTML
· 取消不被吞:AbortSignal 取消后抛 WEB_ABORTED,不继续回退
· 空 query / captcha 页:抛结构化 WEB_PROVIDER_ERROR,不伪装成「无结果」
· maxResults 截断、provider 元数据
--live 额外 7 项:真实请求 cn.bing.com,验证两条通道的线上行为,并断言标题/摘要无残留实体、无「阅读更多」UI 尾巴。
· 🔧 开发依赖与脚本
· devDependencies:@deepseek-ai/dsh-web、@deepseek-ai/schemastery —— 测试需要 import 真实插件代码,而插件会 import 这两个官方包(不进发布产物)
· npm test —— 离线测试(40 项纯解析 + 41 项端到端)
· npm run test:live —— 额外含真实网络(+7 项)
· package-lock.json —— 锁定开发依赖版本
· 📝 背景
此前 CHANGELOG 里写的「真实网络 e2e 12 项」是开发时临时脚本跑的,代码未入库、无法复跑。本版把它固化为可重复执行的测试 —— 任何人 clone 后执行 npm install && npm test 即可验证,不再只是一句声明。
npm install
npm test # 离线,81 项
npm run test:live # 含真实网络,88 项
· 兼容性
| DSH 版本 | 状态 |
|---|---|
| 0.2.x(0.2.0-rc.2 实测) | ✅ |
| 0.1.7 ~ 0.1.x | ✅ |
| ≤ 0.1.6 | ❌ |
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。
README
由 DeepSeek 最新模型翻译生成dsh-web-search-bing
面向 DeepSeek Harness (DSH) 的免费 Bing 搜索 provider。无需 API Key,不消耗模型额度。
特点
- 完全免费:走 Bing 公共 HTML 搜索页面,无需 API Key、无需注册
- 国内可达:默认 cn.bing.com,中国大陆可直连(DuckDuckGo 在此不可达)
- 零配额消耗:不消耗 DeepSeek 或任何 LLM 的搜索配额
- 可配置:搜索端点、中英文结果、单页结果数,且设置热生效(改完不用重载插件)
- 适配 DSH 0.2.x:使用新版 schema 驱动的设置模型(导出 Config,由 host 自动生成设置表单)
与内置 DeepSeek 搜索的区别
| | 内置 dsh-web-search-deepseek(deepseek-official) | 本插件(bing-free) |
| 原理 | 调 DeepSeek Messages API + 原生 web_search 工具,每次搜索是一次 LLM 请求 | GET cn.bing.com/search,解析 HTML |
| 凭证 | 需 API Key | 零凭证 |
| 配额 | 消耗 DeepSeek 模型额度 | 不消耗任何额度 |
展开完整文档(README 剩余 1 节)
dsh-web-search-bing
面向 DeepSeek Harness (DSH) 的免费 Bing 搜索 provider。无需 API Key,不消耗模型额度。
特点
- 完全免费:走 Bing 公共 HTML 搜索页面,无需 API Key、无需注册
- 国内可达:默认 cn.bing.com,中国大陆可直连(DuckDuckGo 在此不可达)
- 零配额消耗:不消耗 DeepSeek 或任何 LLM 的搜索配额
- 可配置:搜索端点、中英文结果、单页结果数,且设置热生效(改完不用重载插件)
- 适配 DSH 0.2.x:使用新版 schema 驱动的设置模型(导出 Config,由 host 自动生成设置表单)
与内置 DeepSeek 搜索的区别
| | 内置 dsh-web-search-deepseek(deepseek-official) | 本插件(bing-free) |
| 原理 | 调 DeepSeek Messages API + 原生 web_search 工具,每次搜索是一次 LLM 请求 | GET cn.bing.com/search,解析 HTML |
| 凭证 | 需 API Key | 零凭证 |
| 配额 | 消耗 DeepSeek 模型额度 | 不消耗任何额度 |
| 设置项 | key / endpoint / model / maxTokens / maxUses | endpoint / maxResults / ensearch |
内置的是「用模型额度换高质量检索」,本插件是「用网页抓取换零成本」。两者可共存,通过 web.searchProvider 选择。
安装
1. 从 npm 安装(推荐)
cd $DSH_HOME/profiles/web
pnpm add @godchen520/dsh-web-search-bing
也可以从 GitHub 安装(跟随最新提交):
pnpm add github:godchen520/dsh-web-search-bing
2. package.json 的 dependencies 会自动出现: "@godchen520/dsh-web-search-bing": "^1.2.2"
3. package.json 的 dsh.profile.bundles 里加上 "@godchen520/dsh-web-search-bing"
4. 重启
dsh web
注意:只加进 dependencies 而不加进 dsh.profile.bundles 的话,插件的 cordis.patch.yml 不会被应用——插件是「装了但没启用」,搜索仍走内置 provider。
配置
设置项由 host 从插件导出的 Config schema 自动生成,出现在 设置 → Plugins 页面(注意:专属的「网页搜索」设置页是内置 DeepSeek provider 的,本插件不在那里)。
四个字段都是 .volatile(),保存后下一次搜索即时生效:
| 参数 | 默认值 | 说明 |
| endpoint | https://cn.bing.com/search | 搜索端点(可换镜像/代理) |
| maxResults | 10 | 单页解析结果上限(seam 还会按 searchMaxResults 再截断) |
| ensearch | 0 | 0=中文结果,1=英文 |
| preferRss | true | 优先走 RSS;设 false 强制走 HTML 抓取 |
工作原理
双通道:RSS 优先,HTML 兜底。
web_search 工具 → ctx.web.search() → bing-free provider │ ├─ 1) GET cn.bing.com/search?q=...&ensearch=0&format=rss ← 默认主路径 │ 结构化 XML: / / <description> / <pubDate> │ 有 <item> → 直接映射(含 publishedAt),完成 │ 无 <item> / 非 feed / 请求失败 ↓ │ └─ 2) GET cn.bing.com/search?q=...&ensearch=0 ← 兜底解析 → {url, title, snippet}
| | RSS 通道(主) | HTML 通道(兜底) |
| 体积 | ~4 KB | ~100 KB |
| 摘要 | 完整段落 | 被 lineclamp 截断 + 需清 UI 尾巴 |
| publishedAt | ✅ 有(<pubDate>) | ❌ 无 |
| 抗变化 | 标准 RSS 字段 | 依赖 b_algo / b_lineclamp* class 名 |
| 相关性 | — 两者完全相同(同一批结果、同一顺序) | — |
其他行为:
- 带浏览器 UA(Bing 会拒绝裸 Node/undici agent)。
- 命中 captcha/风控页时抛结构化 WEB_PROVIDER_ERROR,不会伪装成「无结果」。
- 支持 AbortSignal 取消,且取消不会被兜底吞掉。
- &count= 对两种通道都无效,Bing 每页固定约 10 条。
兼容性
| DSH 版本 | 状态 |
| 0.2.x(如 0.2.0-rc.2) | ✅ 支持(当前版本) |
| 0.1.7 ~ 0.1.x | ✅ 支持(readField 同时兼容 .get() 访问器与纯值) |
| ≤ 0.1.6 | ❌ 不支持(那时用 installSettingsSection 手写注册,API 已移除) |
本插件只 import 两个包:@deepseek-ai/schemastery、@deepseek-ai/dsh-web。
不再依赖 @deepseek-ai/dsh-settings(新版已移除 settingsNamespace / installSettingsSection)。
测试
npm install # 首次:安装官方包(测试需要 import 真实的 lib/index.js)
npm test # 离线测试:40 + 41 项,确定性,可进 CI
npm run test:live # 额外真实请求 cn.bing.com(+7 项,需要网络)
| 文件 | 内容 |
| tests/parse.smoke.test.cjs | 40 项纯解析:HTML 解析 / 命名实体 / UI 尾巴清理 / RSS feed / 本地化 pubDate。自包含,不依赖官方包 |
| tests/e2e.provider.test.mjs | 41 项端到端:直接 import 真实的 BingFreeSearchProvider(不复制逻辑),用桩 fetch 驱动两种传输 |
端到端覆盖的关键行为:
- RSS 优先:默认只发一次请求且带 format=rss;publishedAt 正确映射(含中文 pubDate)
- HTML 兜底:preferRss: false 时强制走 HTML,且不请求 RSS
- 回退触发:RSS 返回非 feed、返回 HTTP 500 —— 都要回退到 HTML
- 取消不被吞:AbortSignal 取消后抛 WEB_ABORTED,不继续回退
- 空 query / captcha 页:抛结构化 WEB_PROVIDER_ERROR,不伪装成「无结果」
- maxResults 截断
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
godchen520/dsh-web-search-bing
面向 DeepSeek Harness DSH 的免费 Bing 搜索 provider。无需 API…
相关插件 · 搜索 / 抓取
LLM 知识平台Tencent/WeKnora
概览 ·快速开始 ·新特性 ·功能 ·客户端 ·文档 ·开发
★ 36,032已汉化DSH
72.1
智能体记忆系统MemTensor/MemOS
MemOS 2.0 Stardust星尘
★ 12,195已汉化DSH
71.2
跨代理记忆库zilliztech/memsearch
跨平台语义记忆,专为 AI 编程智能体打造。
★ 2,799已汉化DSH
70.9
技能语料库EverMind-AI/SkillCorpus
SkillCorpus 能给你什么
★ 694已汉化DSH
69.7
代码图谱记忆syncable-dev/memtrace-public
你的智能体值得拥有结构化记忆。
★ 509已汉化MCP
67.9
AnySearch 搜索插件anysearch-team/anysearch-dsh
AnySearch 网页搜索服务商,为 DeepSeek Harness(DSH)提供高级搜索工具
★ 457已汉化DSH
66.6