dsh-web-search-switch:在设置页切换 web_search 与 web_fetch 提供方

前言

DeepSeek Harness(DSH)里,模型通过 web_search 查网页、通过 web_fetch 拉取单个 URL 的正文。默认情况下,web_search 走 DeepSeek 官方搜索,需要 DEEPSEEK_API_KEY 或 DeepSeek 账号。社区里也有只把搜索改到 Ollama 的插件,但通常要手改 cordis.patch.yml、设全局环境变量、禁用官方搜索并重启,且很难在多种搜索源之间来回切换。

下面介绍维护者 xiaokang6 发布的 dsh-web-search-switch(分类:联网工具)。它把搜索源和抓取源收进 DSH 设置页的一个入口,保存后下一次调用即生效,多数改动无需重启。

这是什么

dsh-web-search-switch 是 DSH 社区插件,仓库 xiaokang6/dsh-web-search-switch,当前 package 版本为 0.2.0,许可证 MIT。

一句话定位:在桌面端或 Web 端的设置页里,一键切换 web_search 的搜索源(DeepSeek 官方、Ollama、Tavily、Brave、Exa、Serper、博查、智谱、SearXNG 等)以及 web_fetch 的抓取源(内置本地 HTTP、Ollama Web Fetch、DeepSeek Fetch API)。

插件目录页:skillhub.cn/plugins/xiaokang6/dsh-web-search-switch。SkillHub 等社区目录与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,安装前建议自行查看源码与许可证。插件以当前 DSH 进程权限运行。

它解决什么问题

与「只改 Ollama、靠 YAML 和环境变量切换」的做法相比,本插件侧重这几件事:

  • 一个页面切换:侧边栏「插件 → 内置插件配置 → 搜索源」,或「设置 → 内置插件 → 搜索源」里选择并保存,下一次搜索立即生效,无需重启(仅首次安装插件后需要重启 DSH)。
  • 官方与第三方并存:可随时切回 DeepSeek 官方(Messages 搜索或新版搜索 API),不必卸载插件。
  • 密钥不落配置文件:API Key 经 DSH 凭据服务写入 .credentials.yaml;设置文件里只有凭据引用,页面只显示「已配置 / 未配置」。
  • 不会静默回落:选中的搜索源缺少密钥时,web_search 返回明确错误,说明缺哪个 Key、去哪里配置。

支持的搜索源与抓取源

设置页选项 Provider id 默认凭据引用 默认端点
DeepSeek 官方 · Messages 搜索 deepseek-official DEEPSEEK_API_KEY(或 DeepSeek 账号登录) 内置
DeepSeek 官方 · 新版搜索 API deepseek-search-api DEEPSEEK_API_KEY 内置
Ollama Web Search search-ollama OLLAMA_API_KEY https://ollama.com/api/web_search
Tavily search-tavily TAVILY_API_KEY https://api.tavily.com/search
Brave Search search-brave BRAVE_API_KEY https://api.search.brave.com/res/v1/web/search
Exa search-exa EXA_API_KEY https://api.exa.ai/search
Serper(Google) search-serper SERPER_API_KEY https://google.serper.dev/search
博查 Bocha search-bocha BOCHA_API_KEY https://api.bochaai.com/v1/web-search
智谱 Web Search search-zhipu ZHIPU_API_KEY https://open.bigmodel.cn/api/paas/v4/web_search
SearXNG(自建) search-searxng SEARXNG_API_KEY(可选) 你的实例地址 + /search

web_fetch

设置页选项 Provider id 默认凭据引用 默认端点
内置 HTTP 抓取(本地) http 不需要 内置
Ollama Web Fetch fetch-ollama OLLAMA_API_KEY https://ollama.com/api/web_fetch
DeepSeek 官方 · Fetch API deepseek-fetch-api DeepSeek 搜索凭据引用 内置

内置 http 在本地抓取单个 URL 并转成文本,零密钥。fetch-ollama 与 Ollama 搜索共用 OLLAMA_API_KEY。设置页里的「启用新版 Web 搜索 API」开关会同时改写 searchProvider 和 fetchProvider;若要「Ollama 搜索 + 内置抓取」这类组合,应在本页单独选抓取源,而不是只依赖该开关。

安装与启用

