dsh-deepseek-search:独立 Key 的 DeepSeek 网页搜索

前言

在 DeepSeek Harness 里做智能体,常见需求是「当前对话用的不是 DeepSeek,但仍要联网查资料」。Harness 自带的 web_search 往往和某个 web 搜索 provider 绑定;若再装一个会注册 searchProvider 的插件,还可能和现有配置冲突。下面介绍的插件走另一条路:用插件自己的 DeepSeek API Key 调用 DeepSeek 官方 Search 接口,同时提供左侧栏搜索页和全局工具 deepseek_search,且不接管 ctx.web 的搜索 provider。

这是什么

dsh-deepseek-search(npm 包名 @local/dsh-deepseek-search,当前版本 0.2.0,MIT 许可证)由维护者 SivanCola 发布,分类为联网工具。它把能力拆成两半:浏览器侧在左侧栏增加「DeepSeek 搜索」入口,主栏里是完整搜索页;Host 侧注册工具 deepseek_search,并对全部 agent / 任意模型可见,另提供搜索页使用的三个 HTTP 路由。搜索计费与鉴权用的是本插件解析出的 DeepSeek Key,与当前会话所用模型服务商(DeepSeek、Anthropic、OpenAI 兼容、本地模型等)无关。

核心功能

左侧栏搜索页

安装并激活后,左侧栏会出现放大镜入口(README 示例环境中为 Plugins / Schedules / Context 之后的第 4 个图标)。点开后可在主栏输入关键词、调整结果条数、开关正文抓取、查看结果卡片,并在面板中配置或查看 Key 来源(脱敏显示)。

任意模型在会话中均可调用该工具,参数如下:

参数 类型 必填 说明
query string 是 1–128 字符,支持 DeepSeek 搜索语法
count integer 否 1–50,默认 10
need_content boolean 否 为 true 时在结果中返回网页正文(更慢、体积更大)
ori_question string 否 用户原始问题,辅助理解搜索意图

query 可透传官方语法,例如 site:、-site:、排除词、"精确短语"、lang:、after: / before: 等(详见仓库 README 表格)。

返回给模型的是紧凑文本;结构化 JSON 含 results 数组,字段包括 title、url、snippet、summary、content、siteName、authority、rerankScore 等。

API Key 解析(四级回退)

每次调用重新解析,改动后下一次调用即生效,无需重启。优先级从高到低:

  1. config.apiKey(明文,仅适合调试)
  2. Harness 凭证库中的 DEEPSEEK_SEARCH_API_KEY(面板保存的独立 Key)
  3. 模型列表里已配置的 DeepSeek 官方 Key(默认开启 useOfficialKey,从 provider 目录推导凭证名,兜底 DEEPSEEK_API_KEY)
  4. 环境变量 DEEPSEEK_SEARCH_API_KEY / DEEPSEEK_API_KEY

若已在 Harness 中配置可用的官方 DeepSeek,多数情况下搜索可直接可用;若希望搜索走单独账号或额度,在面板填写独立 Key 即可。关闭自动复用官方 Key:

config:
  useOfficialKey: false

注意:自动复用仅 Key,不跟随官方 provider 的 baseURL;自定义接口地址需设置 baseUrl(默认 https://api.deepseek.com)。

插件不注册为 ctx.web 的 searchProvider,避免触发「无配置 + 多个 provider」时的模糊判定,从而尽量不干扰已有 web_search。Key 仅在 Host 侧使用,浏览器侧只看到脱敏信息;搜索请求由 Host 发起。

Host 暴露的 POST 路由(面板调用):

路径 作用
/api/dsh-deepseek-search/status 配置状态、脱敏 Key、来源、默认值
/api/dsh-deepseek-search/search 代理搜索
/api/dsh-deepseek-search/key 保存或清除凭证

安装与启用

换机或首次从 GitHub 安装,使用资料中的命令:

plugin_manager action=install_bundle target=https://github.com/SivanCola/dsh-deepseek-search

若修改了 package.json、cordis.patch.yml 或 locale,需先卸载再安装同一 bundle;仅改 index.js / client.js 时,可通过 set_bundle enabled=false 再 enabled=true 热激活。具体 remove / install 步骤见仓库 README。

可选配置写在 profile 的 cordis.patch.yml 或插件内 cordis.patch.yml,例如:

键 默认 说明
apiKey '' 明文 Key
apiKeyEnv DEEPSEEK_SEARCH_API_KEY 凭证 / 环境变量名
baseUrl https://api.deepseek.com 接口 origin
count 10 默认条数
needContent false 默认是否抓正文
timeoutMs 25000 单次超时
toolName deepseek_search 工具名

环境变量方式示例:

export DEEPSEEK_SEARCH_API_KEY=sk-xxxx

修改环境变量后需重启 DSH 进程。

典型用法

  1. 安装 bundle 并确认左侧栏出现「DeepSeek 搜索」、工具列表中有 deepseek_search。
  2. 若模型列表已有有效 DeepSeek 官方 Key,可先直接在面板试搜;否则点放大镜 → 设置 → 粘贴 sk-... 保存为独立 Key。
  3. 在任意模型的会话中,让 agent 调用 deepseek_search,传入 query;需要全文时再设 need_content: true。

面板或工具返回错误时,README 排错表列出了常见情况:401(Key 失效,会标明实际使用的是 DEEPSEEK_API_KEY 还是 DEEPSEEK_SEARCH_API_KEY)、402 余额不足、429 QPS 超限、未配置 Key 等。

适用场景与注意

适合:希望用 DeepSeek Search API 做联网、且不想改动现有 web_search provider 链路的 DSH 用户;需要在非 DeepSeek 模型会话里仍调用同一套搜索工具的场景。

注意:

  • 插件在当前 DSH 进程权限下运行;安装前请自行查看 GitHub 源码 与 MIT 许可证,确认可接受的行为与依赖。
  • 搜索与正文抓取按 DeepSeek 官方计费规则(README:每 1000 次成功请求 5 元,失败或空结果不计费);账号 Search QPS 100、Fetch QPS 25。
  • need_content 受目标站点可用性影响,可能得到空正文。
  • 社区目录 SkillHub 插件页 为独立站点展示,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-deepseek-search 用独立解析的 DeepSeek Key 接通官方 Search 接口,以「侧栏搜索页 + 全局 deepseek_search 工具」的方式提供联网能力,并刻意避开对 ctx.web search provider 的占用。进一步了解与 issue 反馈见 GitHub 仓库;目录索引见 SkillHub 页面。

  • 目录页:https://www.skillhub.cn/plugins/SivanCola/dsh-deepseek-search
  • GitHub:https://github.com/SivanCola/dsh-deepseek-search
羽毛球分组比赛记分
小程序二维码

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

Xiaoye