前言¶
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(具体计费以你所选厂商为准)。
核心功能¶
- 多引擎可选:SearXNG(可自建)、Tavily、Exa、Brave、Serper、Bing、Google CSE;表单内可用胶囊切换引擎。
- 工具面不变:
web_search名称与参数 schema 与内置一致,提示词、工具表、Agent 预设可照旧使用。 - 配置与凭证分离:引擎参数写入 profile 的 patch 层;API Key 经 DSH 凭证服务保存(默认引用各引擎约定的环境变量名,如 Brave 的
BRAVE_API_KEY),落点~/.dsh/.credentials.yaml,不进版本库。 - 兜底链:可配置主引擎失败时的回退顺序;连接测试会逐跳记录,避免「回退成功」掩盖主引擎故障。
- 桌面端配置页:插件在
client.js注册包详情、独立卡片、组件行配置等入口;保存配置后由 Loader 应用,一般无需为改配置重启(首次安装插件后仍需重启一次 Harness,配置卡片才会出现)。 - 连接测试:本地校验(引擎 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。
安装与启用¶
桌面端(推荐)
- 侧栏「插件」→「+ 添加插件」。
- 安装源填写
github:Anixuil/dsh-custom-search(须带github:前缀;只填dsh-custom-search会提示未找到,因 npm 上尚未发布该包名)。 - 安装 → 立即启用 → 重启 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 插件的开发者。
使用前请知悉
- 权限与信任:插件在当前 DSH 进程权限下运行,安装前应阅读 源码 与 MIT 许可证,自行评估风险。
- 社区属性:非 DeepSeek 官方维护;SkillHub 等为独立生态目录,与幻方无官方从属关系。
- 升级与锁定:
pnpm-lock.yaml会把 git 源 commit 钉死,不会自动跟踪默认分支新提交;要更新需卸载重装或改用本地link:安装。 - peerDependencies:插件依赖宿主提供的
@deepseek-ai/dsh-web等包,须在安装包的peerDependencies中声明,否则部分能力(如连接探针)可能静默不可用,搜索本身仍可工作。 - 配额与合规:真实连接测试会消耗所选引擎的搜索配额;各厂商 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