🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI
广告☁️ 云服务器特惠阿里云首购 8 折 · 腾讯云合作特惠
DeepSeek Harness Hub
← 返回列表

ddowbnac/dsh-web-search-local

DeepSeek Harnessspec-screened扫描:低风险在 GitHub 查看 ↗
⚠ 装前注意

@djdowbnac/dsh-web-search-local

基本兼容但装前注意:未发布到 npm registry,仅可从源码安装 · 最近上游提交 2026/9/13 · 已提供中文文档

DeepSeek Harness 的网页搜索提供程序,完全本地运行,无需 API 密钥。

综合分
29
GitHub 分
29
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add ddowbnac/dsh-web-search-local
未发布到 npm registry,仅可从源码安装,改用 GitHub 源安装
信任档位:已验证本站已于 0 天前真实安装成功(L4 · 真实安装)
是什么
dsh 原生插件 · chat
装得上吗
本站已真实安装成功(L4 · 真实安装,非静态推断)
安全吗
本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
还在维护吗
活跃:最近一次提交在 13 天前

档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →

🟢实装验证通过· 2026/9/25
由本站实装验证器在真实 dsh 环境安装成功,非静态推断。
数据截至 2026/9/22(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查⚠ 装前注意

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

✗npm 包@djdowbnac/dsh-web-search-local(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

未发布到 npm registry,仅可从源码安装

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/23 13:49:42

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-web@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/dsh-settings@deepseek-ai/dsh-session@deepseek-ai/dsh-agent@deepseek-ai/dsh-launch-environment@deepseek-ai/dsh-credentials
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

由 DeepSeek 最新模型翻译生成
@djdowbnac/dsh-web-search-local

一个无需账户或 API 密钥的 DeepSeek Harness 网页搜索提供程序,另外还可选地为你自己的文件提供完全本地的全文索引。

该插件在 ctx.web 接缝上注册了两个搜索提供程序和一个抓取提供程序:

| 提供程序 | 功能 | 网络 |
|---|---|---|
| web | 通过内置元搜索(auto、searxng)或仅 DuckDuckGo(duckduckgo)进行互联网搜索。 | 向各上游发起出站 HTTPS |
| local | 对本地语料库进行全文搜索(BM25、片段、增量重建索引,在 Bun 上使用 bun:sqlite FTS5,在 Node 上使用纯 JS JSON)。 | 无 |
| local(抓取) | 从磁盘读取 file:// URL,并检索 web_search 返回的 http(s):// URL。 | 仅在抓取时 |

当你想要无需密钥外部 API 的互联网搜索时,请固定使用 web。自带的 web-search-deepseek 插件需要 DeepSeek 账户和 API 密钥。

互联网搜索(web)

engine 字段用于选择后端(UI 或 YAML):

- auto(默认):内置元搜索。并行向 DuckDuckGo、Bing 和 Wikipedia 发起请求,然后合并、去重并对结果排序。无需实例、无需 URL、无需配置。
- duckduckgo:仅 DuckDuckGo,即无密钥的公共端点 html.duckduckgo.com/html/。会过滤掉广告行(duckduckgo.com/y.js)。
- searxng:与内置元搜索相同。保留该值名称是为了与 0.1.x 的实例模型兼容。

安装与挂载

该包已发布到 npm,因此正常安装会拉取注册表版本:

dsh plugin --profile web add @djdowbnac/dsh-web-search-local

这就是完整的安装过程。dsh plugin 会在首次使用时初始化 profile,并在 profile 目录内转发给 pnpm add(pnpm 必须在 PATH 中)。要固定确切版本,请添加完整的说明符(dsh plugin --profile web add @djdowbnac/dsh-web-search-local@1.1.2)。

使用以下命令移除它:

dsh plugin --profile web remove @djdowbnac/dsh-web-search-local

从检出目录安装(开发)

若要开发插件本身,请将同一命令指向检出目录,而不是包名:

在插件的检出目录中
dsh plugin --profile web add .

该目录会成为 pnpm 本地依赖,因此 profile 会将包名解析到此检出目录,bundle 注册的工作方式也相同。该依赖是本地链接,因此 profile 始终加载当前检出目录。编辑源代码后,请重新运行 bun run build 以使更改生效。

零安装(高级)

若要完全跳过 pnpm 依赖,请将该行的 name 指向已构建的入口点。从检出目录开始,先运行 bun run build,然后:

name: 'file:////dhs-web-search-local/lib/index.js'

挂载集成
依赖安装(npm 或 checkout)无需手动挂载。层顺序为:原版基础/表面 bundle 层、按 dsh.profile.bundles 顺序排列的包 bundle 层(本插件位于其中最后)、profile 的 cordis.patch.yml(用户层)、$DSH_HOME/cordis.patch.yml,以及任何 --patch 覆盖层:越靠后的层优先。因此,随附的 patch 是原版基础,用户层可自由覆盖:设置 corpusDirs、切换 engine、固定不同的 provider。随时检查合成后的树:

dsh --profile web --dump-config

对于零安装路径(手动挂载),将 ./cordis.patch.yml 作为 --patch 覆盖层应用,或将其中的行合并到 profile 的 cordis.patch.yml(位于 $DSH_HOME/profiles/web/cordis.patch.yml,默认 home 为 ~/.dsh),并将 name 调整为 file:// 条目。patch 会替换目标行的整个 config,因此该片段重新声明了 searchProvider 和 fetchProvider:

- insert:
- id: web-search-local
name: 'file:////dhs-web-search-local/lib/index.js'   # zero-install entry
config:
corpusDirs: [!!js process.cwd()]   # optional. Only used by the local provider
engine: auto                     # auto | duckduckgo | searxng
- id: web
config:
searchProvider: web      #  固定是强制性的。 原版 deepseek-official provider 始终“可用”,因此如果不固定 searchProvider,接缝会报告 WEB_PROVIDER_AMBIGUOUS。原版 web-search-deepseek / web-fetch-http 行可以保留(已注册但未被选中)。随附的 bundle patch 会执行固定,并有意不设置 corpusDirs:自动应用的层不得索引启动目录。请在用户层或通过设置部分进行设置。

配置

该 provider 暴露 web-search-local 设置部分,持久化到 $DSH_HOME/settings.yaml(热重载,因此更改无需重启即可在下次搜索时生效):

| 字段 | 默认值 | 含义 |
|---|---|---|
| engine | auto | Web 后端:auto(元搜索:DuckDuckGo + Bing + Wikipedia)、duckduckgo 或 searxng(= 元搜索,为兼容 0.1.x 而保留)。 |
| corpusDirs | [] | 要索引的目录(绝对路径或 ~)。仅由 local 搜索 provider 使用。为空时返回有明确信息的空结果。 |
| include | 内置文本/代码集合 | 要索引的额外扩展名(可带或不带前导点)。 |
| exclude | 内置(node_modules、.git、*.min.js、lockfile 等) | 要跳过的额外目录名、文件名或点后缀。 |
| indexDir | /web-search-local | index.db 或 index.fallback.json 以及 manifest.json 所在位置。 |
| maxResults | 20 | 每次查询的来源上限(接缝会重新强制执行工具的界限)。 |
| snippetLength | 160 | 片段的大致长度。 |
| autoReindex | true | 每次搜索时重新扫描语料库(受内部间隔限制)。false = 仅在变更时构建。 |
| maxFileSizeBytes | 5000000 | 跳过大于此值的文件。 |

两种配置方式:

1. YAML(主要方式): 编辑 $DSH_HOME/settings.yaml 中的 web-search-local 部分(与设置 UI 写入的是同一个文件)。示例:
yaml
web-search-local:
engine: auto
corpusDirs:
- D:\docs
- ~/notes

2. UI 卡片: 当部署渲染第三方插件卡片时,设置 -> 插件下会出现一个 web-search-local 的卡片(引擎、语料目录、最大结果数、片段长度、索引目录、自动重建索引,然后保存)。它是可选的:当部署不渲染卡片时,YAML 方式仍然完全可用。

已知限制

- 网络覆盖范围:DuckDuckGo、Bing 和 Wikipedia,均无需密钥。Google 不直接抓取,因为其 CAPTCHA 很脆弱。速率限制和反机器人拦截取决于 IP 信誉(数据中心 vs. 住宅)。被拦截的上游只会被丢弃,健康上游的合并结果仍会返回。只有当所有非可选上游都失败时,搜索才会抛出 WEB_PROVIDER_ERROR(附带各上游的详细信息)。
- DDG 异常页面:在遭受大量滥用时,DuckDuckGo 可能返回挑战页或异常页而不是结果。适配器会将其记录为类型化的 challenge 失败,与任何其他上游失败相同。
- publishedAt:Wikipedia 命中会携带它(API 的 timestamp)。DuckDuckGo 和 Bing 命中不会,因为这些上游不提供可靠的日期。本地语料结果使用文件的 mtime。

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

同作者(ddowbnac)的其他插件

💬 加入社群

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

DPharness QQ 群二维码,QQ 扫码进群
QQ 扫码进群
DPharness 飞书群二维码,飞书扫码进群
飞书扫码进群