dsh-custom-search:用自选搜索引擎替换 DSH 内置联网检索

前言

DeepSeek Harness(DSH)向模型暴露的 web_search 工具,默认走官方提供方 @deepseek-ai/dsh-web-search-deepseek。在常见用法里,一次查询往往要占用一整轮模型调用,检索本身也会消耗会话模型的 token。若你已有 SearXNG 自建实例,或已开通 Tavily、Brave、Serper 等检索 API,更自然的做法是把「真正发请求的那一层」换成自己的后端,同时保持工具名、参数和 Agent 预设不变。

下面介绍社区插件 dsh-custom-search(维护者 Anixuil,分类:联网工具)。它在 DSH 的提供方层注册 custom-search,通过改配置即可切换 SearXNG、Tavily、Exa、Brave、Serper、Bing、Google CSE 等引擎;模型侧仍调用 web_search,schema 与官方一致。

本文所述为第三方社区插件,与 DeepSeek 官方无隶属关系,也不属于官方插件市场。生态目录见 SkillHub 插件页;源码与说明见 GitHub。

它在 DSH 里改的是哪一层

DSH 把联网能力拆成三层,本插件只替换最底层的「提供方」:

层 包 职责 本插件
工具层 @deepseek-ai/dsh-tool-web 暴露 web_search / web_fetch 不改
服务层 @deepseek-ai/dsh-web(ctx.web) 选后端、取消、错误码、maxResults 只改配置里 pin 的 provider id
提供方层 官方为 @deepseek-ai/dsh-web-search-deepseek 实际检索请求 由本插件接管

服务层通过 registerSearchProvider() 收集提供方。官方 id 为 deepseek-official,本插件注册 custom-search。因此「换搜索引擎」在配置里本质是把默认提供方指到 custom-search,无需替换任何官方文件。

接上独立检索 API 后,搜索请求不再依赖「仅官方 DeepSeek」那条通道,一般也不再为检索单独消耗会话模型的 token(具体计费以你所选厂商为准)。

核心功能

  1. 多引擎可选:SearXNG(可自建)、Tavily、Exa、Brave、Serper、Bing、Google CSE;表单内可用胶囊切换引擎。
  2. 工具面不变:web_search 名称与参数 schema 与内置一致,提示词、工具表、Agent 预设可照旧使用。
  3. 配置与凭证分离:引擎参数写入 profile 的 patch 层;API Key 经 DSH 凭证服务保存(默认引用各引擎约定的环境变量名,如 Brave 的 BRAVE_API_KEY),落点 ~/.dsh/.credentials.yaml,不进版本库。
  4. 兜底链:可配置主引擎失败时的回退顺序;连接测试会逐跳记录,避免「回退成功」掩盖主引擎故障。
  5. 桌面端配置页:插件在 client.js 注册包详情、独立卡片、组件行配置等入口;保存配置后由 Loader 应用,一般无需为改配置重启(首次安装插件后仍需重启一次 Harness,配置卡片才会出现)。
  6. 连接测试:本地校验(引擎 id、是否要 key、endpoint 合法性、兜底链拼写等)加可选的真实搜索请求(会消耗 1 次所选引擎配额)。

兼容性方面,README 写明 provider 契约按 @deepseek-ai/dsh-* 0.2.0-rc.2(DeepSeek Harness Desktop 0.2.0-rc.2)实现并做过离线契约验证;DSH 仍处于 developer preview,大版本升级后若出现 WEB_PROVIDER_* 类错误,需对照 @deepseek-ai/dsh-web 的 registerSearchProvider 与 WebRuntime.Config。

当前 package.json 版本为 0.4.3,许可证 MIT,要求 Node >= 20。

安装与启用

桌面端(推荐)

  1. 侧栏「插件」→「+ 添加插件」。
  2. 安装源填写 github:Anixuil/dsh-custom-search(须带 github: 前缀;只填 dsh-custom-search 会提示未找到,因 npm 上尚未发布该包名)。
  3. 安装 → 立即启用 → 重启 Harness(bundle 类插件不热加载)。

安装落点在 profile 目录 ~/.dsh/profiles/desktop,底层由 pnpm add 拉取 Git 源。

