鱼皮AI导航
鱼皮AI导航
  • 主页
  • 社区
  • AI工具
  • AI知识库
  • AI提示词
  • MCP
  • Skills
  • AI学习资源
  • AI资讯
  • GitHub开源
登录/注册

dsh-search-hub

可配置的原生 web_search 后端:在 DeepSeek 官方原生搜索与智谱 GLM web_search 之间切换当前生效入口,并在设置页管理搜索入口与凭证引用。

网页浏览
访问 GitHub
文档README

dsh-search-hub

Multi-entry web search hub for DeepSeek Harness · DeepSeek Harness 联网搜索多入口管理中枢

English · 简体中文


Settings preview

English

DeepSeek Harness's built-in web search is a single fixed channel (deepseek-official, an Anthropic-compatible Messages call with the server-side web_search tool). dsh-search-hub turns that channel into a configurable hub:

  • Multiple search entries, exactly one active. Each entry = label + protocol vendor + baseURL + model + API-key env-var name. Switching is one click in the Settings page — no restart, the provider snapshots config per search.
  • Two protocol adapters:
    • anthropic — Anthropic Messages + native web_search_20250305 tool (covers DeepSeek official; ready for Kimi Coding endpoints once verified);
    • zai — Zhipu's standalone Web Search API (POST {base}/web_search): deterministic retrieval with no model turn, no tool-call discretion — every call IS a search. Works with GLM Coding Plan keys.
  • A top-level「搜索」tab in the dsh Settings dialog: card list per entry, radio-style activation, add/edit/delete with templates (DeepSeek / GLM / Kimi placeholder). Built-in entries cannot be deleted.
  • Clean fallback. The bundle patch points the web capability at the hub; remove the bundle and the composition falls back to your previous provider by itself.

Tested against

DeepSeek Harness0.1.1-rc.2 (web profile)
GLM Coding Plan (zai adapter)real searches verified against https://api.z.ai/api/paas/v4 (and the /api/coding/paas/v4 variant), structured sources returned
DeepSeek official (anthropic adapter)same wire format as the stock provider
Kimi Coding (anthropic template)template only — endpoint support for web_search_20250305 not yet probed

Install (dsh web profile)

