前言¶
DeepSeek Harness(DSH)的 web profile 会提供 ctx.web 这个 web search seam。DSH 的理念是“一切皆插件”;在这个插件生态里,dsh-web-search-searxng 是一个 standalone SearXNG-backed web search provider。
它解决的是一个很具体的问题:如果你已经有自托管 SearXNG,并希望 DSH 的 web_search 调用自己的 SearXNG 实例,而不是依赖某个外部 API,可以直接安装这个插件。
这是什么¶
dsh-web-search-searxng 是一个可安装的 DSH 插件包,面向 DeepSeek Harness 的 web profile(ctx.web)。
仓库地址是 https://github.com/d3cker/dsh-web-search-searxng。package.json 中声明:
name:dsh-web-search-searxngversion:0.2.0license:MITtype:module
它是 DSH 插件包,不是 DSH 核心功能的一部分。
核心能力¶
下面这些能力来自 README 和 package.json 的可核对信息:
- 为
ctx.web提供独立的 SearXNG 后端 web search provider。 - 纯 ESM,无构建步骤。
- 以 bundle 方式发布;一条
dsh plugin命令即可安装并自动激活。 - 安装后会把 web seam 切换到
searxngprovider,并挂载 plugin row。 - 支持通过
SEARXNG_BASE_URL配置 SearXNG 实例地址,默认http://localhost:8888。 - 支持可选配置
SEARXNG_NUM_RESULTS和SEARXNG_API_KEY。 - 暴露
web-search-searxngsettings section;Settings 卡片需要 harness 侧改动后才能使用。 - 使用
vitest运行测试,README 记载 20 tests。
安装与启用¶
README 给出的安装命令是:
dsh plugin --profile web add /path/to/dsh-web-search-searxng
其中 /path/to/dsh-web-search-searxng 是占位路径,替换成本地插件目录。
执行后,插件会进入 DSH 的 web profile 并自动激活。README 描述的结果是:web seam 切换到 searxng provider,同时挂载 plugin row。
配置 SearXNG 实例¶
最常用的是设置环境变量:
export SEARXNG_BASE_URL=http://192.168.30.74:8888
然后在该 shell 中启动或重启:
dsh web
SEARXNG_BASE_URL 默认值是 http://localhost:8888。
如果 SearXNG 实例需要 API key,可设置:
export SEARXNG_API_KEY=your-key
SEARXNG_API_KEY 是可选配置,只用于需要 key 的实例。
SEARXNG_NUM_RESULTS 也是可选配置项,用于配置结果数。
如果不想用环境变量,README 的替代做法是编辑 bundle 中的 cordis.patch.yml,修改 baseURL 行的默认值:
baseURL: !!js process.env.SEARXNG_BASE_URL ?? 'http://localhost:8888'
把 http://localhost:8888 改成实际实例地址。
验证搜索¶
README 给出的验证方式是调用:
web_search("postgresql vs mysql")
如果配置正确,应返回来自你的 SearXNG 实例的聚合结果。
Settings 卡片(可选)¶
插件会暴露 web-search-searxng settings section。若要在 DSH 的 Settings → Plugins 中编辑这些字段,需要 harness 侧改动。
README 列出的改动包括:
1、暴露 web-search-searxng namespace。README 给出的位置是 packages/host/apiproxy/src/api-proxy.ts,在 WEB_SETTINGS_NAMESPACES 中加入该 namespace:
const WEB_SETTINGS_NAMESPACES = [
'agent-loop', 'shell', 'locale', 'permission', 'ui-conversation', 'ui-theme',
'web-search-deepseek', 'web-search-searxng',
] as const
2、在 packages/client/ui-settings-plugins 中渲染卡片。README 提到增加 SearxngCard / SearxngCardController,在 index.ts 的 settings.plugin.item slot 注册,并添加 searxng* locale keys。
之后需要重新构建 web 产物并重启 GUI。README 给出的命令:
pnpm run build:lib:host
pnpm run build:lib:client
pnpm run build:web
没有这些改动时,搜索仍可用;配置只能通过环境变量或 cordis.patch.yml 完成。
适用场景与注意¶
适合:
- 已有自托管 SearXNG,希望 DSH 的
web_search走自己的实例。 - 想要纯 ESM、无构建步骤的插件包。
- 习惯通过环境变量或
cordis.patch.yml做配置。
注意:
- 插件会以当前
dsh进程权限运行。安装前应检查源码、package.json、依赖和许可证。 package.json声明license为MIT,version为0.2.0。SEARXNG_API_KEY是可选配置;仅适用于需要 key 的 SearXNG 实例。- Settings 卡片不是插件单独提供的;需要 harness 侧改动、重新构建并重启 GUI。
链接¶
GitHub:https://github.com/d3cker/dsh-web-search-searxng