← 返回列表
⚠ 装前注意
@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。