dsh-free-web:为 DeepSeek Harness 提供免 API 的 Bing 联网搜索

前言

在 DeepSeek Harness(DSH)里做需要时效性或外部事实的任务时,模型往往要调用内置的 web_search。若走商业搜索 API,就要单独申请密钥、维护配额和账单。社区里也有只靠 web_fetch 打开用户给定链接的做法,但无法主动检索关键词。下面介绍维护者 skyhome000 发布的 dsh-free-web:不依赖搜索 API 与 API Key,通过抓取 Bing 公开结果页(必要时 RSS 与本机 Chrome/Edge 无头渲染)为 DSH 注册搜索提供者,并在 Composer 与左侧栏补上三档联网开关和手动搜索面板。

这是什么

dsh-free-web(GitHub:skyhome000/dsh-free-web,社区目录分类为联网工具)面向 DSH 0.2.1-rc.3 及以上版本。插件由 Host 半部(Node,index.js)与 Client 半部(React 组件,client.js)组成,无需浏览器扩展;Chrome/Edge 仅在 HTTP 链路失败时作为可选的无头渲染后备。

安装后,bundle 补丁会把内置 web 服务的 searchProvider 设为 free-web,fetchProvider 仍为 http,从而接管 DSH 的 web_search 工具能力。

核心功能

免 API 的搜索链

提供者在 ctx.web 注册 id 为 free-web 的 WebSearchProvider。search() 按顺序尝试:

  1. 通过 HTTPS 请求 https://www.bing.com/search?q=…,解析 li.b_algo 中的标题、链接与摘要;
  2. 同一查询加 &format=rss,按 RSS 解析;
  3. 对本机 Chrome 或 Edge 执行 chrome --headless=new --dump-dom,使用系统临时目录下的 disposable profile。

web_search 最多返回 8 条来源;HTTP 页超时 7 s、RSS 6 s、本地浏览器 22 s。若各引擎均失败,工具按 DSH 原有错误路径 fail-open,对话仍可继续。

Composer 三档联网(按会话)

输入框工具栏中,权限预设右侧有 Web off / Smart / Always 切换(界面示例文案含「🌐 Smart web」)。模式写入 %DSH_HOME%/free-web/session-modes.json(最多 500 个会话),下一步即生效。

模式 行为
Web off Host 守卫拒绝 web_search;用户提供的 URL 仍可通过 web_fetch 打开。
Smart(默认) 由模型在推理中自行决定是否搜索,可多次搜索并配合 web_fetch。
Always 每个用户回合的第一步前,Host 自动执行一次搜索(上限 15 s),将结果注入运行时上下文;不足时模型可再搜。

左侧栏搜索面板

侧栏入口 联网搜索 / Web Search 支持手动查询(Enter 提交)、引擎模式 Auto / HTTP / Chrome、引擎状态复检,以及带标题、URL、摘要的结果卡片(新标签打开)。面板请求超时 40 s。

运行环境与接口

  • 要求 DSH 0.2.1-rc.3+(README 注明在 0.2.1-rc.3、desktop profile、Windows 11 上开发测试),Host 侧 Node.js 20+(DSH 自带运行时)。
  • API 路由在 /api/dsh-free-web/ 下;Client 使用相对 URL,兼容 dsh web 与 Desktop dsh-app:// 页面。
  • 可选环境变量:DSH_FREE_WEB_CHROME 或 CHROME_PATH 指定浏览器路径;Windows / macOS / Linux 下亦会尝试常见 Chrome、Edge、Chromium 路径。

安装与启用

官方 README 要求将仓库克隆到稳定目录(profile 会指向该路径,勿删),再以本地 bundle 安装:

git clone https://github.com/skyhome000/dsh-free-web.git

GUI:Plugins → Add plugin → from directory;或命令行:

plugin_manager install_bundle target: /absolute/path/to/dsh-free-web

安装或更新后刷新 DSH 窗口一次(Ctrl+R),以加载浏览器半部。卸载 bundle 会移除补丁并恢复默认 web 服务配置。

补丁中与搜索相关的片段如下(完整内容见仓库 cordis.patch.yml):

- id: web
  name: '@deepseek-ai/dsh-web'
  config:
    searchProvider: free-web
    fetchProvider: http

当前 npm 包版本为 1.1.3,许可证 MIT(以仓库 package.json 为准)。

典型用法

  1. 完成安装并刷新界面后,在 Composer 右侧选择 Smart 或 Always,向模型提出需要最新信息的问题,观察 web_search 是否被调用。
  2. 若只希望模型读你给的链接、禁止主动搜网,切到 Web off。
  3. 打开侧栏 联网搜索 / Web Search,输入关键词做独立检索,查看 HTTP / Chrome 引擎状态与结果卡片。
  4. 本机未装 Chrome/Edge 时仍可依赖 HTTP/RSS;需要渲染后备时再安装浏览器或设置 CHROME_PATH。

适用场景与注意

适合:希望在 DSH 内免费启用联网、又不想维护搜索 API Key 的个人或小团队;需要在 Web 与 Desktop 同一套 UI 下切换 Off/Smart/Always 的场景。

注意:

  • 插件以当前 DSH 进程权限运行;安装前请自行审阅 GitHub 源码 与 MIT 许可证。
  • 搜索依赖 Bing 公开页面,页面结构变更、区域差异或限流可能导致结果不稳定;README 的 Limitations 节有进一步说明。
  • Host API 仅接受本地来源(含 dsh-app:、loopback 等);POST 须为 application/json,查询长度上限 400 字符,正文上限 64 KiB。搜索结果为外部不可信数据,与内置 web_search 标注一致。
  • SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系;插件星标等元数据以各站点当时展示为准(目录页当前为 1 star)。

结尾

dsh-free-web 把「无 Key 的 Bing 抓取 + 三档会话联网策略 + 侧栏手动搜索」收进一个 DSH bundle,适合作为 DSH「一切皆插件」生态里的联网工具选项。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