DeepSeek Harness (DSH) 的原生搜索工具 (web_search) 默认依赖上游服务提供的 Anthropic web_search_20250305 工具定义。而 9router 作为 OpenAI 兼容网关,通常不直接提供服务端搜索能力,而是将工具定义传递给模型。这个插件解决了这个冲突,将 DSH 的原生 web_search 和 web_fetch 工具直接挂载到 9router 的网关端点上,使其能够利用 9router 提供的搜索与抓取能力。
插件概览¶
- 名称:dsh-9router-web-search
- 作者:lordraiden
- 类别:联网工具
- 许可证:MIT
核心能力¶
- 端点路由:将 DSH 的
web_search路由至 9router 的/v1/search,将web_fetch路由至/v1/web/fetch。 - 原生设置面板:在 DSH 中提供原生的设置卡片,用于配置 API Key、Base URL、模型、超时时间及限制参数。
- 零配置 Wiring:通过 bundle patch 自动将
web.searchProvider和web.fetchProvider针定为 9router,无需手动配置。 - 凭证感知:支持从 DSH 凭证服务读取
NINE_ROUTER_API_KEY,API Key 为可选,无 Key 的本地实例也可直接运行。 - 纯 ESM 实现:无需构建步骤,即插即用。
安装与启用¶
- 安装插件
使用 DSH 的 CLI 安装该插件到web配置文件。
npx @deepseek-ai/dsh plugin --profile web add github:lordraiden/dsh-9router-web-search
如需固定版本(例如 `v0.2.3`),可在命令后追加标签:
npx @deepseek-ai/dsh plugin --profile web add github:lordraiden/dsh-9router-web-search#v0.2.3
-
配置网关地址
安装完成后,在 DSH 的设置面板中找到该插件卡片,设置baseURL指向你的 9router 网关地址。此地址必须为http或https。若未配置,提供者将报告不可用。 -
重启与刷新
重启 Harness,并在浏览器中执行硬刷新以加载新的插件选项。
配置说明¶
插件提供了若干配置项,位于 DSH 的设置面板中:
- baseURL:9router 兼容网关的基础地址。
- searchModel / fetchModel:分别指定搜索和抓取端点使用的模型名称(默认为
search-combo/fetch-combo)。 - searchType:发送给搜索端点的搜索类型(默认为
web)。 - timeoutMs:统一的请求超时时间(默认 30000ms)。
- apiKey:直接填写的 API Key(可选),用于无凭证环境。
- apiKeyEnv:引用 DSH 凭证服务中的密钥名称(默认为
NINE_ROUTER_API_KEY)。
注意事项¶
- DSH 版本要求:该插件依赖 DSH 版本
>= 0.1.7-rc.1。 - 网关依赖:必须部署一个 9router 兼容网关,插件不支持隐式回退端点。
- 安全防护:
web_fetch功能将 URL 提取和 SSRF 防护完全委托给 9router 服务器处理,插件自身不实现本地 SSRF 策略。请确保运行经过安全补丁的 9router 版本。
总结¶
dsh-9router-web-search 是一套为 9router 网关设计的 DSH 适配层。它绕过了 DSH 默认的搜索工具要求,通过原生工具定义直接调用 9router 的 /v1/search 和 /v1/web/fetch 端点,实现了在 OpenAI 兼容网关环境下的网络搜索与获取能力。