The repo ships prebuilt artifacts under lib/, so no build toolchain is needed on the installing machine.

  1. Add the dependency and bundle row in <harness-home>/profiles/web/package.json:

    ▼
    jsonc
    复制代码
    "dependencies": { "dsh-search-hub": "git+https://github.com/Lzh3070/dsh-search-hub.git" // or a local checkout: // "dsh-search-hub": "link:D:/path/to/dsh-search-hub" }, "dsh": { "profile": { "bundles": [ // ... existing rows ... "dsh-search-hub" ] } }
  2. Install:

    ▼
    sh
    复制代码
    npx -y @deepseek-ai/dsh plugin --profile web install
  3. Restart Harness, open 设置 → 搜索, pick the active search model.

How it works

▼
text
复制代码
chat session ── web_search tool ──▶ ctx.web seam ──▶ search-hub provider │ active entry ┌───────────────┴────────────────┐ vendor: anthropic vendor: zai POST {base}/messages POST {base}/web_search tools:[web_search_20250305] { search_query, search_engine } → web_search_tool_result blocks → search_result[] items

Settings persist under the search-hub: namespace of <harness-home>/settings.yaml. Only env-var NAMES are stored (e.g. ZAI_API_KEY); actual keys stay in the credentials store (managed on the Settings → Models page). Each search snapshots the section, so edits apply to the next call without re-registering anything.

Security notes

  • Searches are plain HTTPS calls from the Harness host process to whatever baseURL you configure — treat entry config with the same care as the stock provider's base-URL override.
  • The anthropic adapter bills as a full model turn on the respective plan (server-side search runs inside a Messages call). The zai adapter is a deterministic per-call search API — no model turn — but still bills against your Zhipu/GLM quota per request.
  • Zhipu search results may arrive without URLs; entries with allowLinkless: true map them to zhipu-websearch:// placeholder URLs so titles and snippets still reach the model.

Development

▼
sh
复制代码
npm install # tsdown + typescript + pinned @deepseek-ai type deps npm run typecheck npm run build # lib/index.js (Node ESM) + lib/client.js (browser CJS) DSH_HOME=<home> node scripts/test-zai-adapter.mjs "query" # live zai adapter test

Requires Node.js ≥ 22.

License

MIT


中文

DeepSeek Harness 自带的联网搜索是单一固定通道(deepseek-official,Anthropic 兼容 Messages 请求挂服务端 web_search 工具)。dsh-search-hub 把这条通道变成可配置的搜索中枢:

  • 多条目、唯一生效:每条 = 名称 + 协议(vendor)+ baseURL + 模型名 + key 环境变量名;设置页一键切换,配置按次快照,即时生效不重启;
  • 两种协议适配器:
    • anthropic —— Anthropic Messages + 原生 web_search_20250305(覆盖 DeepSeek 官方;Kimi Coding 端点验证通过后直接可用);
    • zai —— 智谱独立 Web Search API(POST {base}/web_search):确定性检索,不消耗模型轮次、模型无权跳过——每次调用必是一次搜索。GLM Coding Plan 的 key 可直接用;
  • 设置对话框顶层「搜索」标签页:条目卡片列表、单选激活、新增(内置 DeepSeek/GLM/Kimi 模板)/编辑/删除,内置条目锁删;
  • 卸载即回落:bundle patch 把 ctx.web 的 searchProvider 接管到本插件,移除 bundle 后自动回落原通道,无需手工改配置。

已验证环境

DeepSeek Harness0.1.1-rc.2(web profile)
GLM Coding Plan(zai 适配器)已对 https://api.z.ai/api/paas/v4(及 /api/coding/paas/v4 变体)实测真实搜索,返回结构化来源
DeepSeek 官方(anthropic 适配器)与官方 provider 同 wire 格式
Kimi Coding(anthropic 模板)仅模板占位——端点对 web_search_20250305 的支持尚未探针验证

安装(dsh web profile)

仓库内含预构建产物 lib/,安装机器无需任何构建工具链。

  1. 在 <harness-home>/profiles/web/package.json 加入依赖与 bundle 行:

    ▼
    jsonc
    复制代码
    "dependencies": { "dsh-search-hub": "git+https://github.com/Lzh3070/dsh-search-hub.git" // 本地开发调试可用: // "dsh-search-hub": "link:D:/path/to/dsh-search-hub" }, "dsh": { "profile": { "bundles": [ // ...原有行... "dsh-search-hub" ] } }
  2. 安装:

    ▼
    sh
    复制代码
    npx -y @deepseek-ai/dsh plugin --profile web install
  3. 重启 Harness,打开 设置 → 搜索,选择生效的搜索模型。

工作原理

会话里的 web_search 工具经 ctx.web seam 进入本插件的统一入口,按当前生效条目分发到对应协议适配器。配置持久化在 <harness-home>/settings.yaml 的 search-hub: 命名空间下;只保存 key 的环境变量名(如 ZAI_API_KEY),明文密钥仍在凭据体系(设置 → 模型)里管理。

安全说明

  • 搜索是从宿主进程向你配置的 baseURL 发起的普通 HTTPS 请求,请像对待官方通道的地址覆盖一样谨慎填写;
  • anthropic 适配器按一整轮模型调用计费(服务端搜索跑在 Messages 请求里);zai 适配器是确定性的按次检索 API——不走模型轮次——但每次请求仍计智谱/GLM 额度;
  • 智谱结果可能不带 URL;开启 allowLinkless 的条目会映射成 zhipu-websearch:// 占位链接,标题与摘要照常传给模型。

开发

▼
sh
复制代码
npm install npm run typecheck npm run build DSH_HOME=<home> node scripts/test-zai-adapter.mjs "query" # 直调 zai 适配器真实搜索

需要 Node.js ≥ 22。

许可证

MIT

网页浏览

快捷安装

复制到终端去安装插件

dshplugin--profilewebaddgithub:Lzh3070/dsh-search-hub

温馨提示

装插件等于在本机跑第三方代码,权限与你相同,能读文件、用凭据、访问网络,工具审批管不到。请只装可信来源,并尽量锁定 commit。

站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
🔥热门工具
朱雀AI检测朱雀AI检测
朱雀AI检测助手朱雀AI检测助手
LovartLovart
老鱼简历老鱼简历
WritePass官网WritePass官网
面多多面多多
CursorCursor
星月写作星月写作
零感AI零感AI
墨得问题墨得问题
dsh 插件推荐
dsh-chrome-cdp
Chrome DevTools Protocol 插件 for DeepSeek Harness。通过 chromremote-interface 以 CDP 连接并操控 Chrome。连接带有图形界面。
dsh-webmcp
WebMCP 桥接器:让 agent 通过内置无头 Chromium,发现并调用网站按 W3C WebMCP 协议暴露的站点工具。
dsh-web-search-ollama
让 DSH 的 web_search 工具走 Ollama 联网搜索 API,复用 OLLAMA_API_KEY,无需 DeepSeek 官方 Key。
dsh-web-search-tavily
为原生 web_search 提供 Tavily 搜索后端,并在设置 → 插件中提供 API Key 管理与是否替换 DeepSeek 的开关。
dsh-web-search-zhipu
GLM(智谱)网页搜索 provider——把 web_search 后端切到智谱 Anthropic 兼容端点的服务端搜索工具,直接复用你现有的 GLM 额度或 Coding Plan,替代 DeepSeek 官方搜索通道,并内置智谱私有响应格式的翻译层。