🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

搜索增强 Mr-remon219/dsh-search-boost

DeepSeek Harnessv0.1.3
Mr-remon21981 天前有提交已提供中文文档扫描:含敏感能力

给 dsh 加装搜索增强,让模型搜得更猛。

35.6/100
综合分
14
GitHub 星标
190
npm 周下载
—/5
用户评分

数据截至 2026/9/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-search-boost
npm 源 · dsh-search-boost 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么[目录]—
dsh 原生插件 · search
暂无时间戳·判据 →
装得上吗[实装验证]—
曾在 dsh 0.2.1-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.2-rc.1,本站尚未在新版下复验
L4 · 真实安装等级说明 →
数据截至 2026/10/23·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/07·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 81 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-search-boost @ 0.1.3
✓Node 引擎要求 >=22.13 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/31 14:18:13

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 36 处,展示前 36 条)
  • 发起网络请求
    index.js:221
    async fetch(request, signal) {
  • 读取本地文件
    lib/engines.js:29
    const parsed = JSON.parse(fs.readFileSync(file, 'utf8'))
  • 读取密钥环境变量
    lib/engines.js:35
    if (!keys.tavily && process.env.TAVILY_API_KEY) keys.tavily = process.env.TAVILY_API_KEY.trim()
  • 读取密钥环境变量
    lib/engines.js:36
    if (!keys.exa && process.env.EXA_API_KEY) keys.exa = process.env.EXA_API_KEY.trim()
  • 读取密钥环境变量
    lib/engines.js:37
    if (!keys.brave && process.env.BRAVE_API_KEY) keys.brave = process.env.BRAVE_API_KEY.trim()
  • 发起网络请求
    lib/engines.js:71
    return fetch(url, { ...init, agent: ipv4Agent })
  • 读取本地文件
    lib/engines.js:83
    fs.statSync(path.join(dir, bin + e))
  • 执行外部命令固定命令
    lib/engines.js:135
    execFile('agy', args, { timeout: timeoutMs, signal, maxBuffer: 8 * 1024 * 1024, windowsHide: true }, (err, stdout, stderr) => {
  • 请求外部主机api.tavily.com
    lib/engines.js:337
    const res = await fetch('https://api.tavily.com/search', {
  • 发起网络请求
    lib/engines.js:337
    const res = await fetch('https://api.tavily.com/search', {
  • 发起网络请求
    lib/engines.js:362
    const res = await fetch(url, {
  • 请求外部主机api.exa.ai
    lib/engines.js:386
    const res = await fetch('https://api.exa.ai/search', {
  • 发起网络请求
    lib/engines.js:386
    const res = await fetch('https://api.exa.ai/search', {
  • 请求外部主机r.jina.ai
    lib/fetch.js:101
    const res = await fetch(`https://r.jina.ai/${encodeURIComponent(target)}`, {
  • 发起网络请求
    lib/fetch.js:101
    const res = await fetch(`https://r.jina.ai/${encodeURIComponent(target)}`, {
  • 发起网络请求
    lib/ssrf.js:150
    const res = await fetch(current, { headers, signal: combined, redirect: 'manual' })
  • 读取本地文件
    lib/xsearch.js:23
    const cache = JSON.parse(fs.readFileSync(MODELS_CACHE_FILE, 'utf8'))
  • 读取密钥环境变量
    lib/xsearch.js:42
    const envKey = process.env.XAI_API_KEY
  • 读取密钥环境变量
    lib/xsearch.js:300
    const envKey = process.env.XAI_API_KEY
  • 发起网络请求
    lib/xsearch.js:356
    res = await fetch(`${baseUrl}/responses`, {
  • 发起网络请求
    lib/xfallback.js:42
    return fetch(url, { ...init, agent: ipv4Agent })
  • 读取本地文件
    lib/xfallback.js:136
    const cached = JSON.parse(fs.readFileSync(GUEST_CACHE_FILE, 'utf8'))
  • 删除本地文件
    lib/xfallback.js:158
    fs.unlinkSync(GUEST_CACHE_FILE)
  • 读取本地文件
    lib/xauth.js:27
    return JSON.parse(fs.readFileSync(file, 'utf8'))
  • 写入本地文件
    lib/xauth.js:36
    fs.mkdirSync(dir, { recursive: true })
  • 写入本地文件
    lib/xauth.js:38
    fs.writeFileSync(tmp, JSON.stringify(value, null, 2), 'utf8')
  • 写入本地文件
    lib/xauth.js:39
    fs.renameSync(tmp, file)
  • 删除本地文件
    lib/xauth.js:93
    fs.unlinkSync(piAuthPath())
  • 读取密钥环境变量
    lib/xauth.js:185
    const envKey = process.env.XAI_API_KEY
  • 读取密钥环境变量
    lib/xauth.js:198
    const envKey = process.env.XAI_API_KEY
  • 发起网络请求
    lib/xauth.js:241
    res = await fetch(tokenEndpoint, {
  • 读取本地文件
    lib/layer.js:31
    const raw = JSON.parse(fs.readFileSync(LAYER_STATE_FILE, 'utf8'))
  • 写入本地文件
    lib/layer.js:47
    fs.mkdirSync(dir, { recursive: true })
  • 写入本地文件
    lib/layer.js:49
    fs.writeFileSync(tmp, JSON.stringify({ layer }, null, 2), 'utf8')
  • 写入本地文件
    lib/layer.js:50
    fs.renameSync(tmp, LAYER_STATE_FILE)
  • 发起网络请求
    lib/exa-free.js:29
    resp = await fetch(EXA_MCP_URL, {
扫描于 2026/11/7(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
涉及外部主机:api.tavily.com、api.exa.ai、r.jina.ai

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
v0.1.32026-08-18
· v0.1.3 — 修复 bug 并加固 x_search · fetch_page · 为 Jina reader 请求编码目标 URL(查询串不再破坏 reader 路径) · 本地回退也失败时,跳过缓存过短的正文(<80 字符) · 空 focus 匹配现在报告 word_count=0 并设置 focusMiss · fusion · 从 medium 层级移除 antigravity(与 simple 层级同一策略) · complex 层级把慢速命令行分支限制在 12s,避免 Promise.all 被 agy 的完整超时拖住 · x_search · 官方路径对齐本地 Grok Build 的传输格式(参考 ~/.grok) · 缓存键包含层级 + 认证指纹;在 /web_change、/x-login、/x-logout 时失效 · 用户模式使用 salvageJsonForKind;parseFinalMessage 只取最后一条 Grok 输出消息 · 从模型输出中抢救顶层 JSON 数组 · v0.1.2 — 免费层引擎池(也在本次标签中) · 实测免费层:Bing + DuckDuckGo + Yahoo + Exa MCP(exa-free)——全部免密钥 · Yahoo HTML 抓取,强制走 IPv4 · 更新 README / README_zh 文档 · 安装 dsh plugin --profile web add dsh-search-boost@0.1.3 npm install dsh-search-boost@0.1.3 · 测试 72/72 单元测试通过。
v0.1.12026-08-17
· 修复 · /web_change show — 修复了「engines is not defined」ReferenceError · 会话中途重载密钥 — dumpEngines() 每次搜索时从磁盘/环境变量重新加载 API 密钥 · 缓存键 — fetch_page 规范化 URL(去掉末尾斜杠);x_search 纳入 handle 过滤条件 · deep_research 层 — 把当前生效的 free/api 层传入融合 · search_stats — 通过 available() 报告真实引擎可用性,并显示缓存大小 · 改进 · 截断准确性 — 仅当上限之外还有更多符合条件的结果时,才置 truncated 标记 · web_search 摘要 — 返回全部来源,不再只给前 3 条 · 缓存 LRU 上限 — 搜索(200)/ 页面(100),防止长会话 OOM · research_parallel — 并行启动子代理;提示词适配语言环境;单 sub_query 校验 · SSRF — 拦截 .internal 主机名 · 黑盒 E2E — npm run test:e2e 不依赖 DSH 命令行即可跑通完整用户流程 · 测试 57/57 通过。
v0.0.12026-08-15
· dsh-search-boost v0.0.1 DeepSeek Harness(DSH)搜索增强插件首次发布。 · 内容一览 · 内置 web_search 升级——注册 WebSearchProvider 并给 searchProvider 打补丁,让内置 web_search 走并行免费引擎扇出(Bing + DuckDuckGo 的 curl 抓取,装了 Antigravity CLI 的地方再加它),不再走串行故障转移链。原生引用卡片保留。 · fused_search——多引擎融合检索:免费引擎并行跑(Antigravity CLI / Bing / DuckDuckGo,全部免密钥),配好密钥后 Tavily / Brave / Exa 也加入。复杂度路由、Grok 风格查询预处理(site: / OR / 引号)、硬域名过滤、半衰期时间衰减新鲜度、跨引擎共现打分、6 小时 TTL 缓存。 · fetch_page——Jina Reader 抽取 + 本地 HTML 兜底 + 按焦点做主题抽取(省约 90% token)+ 24 小时缓存。 · x_search——通过本地 Grok Build CLI 搜 X/Twitter,输出结构化证据,没有订阅时 45 秒超时降级(绝不阻塞)。 · deep_research——分步研究:复杂融合搜索 + 覆盖分析 + 跨域互证 + 缺口 + 建议查询,由主智能体分轮驱动直到收敛。 · research_parallel——多智能体并行研究,在时间预算内扇出给 DSH 原生子代理。 · search_stats——缓存 / 层级 / 引擎错误 / 近期查询审计。 · 主动搜索策略 v3——注入系统提示词:默认先搜,硬性规则是只要对外部事实有疑问就立即搜索,每次回答自检,不许把不确定性「推理掉」。 · X 算法启发的打分(Apache-2.0,来自 xai-org/x-algorithm)——重复域名衰减(同域名第二条结果 0.7 倍)+ 单引擎折扣(0.9 倍),保证结果多样性。 · 安装 dsh plugin add github:Mr-remon219/dsh-search-boost 或运行自带安装脚本(检查 dsh 和 pnpm,自动探测 npx 缓存,自动把 npm 全局目录注入 PATH): .\install.ps1 # Windows ./install.sh # Linux / macOS 配置见 README.md(密钥从 ~/.dsh-search-boost-keys.json 或 TAVILY_API_KEY / EXA_API_KEY / BRAVE_API_KEY 环境变量加载;免费引擎零配置)。 · 许可证 MIT
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
dsh-search-boost 为 DeepSeek Harness(DSH)提供搜索增强:多引擎融合搜索、聚焦式页面抓取、X(Twitter)搜索、分步深度研究、并行多智能体研究,以及注入式主动搜索策略。 这是 DSH 的捆绑插件,用来升级内置的 web_search / web_fetch,并注册一整套搜索工具。 search-boost 家族 | 项目 | 适用对象 | 链接 | | search-boost | 通过 MCP 支持 Cursor · Codex · Claude · Grok · Antigravity | GitHub · npm | | dsh-search-boost (本仓库) | DeepSeek Harness 捆绑插件 | 你在这里 | | pi-search-boost | pi 扩展 | GitHub · npm | 搜索引擎都在 lib/ 里:free 层让 Bing、DuckDuckGo、Yahoo、Exa-free 并行跑;api 层再加上 Antigravity CLI(可用时)以及带密钥的 Tavily / Brave / Exa(有密钥时)。一个密钥就够,三个都配融合效果最好。
展开完整文档(README 剩余 1 节)
dsh-search-boost

为 DeepSeek Harness(DSH)提供搜索增强:多引擎融合搜索、聚焦式页面抓取、X(Twitter)搜索、分步深度研究、并行多智能体研究,以及注入式主动搜索策略。

这是 DSH 的捆绑插件,用来升级内置的 web_search / web_fetch,并注册一整套搜索工具。

search-boost 家族

| 项目 | 适用对象 | 链接 |
| search-boost | 通过 MCP 支持 Cursor · Codex · Claude · Grok · Antigravity | GitHub · npm |
| dsh-search-boost (本仓库) | DeepSeek Harness 捆绑插件 | 你在这里 |
| pi-search-boost | pi 扩展 | GitHub · npm |

搜索引擎都在 lib/ 里:free 层让 Bing、DuckDuckGo、Yahoo、Exa-free 并行跑;api 层再加上 Antigravity CLI(可用时)以及带密钥的 Tavily / Brave / Exa(有密钥时)。一个密钥就够,三个都配融合效果最好。

中文文档 → README_zh.md

搜索分层

两层,运行时用 /web_change 切换(持久化到 ~/.dsh-search-boost-layer.json):

| 层 | 拨入的引擎 | 适用场景 |
| free(仅无密钥) | Bing + DuckDuckGo + Yahoo + Exa MCP(exa-free) —— 全部实时探测,无需 API 密钥 | 研究循环、零成本运行、注重隐私的场景 |
| api(默认) | 同样的无密钥分支,外加 Antigravity CLI(agy 在 PATH 上时)和带密钥的 Tavily / Brave / Exa(有密钥时) | 最大召回;用付费 API 做跨引擎互证 |

无密钥引擎并行运行,所以某一个挂掉也不会让你空手而归。融合排序加入跨引擎共现打分和半衰期时间衰减新鲜度。

功能

| 能力 | 说明 |
| 内置 web_search + web_fetch 升级 | 注册 WebSearchProvider + WebFetchProvider,并给两处 seam 配置打补丁,这样内置搜索/抓取保留原生引用卡片,而后端跑在本插件的引擎链和 Jina 优先的页面读取器上 |
| fused_search | 多引擎融合检索,带复杂度路由、Grok 风格查询预处理(site: / OR / 引号)、域名过滤、跨引擎打分,以及 6h TTL 缓存。当前层由 /web_change 决定;支持按调用用 layer 覆盖 |
| /web_change | /web_change free → 只用无密钥池;/web_change api → 全量池;/web_change show → 当前层 + 引擎可用性 |
| x_search | 实时 X/Twitter:帖子、用户、话题串。带凭据时:托管 xAI 工具 ∥ 多引擎(site:x.com),合并去重。不带凭据时:多引擎 + oEmbed 全文(约 2 秒)、访客 GraphQL 用户资料、oEmbed 话题串。/x-login / /x-logout 切换官方路径 |
| /x-login | 把 xAI 凭据导入 ~/.dsh-search-boost-xauth.json(来自 ~/.grok/auth.json 或 -k <XAI_API_KEY>)。OIDC 自动刷新;grok CLI 登录不受影响 |
| /x-logout | 删除 /x-login 写入的凭据;x_search 回退到免凭据链路 |
| fetch_page | Jina Reader + 本地 HTML 兜底 + focus 主题提取 + 24 小时缓存 |
| deep_research | 分步深度研究:复杂融合搜索 + 覆盖度分析 + 缺口 + 建议查询,由主智能体分轮驱动 |
| research_parallel | 子查询拆解 → 原生 DSH 子代理并行执行 → 合并来源 |
| search_stats | 缓存 / 分层 / 引擎可用性 / x_search 凭据审计 |
| 搜索策略 | 通过 systemPrompt.section 注入:核实时效性事实,把 X 内容路由到 x_search,优先使用免费引擎 |

安装(bundle,推荐)

从 npm 安装(推荐):

dsh plugin --profile web add dsh-search-boost # latest
dsh plugin --profile web add dsh-search-boost@0.1.3 # pin a version
dsh plugin --profile web update dsh-search-boost # update to a newer release

--profile <name> 是必填项(web 是标准 Web UI 配置档)。DSH 用 pnpm 解析包,自动接好 dsh.bundle.patch 层,并把它加入配置档的 bundle 列表——不用手动改配置。重启 dsh --profile web。

从源码安装(开发用):

dsh plugin --profile web add github:Mr-remon219/dsh-search-boost
dsh plugin --profile web add git+file:///path/to/repo

也可以用安装脚本(语法检查 → 密钥设置 → 安装 → 验证):

.\install.ps1 # Windows
./install.sh # Linux / macOS

验证:

dsh --profile web --dump-config # web.searchProvider → dsh-search-boost
dsh --profile web

排障:找不到 dsh 或 pnpm

如果你用 npx @deepseek-ai/dsh web 运行 DSH,就没有全局 dsh 可执行文件——要么全局安装,要么直接用 npx:

npm install -g @deepseek-ai/dsh
or:
npx --yes @deepseek-ai/dsh plugin --profile web add dsh-search-boost

dsh plugin 需要 pnpm(npm install -g pnpm 或 corepack)。

备选方案:会话级动态插件(plugin-host.js)

plugin-host.js 是单文件动态插件,用于按会话增强。它不替换内置 web_search。部署级集成推荐用上面的 bundle 形式。

配置(API 密钥)

已发布的 bundle 不含任何密钥。密钥从以下位置加载:

1. ~/.dsh-search-boost-keys.json 或 ./.search-boost-keys.json:

{ "tavily": "tvly-...", "exa": "...", "brave": "..." }
2. 环境变量:TAVILY_API_KEY / EXA_API_KEY / BRAVE_API_KEY

没有密钥的引擎会自动从 fan-out 中剔除。

免费层零配置。 Bing、DuckDuckGo、Yahoo 和 Exa MCP(exa-free)都无需密钥,并行运行。Antigravity CLI(agy)是可选组件,只有安装并登录后,才会加入 api 层(medium/complex 档位)。

x_search 凭据(可选)

| 命令 | 作用 |
| /x-login | 导入 grok 登录 → 官方托管的 x_search 路径(SuperGrok / X Premium+ 档位) |
| /x-login -k <XAI_API_KEY> | 同上,改用 console.x.ai API key |
| /x-login status | 显示凭据链 |
| /x-logout | 停用官方路径;回退链仍然可用 |

~/.grok/auth.json 永远不会被自动读取。没有 /x-login 或 XAI_API_KEY 时,x_search 只用免凭据链。

实测基准(2026-08,Windows)

免费层引擎探测(12 条查询 × 9 个候选)

实时基准(node scripts/engine-benchmark.mjs);完整报告见 scripts/engine-benchmark-report.json。

| 引擎 | 成功率 | 平均延迟 | 结论 |
| bing | 100% | ~2.0s | ✅ 免费层 |
| ddg | 100% | ~2.2s | ✅ 免费层 |
| yahoo | 100% | ~2.3s | ✅ 免费层(v0.1.2 新增) |
| exa-free | 100% | ~4.2s | ✅ 免费层 |
| antigravity | 92% | ~27s | 仅 api 层(慢,需要 agy CLI) |
| brave-html / mojeek / searx | 0% | — | 已淘汰(429、被封或无法访问) |

集成场景

| 场景 | 结果 |
| free 层 fused_search | ~1.3–3.0s 内 5 条命中;跨引擎互证(例如 yahoo+exa-free 在 rust release notes 上得分 3.29) |
| x_search(无凭据) | 关键词走多引擎 + oEmbed;用户走 guest GraphQL(@NASA ~2s);线程走 oEmbed |
| SSRF 对 Clash TUN fake-ip | 字面量 198.18/15 被拦截;TUN 路由的主机名放行(DSH_SEARCH_ALLOW_TUN_FAKEIP=0 可关闭) |
| 无头 web_search | ✓ 免费 Bing/DDG/Yahoo/Exa 链 |
| 单元 + E2E 测试 | 57/57 单元测试;14/14 黑盒 E2E |

架构说明

- 运行在宿主进程中(直接调用 Node fetch / child_process)。
- HTML 抓取器(Bing / DDG / Yahoo)使用 IPv4 强制 fetch —— Windows 上的 undici 默认 IPv6 优先 DNS,对搜索主机会间歇性超时。
- X 搜索:官方路径(lib/xsearch.js)→ 免凭据链(lib/xfallback.js:多引擎 + oEmbed + guest GraphQL),无凭据时做同步预检。

文件

index.js — bundle entry (providers + tools + commands + policy) lib/engines.js — engine registry (bing / ddg / yahoo / exa-free / …)
lib/exa-free.js — Exa MCP keyless engine lib/layer.js — free/api layer state (/web_change) lib/fusion.js — fusion scoring, tier tables, cache lib/fetch.js — Jina Reader + focus extraction lib/xauth.js / xsearch.js / xfallback.js — x_search credential + official + fallback paths lib/research.js — deep_research + research_parallel lib/policy.js — 主动搜索策略 cordis.patch.yml — DSH 补丁层清单 scripts/engine-benchmark.mjs — 维护者用:实时免费引擎探测

发布(维护者) sh
npm test
npm publish # prepublishOnly: syntax + tests + clean git tree

许可证

MIT

链接: Issues · search-boost · pi-search-boost

友情链接: LINUX DO 社区
预览分享卡片长什么样 ↓Mr-remon219/dsh-search-boost
分享 · DeepSeek Harness Hub
Mr-remon219/dsh-search-boost

给 dsh 加装搜索增强,让模型搜得更猛。

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部