dsh-web-search-clinepass:用当前会话模型走网关原生搜索

前言

DeepSeek Harness(DSH)里,Agent 通过 ctx.web 做联网检索时,默认会走内置供应商 @deepseek-ai/dsh-web-search-deepseek。该实现把模型固定为 deepseek-v4-flash,且只对接 DeepSeek 官方的 Anthropic 兼容端点(https://api.deepseek.com/anthropic/v1),既不跟随 Web UI 里选中的模型,也只消耗 DeepSeek 官方额度。

若你已经在「模型」页配置了 ClinePass 或其它 OpenAI 兼容网关,并希望联网搜索与主对话共用同一路由、走网关自带的供应商端搜索工具(例如 vercel:perplexity_search),就需要换一套 ctx.web 搜索供应商。下面介绍社区插件 dsh-web-search-clinepass(维护者 qujinting),它在 DSH 插件目录中归类为「联网工具」。

这是什么

dsh-web-search-clinepass 是 DSH 插件:注册 id 为 clinepass 的 ctx.web 搜索供应商,替代内置的 DeepSeek 专用实现。搜索请求发在你配置的 OpenAI 兼容网关(如 ClinePass)上,不占用 DeepSeek 官方 API key,也不把搜索回合塞进主对话上下文。

仓库:https://github.com/qujinting/dsh-web-search-clinepass
目录页:https://www.skillhub.cn/plugins/qujinting/dsh-web-search-clinepass

当前 package 版本为 0.3.2,许可证 MIT,运行环境要求 Node ≥ 22。

核心功能

插件安装后会通过 bundle 里的 cordis.patch.yml 做两件事:把 web.searchProvider 设为 clinepass,并插入组件 web-search-clinepass。仅「注册新供应商」不够——@deepseek-ai/dsh-base 默认把 searchProvider 写死为 deepseek-official,必须靠 patch 显式切换。

一次搜索的大致流程如下:

  1. 从当前会话请求头读取这一步实际使用的 provider / model;
  2. 从 llm-pi-ai 配置解析该路由的 baseURL、apiKeyEnv(与 Web「模型」页一致);
  3. 向 {baseURL}/chat/completions 发起 OpenAI 兼容请求,在 tools 中携带网关的供应商端搜索工具(默认可用 vercel:perplexity_search 等四种);
  4. 解析模型回答末尾 Sources: 段落,转成 ctx.web 需要的来源列表。

内置 web-search-deepseek 仍会保留在系统中,只是不再是默认选中项;需要时可改回官方供应商。

安装与启用

按你使用的 dsh 版本选一条路径。两条路径安装的是同一个 bundle,差别在于谁改写 profile 清单,以及装完后配置入口在哪。安装后需重启 dsh 才会生效(bundle 在启动时组装)。可用 dsh --profile web --dump-config 查看拼装结果,不会启动服务。

dsh 0.1.7 及以后(含 0.2.0,内置插件管理器)

从 npm 安装(profile 名按你的环境替换,桌面版常用 desktop):

dsh plugin --profile web add dsh-web-search-clinepass

从本地 checkout 安装(示例路径来自 README,请换成你的目录):

dsh plugin --profile web add file:D:/project/qujinting/dsh-plugin/web-search

补充说明(均来自 README):

  • 0.2.0-rc.2 起 dsh 命令随桌面版打包;首次使用可在菜单栏点 「Manage dsh command」 加入 PATH。
  • 插件管理器会通过 pnpm 把包装进 <DSH_HOME>/profiles/web/node_modules,并把包名追加到该 profile 的 dsh.profile.bundles(安装前会备份 package.json)。
  • 配置入口:左侧「插件」→ 已安装 → dsh-web-search-clinepass → 组件行 web-search-clinepass 的「配置」。
  • 卸载:dsh plugin --profile web remove dsh-web-search-clinepass。

dsh 0.1.5

在插件目录执行:

node install.mjs --profile web
dsh --profile web --dump-config
dsh web

install.mjs 会在 <DSH_HOME>/profiles/web/node_modules/dsh-web-search-clinepass 建立目录联接(junction)指向插件目录,并更新 dsh.profile.bundles。开发时改仓库代码后刷新浏览器或重启 host 即可,无需重复 add。配置在 设置 → 插件 → 插件配置,写入 <DSH_HOME>/settings.yaml 的 web-search-clinepass: 段。卸载:node install.mjs --profile web --uninstall。

配置要点

设置命名空间:web-search-clinepass。多数场景无需改动:当会话模型走 clinepass 等 OpenAI 兼容网关时,端点与凭据从 llm-pi-ai.providers.<route> 自动解析(dsh 0.1.5 用 settings.get,0.1.7+ 用 settings.describe())。

字段 默认 说明
enabled true 关闭后供应商报告为不可用
tool vercel:perplexity_search 网关侧搜索工具 id,共四种可选
provider / model 空 非空则钉死路由,不再跟随 UI
baseURL / api / apiKeyEnv / apiKey 空 非空则钉死端点与凭据
timeoutMs 90000 单次搜索超时
maxTokens 8192 搜索回合输出上限;过小可能截断末尾 Sources:
maxSources 10 返回来源上限

网关 Chat Completions 文档列出的四种服务端搜索工具均可通过改 tool 切换;具体单价与必填参数见仓库 README「工具选择与花费」一节。

dsh 0.1.7+ 上曾出现的不可用错误

0.3.0 在 0.1.7 上若仍只用 settings.get 读 llm-pi-ai,会导致 available() 恒为 false,搜索报错:configured web provider "clinepass" is registered but unavailable。0.3.1 起已改为同时支持 describe()。若暂时无法升级插件,可在 profile 的 cordis.patch.yml 里临时钉死 web-search-clinepass 的 provider、model、baseURL、apiKeyEnv 等(见 README 示例);升到 0.3.1 后删除该段即可恢复跟随会话模型。

典型用法

  1. 在 DSH Web「模型」页配置好 OpenAI 兼容网关(如 ClinePass)及环境变量(如 CLINEPASS_API_KEY)。
  2. 按上文命令把 dsh-web-search-clinepass 装进对应 profile,重启 dsh。
  3. 在 Agent 或支持 ctx.web 的流程中触发联网搜索;供应商应已为 clinepass,搜索走当前会话模型与所选 tool。

无需单独写调用代码:插件替换的是 Harness 内部的 web 搜索供应商,行为与内置搜索工具链接一致,只是后端路由与计费账户换成你的网关。

适用场景与注意

适合谁: 已在 DSH 里用 ClinePass、Vercel AI Gateway 等 OpenAI 兼容网关作为主模型,希望联网搜索与主对话同路由、用网关原生搜索工具,并避免固定 DeepSeek 官方 flash 模型的团队或个人开发者。

权限与安全: 插件在 当前 dsh 进程权限 下运行,会读取 llm-pi-ai 路由与环境变量中的 API 配置。安装前应阅读仓库源码与 MIT 许可证,确认符合你的合规要求。社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,本文介绍的是第三方维护的联网工具类插件。

版本兼容: 同一 npm 包同时适配 dsh 0.1.5 与 0.1.7+(含 0.2.0-rc.2 行为与 0.1.7 设置模型一致);设置落盘位置因版本不同而异(settings.yaml 与 profile 下 cordis.patch.yml),以 README 对照表为准。

结尾

dsh-web-search-clinepass 把 ctx.web 从「DeepSeek 官方固定模型」改成「当前会话模型 + 网关供应商端搜索工具」,并通过 bundle patch 正确切换默认 searchProvider。若你正在 SkillHub 或 GitHub 上选型 DSH 联网插件,可从这里入手:

羽毛球分组比赛记分
小程序二维码

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

小夜