dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
把 dsh 的网页搜索与页面抓取改走本机 9router 服务。模型看到的工具、参数与结果格式保持不变。
9router-web-search9router(搜索)、9router-fetch(抓取)1.1.10.2.0-rc.2 及以上;已在 0.2.1-rc.2 / 0.2.1-rc.3 验证web_search → 9router POST /v1/searchweb_fetch → 9router POST /v1/web/fetchdsh plugin add github:yifabunemgshoushi-oss/dsh-9router-web-search插件自带 dsh.bundle.patch,安装时 dsh 会自动:
web 的 searchProvider / fetchProvider 指向 9router / 9router-fetch。不需要手动改 profile。安装后重启一次 dsh,插件设置页才会出现(设置面板在启动时加载)。
0.2.1 起,对已安装包再次安装会返回 already-installed。更新步骤:
dsh plugin add ...;在插件页移除即可。本插件的 bundle 与补丁层会一起清理,web 回落到 dsh 默认 provider。
如果之前手动在 profile 用户层里写过web的searchProvider: 9router,卸载后请一并删除;否则web会指向未注册的 provider,搜索/抓取时报WEB_PROVIDER_CONFIGURED_MISSING。
http://localhost:20128),确认搜索/抓取 combo 可用。NINEROUTER_API_KEY 环境变量。http://localhost:20128,不要带 /v1)。/v1/search、/v1/web/fetch 被调用。字段 · 默认 · 说明 enabled · true · 是否调用 9router。关闭后不再请求 9router,改走插件内置回退(需 fallbackToBuiltin 也为开) baseUrl · http://localhost:20128 · 9router 根地址。不要带 `/v1`,插件自己拼 /v1/search、/v1/web/fetch apiKey · 空 · 9router API Key。在设置页填写时存入 credentials 域,不写入设置文件 apiKeyEnv · NINEROUTER_API_KEY · 密钥引用名;apiKey 为空时按此名去 credentials / 启动环境变量解析 searchModel · search-combo · 搜索使用的 9router 模型/路由 fetchModel · fetch-combo · 抓取使用的 9router 模型/路由 searchType · web · 传给 /v1/search 的 search_type:web 或 news timeoutMs · 60000 · 单次搜索或抓取的最长等待时间(毫秒) fallbackToBuiltin · true · 9router 调用失败时,是否改用内置回退重试
按以下优先级解析,任选一种:
/.credentials.yaml 的 refs),不落设置文件。NINEROUTER_API_KEY,或把 apiKeyEnv 改成你实际使用的变量名。config 是整段替换,必须重述其它字段。web:通用网页索引,默认值。news:新闻/时效优先。9router 的搜索接口还支持 country、language、time_range、offset 等参数,但 dsh 的 web 接缝只向下传 query 与 maxResults,因此本插件未暴露这些字段。填入不支持的值不会报错,9router 会静默退回默认。
开关 · 位置 · 作用 「启用 9router 提供方」 · 插件 → 9Router 网页搜索 · 是否调用 9router;关闭后走插件内置回退(如果回退也开) 「启用新版 Web 搜索 API」 · 插件 → 网页搜索(dsh 内置页) · 切换 web 的 provider 到 DeepSeek 官方 Messages / Search API
开启本插件时,插件会自动把 web 的 provider 写回 9router / 9router-fetch。因此在内置「网页搜索」页拨动「启用新版 Web 搜索 API」并保存后,开关会自动弹回 OFF——这是预期行为,不是故障。要使用 DeepSeek 官方 Search/Fetch API,请先关闭本插件。
本插件开关 · web 当前选择 · 实际执行 开 · 任意(插件会自动写回 9router) · 9router;失败且回退开时使用插件内置回退 关 · 9router · 插件内置回退(回退开)或直接报错(回退关),不请求 9router 关 · dsh 内置 / 官方 API · 完全由 dsh 内置 provider 执行,插件不参与
例外:如果 profile 的其他补丁层强制覆盖了 web 行,插件无法改回;日志会提示。
触发条件:
enabled = false 且 fallbackToBuiltin = true;或fallbackToBuiltin = true。能力 · 回退实现 抓取 · 匿名 HTTP GET,按 content-type 判定 html / text;非 2xx 作为正常结果返回 搜索 · DeepSeek Messages 原生搜索(web_search_20250305),需要 DEEPSEEK_API_KEY;没有 key 时报 WEB_PROVIDER_CREDENTIAL_MISSING
enabled = false 且 fallbackToBuiltin = false 时,搜索/抓取直接报错,不会请求 9router。9router 与回退都失败时,错误信息会同时保留两边的失败原因。
通常是 profile 的 cordis.patch.yml 里 9router-web-search 出现了两次:一次在 insert: 列表,一次是顶层 - id: 行。宿主的配置校验会用第一条同 id 行做生效值判断,于是误报:
Configuration for "9router-web-search" is overridden by a home patch or command-line overlay处理:删除 insert: 里的那条,保留顶层行(apiKey / enabled 等实际配置),重启或让 profile 配置重载。不要手动给插件写 insert: 行,交给插件管理器。
插件开启时该开关会被自动改回 OFF,见上文「两个开关的区别」。要使用官方 API,先关闭 9router 插件。
WEB_PROVIDER_CREDENTIAL_MISSINGNINEROUTER_API_KEY / apiKeyEnv 指向的环境变量。DEEPSEEK_API_KEY。WEB_PROVIDER_CONFIGURED_MISSINGweb 指向了未注册的 provider。常见原因:
searchProvider: 9router;web-deepseek-api 加了 disabled: true,而用户层已保存 searchProvider: deepseek-search-api。检查并删掉对应的用户层覆盖,或在插件页重新启用插件。
确认 9router 正在运行、baseUrl 端口正确、API Key 有效,并且 9router 的搜索/抓取 combo 本身可用。默认端口是 20128。
重启一次 dsh。安装时后端会热加载,但设置面板需要重启 dsh 后才会出现。
0.2.0-rc.2 及以上;已在 0.2.1-rc.2、0.2.1-rc.3 验证。@deepseek-ai/* 包,不需要自带 node_modules。/v1/search 与 /v1/web/fetch。源码结构、link 挂载、实现细节与测试命令见 DEVELOPMENT.md。
MIT