命令行(需单独安装 DSH CLI,桌面应用包不自带 dsh 可执行文件):

dsh plugin --profile desktop add github:Anixuil/dsh-custom-search#main

其他 profile 将 desktop 换成实际名称,例如 web 场景使用 dsh plugin --profile web add github:Anixuil/dsh-custom-search#main。

本地目录开发安装:在同一栏填仓库绝对路径,pnpm 记为 link:;改 index.js / client.js 后重启 Harness 即可生效,无需反复卸载重装。

升级:插件管理器不提供一键升级;需卸载后重新添加同一 github: 地址。命令行示例:

dsh plugin --profile desktop remove dsh-custom-search
dsh plugin --profile desktop add github:Anixuil/dsh-custom-search#main

若从 ≤0.1.0 升级,README 提示旧版 patch 可能导致面板卸载报 bundle-in-use,需按仓库「卸载」一节的手工步骤处理后再装新版本。

若 pnpm 拦截构建脚本,可在 $DSH_HOME/profiles/desktop/pnpm-workspace.yaml 的 allowBuilds 中放行 dsh-custom-search。本插件无单独构建步骤,github: 源可直接安装。

典型用法

在插件页配置

装完并重启后,在侧栏「插件」中任选入口(组合包 dsh-custom-search 详情、官方区块「自定义搜索引擎」卡片,或组件行 custom-search 的配置按钮),填写引擎相关字段并保存。需要 key 的引擎在表单中配置后,密钥写入凭证服务。

表单底部 测试连接 可先跑本地检查,再发真实搜索验证;有未保存修改时,真实请求仍使用已保存配置,界面会提示。

无界面时改 patch

在 $DSH_HOME/profiles/desktop/cordis.patch.yml 中覆盖默认值(只写要改的字段):

- id: custom-search
  name: dsh-custom-search
  config:
    engine: brave

手改后需 重启 Harness。同一 id 已存在时改原条目,勿重复添加。

服务层选用本提供方时,还需将 DSH 的搜索 provider 配置 pin 到 custom-search(具体字段以当前 Harness 的 WebRuntime.Config 与插件 cordis.patch.yml 为准;插件 README 强调「换搜索引擎在 DSH 里就是改一个字符串」指 provider id 层面的切换)。

适用场景与注意

适合谁

  • 希望 Agent 继续用 web_search,但检索走自建 SearXNG 或已购买的第三方 Search API。
  • 需要兜底链、可观测的连接测试,以及不把 API Key 写进 profile 补丁的场景。
  • 使用 DeepSeek Harness Desktop(或对应 profile)并愿意通过 GitHub 源安装社区 bundle 插件的开发者。

使用前请知悉

  1. 权限与信任:插件在当前 DSH 进程权限下运行,安装前应阅读 源码 与 MIT 许可证,自行评估风险。
  2. 社区属性:非 DeepSeek 官方维护;SkillHub 等为独立生态目录,与幻方无官方从属关系。
  3. 升级与锁定:pnpm-lock.yaml 会把 git 源 commit 钉死,不会自动跟踪默认分支新提交;要更新需卸载重装或改用本地 link: 安装。
  4. peerDependencies:插件依赖宿主提供的 @deepseek-ai/dsh-web 等包,须在安装包的 peerDependencies 中声明,否则部分能力(如连接探针)可能静默不可用,搜索本身仍可工作。
  5. 配额与合规:真实连接测试会消耗所选引擎的搜索配额;各厂商 API 使用须遵守其服务条款。

结尾

dsh-custom-search 把 DSH 联网检索的提供方层换成可配置的 SearXNG / Tavily / Exa / Brave / Serper / Bing / Google CSE,对模型仍暴露原来的 web_search。安装源使用 github:Anixuil/dsh-custom-search,启用后重启 Harness,在插件页或 cordis.patch.yml 中选定引擎并保存凭证即可。

  • 目录页:https://www.skillhub.cn/plugins/Anixuil/dsh-custom-search
  • 仓库:https://github.com/Anixuil/dsh-custom-search
羽毛球分组比赛记分
小程序二维码

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

Xiaoye