先把 <profile> 换成你的 profile 目录:桌面端一般为 %DSH_HOME%\profiles\desktop(默认 C:\Users\<你>\.dsh\profiles\desktop),Web 端为 dsh web 使用的 profile。

方式一:从 GitHub 安装

在 profile 目录执行:

cd <profile>
pnpm add github:xiaokang6/dsh-web-search-switch

再把 dsh-web-search-switch 加入 profile package.json 的 dsh.profile.bundles:

"dsh": { "profile": { "bundles": ["...原有 bundle...", "dsh-web-search-switch"] } }

也可以在 DSH 插件页使用「添加插件」,填写仓库地址,由插件管理器完成安装与启用。

  1. 在仓库根目录执行(将 <profile> 换成实际路径):
node scripts/install.mjs --profile <profile>

脚本会写入 package.json 的 dependencies(link: 绝对路径)和 dsh.profile.bundles。加 --dry-run 只检查不写入。

  1. 安装依赖:
cd <profile>
pnpm install

重启

安装完成后重启 DeepSeek Harness。之后在侧边栏「插件」的「内置插件配置」里会出现 搜索源 卡片。之后切换搜索源、改密钥、改结果数在设置页保存即可,一般不必再重启。

典型用法

  1. 打开「插件 → 内置插件配置 → 搜索源」(或「设置 → 内置插件 → 搜索源」)。
  2. 选中一个搜索源;第三方服务会显示 API Key 输入框,粘贴密钥后保存。
  3. 在同一页「抓取提供方」中选择 web_fetch 使用的服务。
  4. 点击「保存」。页面顶部「当前生效」会更新,下一次 web_search / web_fetch 使用新提供方。
  5. 切回官方:选「DeepSeek 官方 · Messages 搜索」→ 保存。

高级设置(节选):

字段 默认 说明
每次结果数 5 1–20
超时(毫秒) 20000 5000–120000
接口地址 各服务默认值 SearXNG 必填实例地址;留空保存恢复默认

每个第三方搜索源的凭据引用名也可在 profile 的 cordis.patch.yml 里为 web-search-switch 行配置 ollamaApiKeyEnv 等字段;设置页会按新引用名读写密钥。

工作原理(简要)

宿主侧 lib/index.js 在 ctx.web 上注册 8 个带 search- 前缀的搜索 provider 和抓取 provider fetch-ollama,避免与内置 provider 及 dsh-web-search-ollama 的 ollama id 冲突。设置页把选中 id 写入 web 条目的 searchProvider / fetchProvider,由 config-editor 立即应用。浏览器侧 lib/client.js 注册到 plugins.item 与 settings.plugins.tab,只依赖平台内置的 react。

与 dsh-web-search-ollama 的关系:后者仍可装桌面端,但只能靠 YAML 与环境变量切换 Ollama。本插件提供同类 Ollama 接入并加上设置页多源切换;两者请不要同时安装(设置页会出现两个 Ollama 选项)。若曾按旧插件 README 改过 searchProvider: ollama 或 DSH_WEB_SEARCH_PROVIDER,装好本插件后应删掉这些覆盖,让设置页成为唯一入口。

排错与适用注意

现象 处理
保存后 WEB_PROVIDER_CONFIGURED_MISSING 确认插件已启用、bundle 含 dsh-web-search-switch,必要时重启
报未配置 XXX_API_KEY 在搜索源页填入密钥并保存,或切回官方
SearXNG 需要实例地址 高级设置填 https://searx.example.com(不要带 /search)
Ollama 却报 /v1/search 404 勿把官方「新版 Web 搜索 API」地址填成 https://ollama.com/v1;搜索应走「搜索源 → Ollama」
看不到「搜索源」卡片 确认已安装且开关为开;首次安装需重启

适合需要在同一套 DSH profile 里频繁对比官方搜索与多家第三方 API、或自建 SearXNG 的智能体开发者。不适合期望零配置即用的场景:除内置 http 抓取外,多数搜索源需要各自的有效 API Key。

结尾

dsh-web-search-switch 把 DSH 的联网检索从「改配置文件 + 重启」收成设置页里的搜索源与抓取源选项,密钥走凭据服务,缺 Key 时错误信息可读。进一步了解可访问 插件目录页 与 GitHub 仓库。

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

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

Xiaoye