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

RustXNG 搜索接入 kgmkm/dsh-rustxng

DeepSeek Harness
kgmkm7 天前有提交已提供中文文档扫描:含敏感能力

用自建 RustXNG 实例接管内置网页搜索

29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add kgmkm/dsh-rustxng
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · search
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 7 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 19 处,展示前 19 条)
  • 写入本地文件
    index.js:326
    mkdirSync(dir, { recursive: true });
  • 发起网络请求
    index.js:336
    const response = await fetch(`${baseUrl}/healthz`, { signal: AbortSignal.timeout?.(2500) });
  • 读取本地文件
    scripts/install-binary.mjs:35
    console.log(readFileSync(new URL(import.meta.url), 'utf8').split('*/')[0].replace(/^ ?/, '').trim());
  • 发起网络请求
    lib/rustxng-client.js:239
    const response = await fetch(`${baseUrl}/healthz`, { signal: guard.signal, headers: { accept: 'text/plain' } });
  • 发起网络请求
    lib/rustxng-client.js:261
    const response = await fetch(`${baseUrl}/config`, { signal });
  • 发起网络请求
    lib/rustxng-client.js:323
    response = await fetch(url, {
  • 发起网络请求
    lib/tools.js:198
    const response = await fetch(`${baseUrl}/config`, { signal: AbortSignal.timeout?.(8000) });
  • 发起网络请求
    lib/fetch-provider.js:150
    async fetch(request, signal) {
  • 读取本地文件
    lib/process-manager.js:62
    return existsSync(candidate);
  • 写入本地文件
    lib/process-manager.js:73
    mkdirSync(join(logFile, '..'), { recursive: true });
  • 执行外部命令来自配置/变量
    lib/process-manager.js:82
    const child = spawn(binary, ['--bind', bindAddress, '--port', String(port)], {
  • 读取本地文件
    lib/install-binary.js:135
    if (existsSync(destination) && !force) {
  • 写入本地文件
    lib/install-binary.js:168
    mkdirSync(dir, { recursive: true });
  • 写入本地文件
    lib/install-binary.js:172
    writeFileSync(temporary, body);
  • 写入本地文件
    lib/install-binary.js:174
    renameSync(temporary, destination);
  • 删除本地文件
    lib/install-binary.js:178
    unlinkSync(temporary);
  • 写入本地文件
    lib/install-binary.js:184
    copyFileSync(temporary, destination);
  • 删除本地文件
    lib/install-binary.js:185
    unlinkSync(temporary);
  • 写入本地文件
    lib/install-binary.js:187
    if (platform !== 'win32') chmodSync(destination, 0o755);
扫描于 2026/11/2(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-tools
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DeepSeek Harness 插件:用你自己的 RustXNG 元搜索实例来应答内置的 web_search(支持 Windows、macOS、Linux)

README

由 DeepSeek 最新模型翻译生成
dsh-rustxng 在 DeepSeek Harness 里使用你自己搭建的 RustXNG 实例,并用它来回答内置的 web_search。 RustXNG 是用 Rust 写的元搜索引擎,兼容 SearXNG:一次查询会分发到约 170 个搜索引擎,去重后返回结果,没有广告,也不做追踪。这个插件把 DSH 连到你自建的 RustXNG(Windows、macOS 或 Linux 都行),并额外提供: | 贡献 | 你能得到什么 | | 搜索服务商 | web 接缝上的 rustxng 服务商。把 web.searchProvider 指向它,内置 web_search 就由你的实例来回答——不需要 DeepSeek 搜索 API key。 | | 设置卡片 | 插件页里的一张卡片,带两个实时开关和实例 URL。不用重启,也不用手工改 YAML。 | | 工具 | rustxng_search(可按引擎、分类、语言和时间范围限定)和 rustxng_status(可达性、版本、引擎数量、服务商状态)。 | | 二进制下载器 | node scripts/install-binary.mjs 会下载对应你操作系统和 CPU 的发布二进制,并校验。
展开完整文档(README 剩余 1 节)
dsh-rustxng

在 DeepSeek Harness 里使用你自己搭建的 RustXNG 实例,并用它来回答内置的 web_search。

RustXNG 是用 Rust 写的元搜索引擎,兼容 SearXNG:一次查询会分发到约 170 个搜索引擎,去重后返回结果,没有广告,也不做追踪。这个插件把 DSH 连到你自建的 RustXNG(Windows、macOS 或 Linux 都行),并额外提供:

| 贡献 | 你能得到什么 |
| 搜索服务商 | web 接缝上的 rustxng 服务商。把 web.searchProvider 指向它,内置 web_search 就由你的实例来回答——不需要 DeepSeek 搜索 API key。 |
| 设置卡片 | 插件页里的一张卡片,带两个实时开关和实例 URL。不用重启,也不用手工改 YAML。 |
| 工具 | rustxng_search(可按引擎、分类、语言和时间范围限定)和 rustxng_status(可达性、版本、引擎数量、服务商状态)。 |
| 二进制下载器 | node scripts/install-binary.mjs 会下载对应你操作系统和 CPU 的发布二进制,并校验。 |

DSH 本身没有打任何补丁:插件用的是文档里公开的 ctx.web.registerSearchProvider() API 和普通的 web.searchProvider 设置字段,所以 Harness 升级后照样能用。

环境要求

- DeepSeek Harness >= 0.2.0-rc.2 < 0.3.0(需要宿主提供 tools、web 和 settings 服务)。
已在 0.2.0-rc.2 和 0.2.1-rc.2 上验证;见 docs/PLATFORMS.md。
- Node.js 20+(插件用的是全局 fetch)
- 一个正在运行的 RustXNG 实例——见下文

1. 获取 RustXNG

最省事: 让插件去下载发布二进制。

node scripts/install-binary.mjs # into $DSH_HOME/bin (or ~/.dsh/bin)
node scripts/install-binary.mjs --dir ./bin --musl # Linux without glibc

脚本会挑出适合你平台的资源,校验发布的 SHA-256,然后打印启动命令。

或者你自己从发布页下载:

| 平台 | 资源 |
| Windows x64 | rustxng-v<ver>-x86_64-pc-windows-msvc.exe |
| macOS arm64 | rustxng-v<ver>-aarch64-apple-darwin |
| macOS x64 | rustxng-v<ver>-x86_64-apple-darwin |
| Linux x64 (glibc) | rustxng-v<ver>-x86_64-unknown-linux-gnu |
| Linux x64 (musl) | rustxng-v<ver>-x86_64-unknown-linux-musl |

启动它:

rustxng --port 8888 # listens on 127.0.0.1:8888 by default
curl 'http://127.0.0.1:8888/healthz' # → OK

RustXNG 在 <http://127.0.0.1:8888/> 提供自己的搜索界面;插件不替换那个页面,只是消费同一套 JSON API。

2. 安装插件

registry install (recommended)
dsh plugin --profile web add dsh-rustxng

or from a checkout of this repository
git clone https://github.com/<owner>/dsh-rustxng.git
then: Plugin Manager → install bundle → the checkout directory
从 checkout 安装会链接目录,因此 Node 解析到插件的真实路径(.../dsh-rustxng)。插件对此做了处理:如果从该路径无法解析 @deepseek-ai/schemastery,它会通过运行中的 Harness 自身入口点加载 schema 构建器,而不是静默丢弃 schema。

3. 启用

打开 Plugins → RustXNG,开启 Use RustXNG for web_search。或者在配置档补丁里设置(~/.dsh/profiles/<profile>/cordis.patch.yml): yaml
- id: dsh-rustxng
config:
baseUrl: http://127.0.0.1:8888
webSearch:
enabled: true
autoSelect: true

此后 web_search 由 RustXNG 应答。enabled 和 autoSelect 开关以及实例 URL 都是易变的:设置卡片会实时修改它们,关闭该功能会把 web.searchProvider 交还给之前的值。

配置

| 键 | 默认值 | 含义 |
| enabled | true | 总开关;false 会卸载工具并注销服务商。 |
| baseUrl | http://127.0.0.1:8888 | RustXNG 的监听地址。易变(可在卡片中编辑)。 |
| timeoutMs | 20000 | 单次搜索的超时时间。 |
| defaultLimit | 12 | 交给 web_search 的来源数量(1–50)。 |
| language | '' | 搜索语言(ja、en 等);留空 = 实例默认值。 |
| timeRange | '' | day / week / month / year;留空 = 不过滤。 |
| safeSearch | -1 | -1 = 实例默认值,否则为 0 / 1 / 2。 |
| categories | [] | 应用于每次搜索的分类过滤(general、it 等)。 |
| exposeTools | true | 注册 rustxng_search / rustxng_status。 |
| webSearch.enabled | false | 替换内置的 web_search。易变。 |
| webSearch.autoSelect | true | 替你写入 web.searchProvider = 'rustxng'。易变。 |
| debug | false | 记录每次服务商决策。 |

工具 jsonc // rustxng_search { "query": "rust async runtime", "limit": 8, "engine": "arxiv", "time_range": "year" } { "query": "東京 天気", "category": "news", "language": "ja" }

rustxng_status 报告实例是否应答、其版本、启用了多少引擎、服务商是否已注册,以及 web.searchProvider 是否指向它——搜索失败时先运行它。

平台支持

| 平台 | 状态 |
| Windows 10/11 x64 | 已验证:release 二进制 + 本插件(搜索、服务商替换、设置卡片)在 DSH 0.2.1-rc.2 上 |
| Linux x64(glibc / musl) | 已在独立 Ubuntu 26.04 服务器(DSH 0.2.0-rc.2:替换 + 卡片)和 WSL2 上验证(两个 release 构建均 12/12) |
| macOS arm64 / x64 | 设计上支持(release 资产已存在);验证待完成 |

各平台预期如何验证、二进制放置位置以及平台特定说明(PATH、服务管理器、WSL、musl),见 docs/PLATFORMS.md。

故障排查

| 症状 | 修复 |
| RustXNG is not answering at … | 启动实例,或修正卡片里的 baseUrl。rustxng_status 会显示探测错误。 |
| web_search 仍然报 DeepSeek 401 | 服务商没选对:检查卡片上的第一个开关,或官方 Web search 页面上的 web.searchProvider。在 DSH 0.2.0-rc.2 上,这个字段无法从插件写入 —— 请在配置档补丁里设置(见上文),或用 DSH_WEB_SEARCH_PROVIDER=rustxng。 |
| Plugins 里看不到卡片 | 插件行未激活 —— 检查 Plugin Manager,并确认 DSH 版本符合 dsh.compatibility。在链接检出(linked checkout)下,schema 经由 Harness 安装解析:rustxng_status 会打印 Config schema: loaded via … 或解析错误。0.1.2 能解析 <prefix>/bin/dsh 这类符号链接启动器。 |
| 明明开着,rustxng_status 却显示 Replace web_search: no (default) | 0.1.2 已修复(此前实时配置值被当作原始类型比较)。 |
| Wanted to register a provider but web is missing | 配置档里没有 @deepseek-ai/dsh-web;本插件做替换时需要它(工具本身仍可用)。 |
| 结果偏少 | 部分引擎按 IP 限流;rustxng_status / RustXNG 的 /stats 会显示哪些被暂停。!engine query 仍然可用。 |

开发 bash
node tests/smoke.mjs # payload normalisation + platform mapping (+ live search if an instance answers)
node tests/apply.test.mjs # host half against a stub instance: provider gate, selection, tools, live values
node tests/resolve.test.mjs # host-package resolution through a symlinked launcher (Linux npm-global layout)

apply.test.mjs 和 resolve.test.mjs 不需要运行实例,也不需要网络。

目录结构:

index.js host plugin: Config, provider + tools wiring, selection hand-over,
symlink-aware host-package resolution
lib/rustxng-client.js HTTP client: query building, payload normalisation, timeouts
lib/web-provider.js the rustxng seam provider and the web.searchProvider hand-over
lib/tools.js rustxng_search / rustxng_status
lib/client.js settings card (Plugins → RustXNG)
scripts/install-binary.mjs cross-platform release downloader with SHA-256 check
scripts/verify-linux.sh 12-item instance verification for POSIX hosts

许可证与署名

MIT —— 见 LICENSE。

RustXNG 本身是 AGPL-3.0-or-later,且不随本插件打包:插件通过 HTTP 与独立进程通信,scripts/install-binary.mjs 从 RustXNG 自己的发布页下载它。如果你再分发修改过的 RustXNG,AGPL §13 约束的是那份作品,不是本插件。
预览分享卡片长什么样 ↓kgmkm/dsh-rustxng
分享 · DeepSeek Harness Hub
kgmkm/dsh-rustxng

用自建 RustXNG 实例接管内置网页搜索

回到顶部