DSH 免費網頁搜索插件 (dsh-freeweb)

前言

DSH (DeepSeek Harness) 的核心設計理念是“一切皆插件”。默認的 web_search 工具調用 DeepSeek 官方的按量計費後端。如果你需要更多搜索次數且不想付費,或者希望在本地環境中運行搜索邏輯,dsh-freeweb 插件提供了一個基於 Parallel 免費搜索後端的方案。

功能特點

  • 真·零依賴:純全局 fetch + 標準 JS,沒有任何 import。不存在裝完缺依賴崩潰的問題。
  • 完整錯誤處理:所有異常返回診斷信息,不靜默失敗。
  • 組合包形態:0.2.0+ 版本聲明 dsh.bundle,支持 Web 插件頁安裝/啓停/卸載。
  • 手動掛載支持:0.1.5+ 支持本地文件掛載,配置極其輕量。
  • MCP 協議:基於 JSON-RPC over HTTP,直接調用 Parallel Search 免費後端。

安裝與啓用

本插件通過 GitHub 倉庫分發,尚未發佈到 npm。安裝前請確保 DSH 版本 ≥ 0.1.5(手動掛載)或 ≥ 0.2.0(組合包安裝),並已安裝 Node.js ≥ 18。

方式 A:插件頁安裝(推薦,DSH 0.2.0+)

  1. 打開側欄的 插件 → 添加插件。
  2. 輸入本目錄的絕對路徑(例如:D:\plugins\DSH-freeweb)。
  3. Host 會讀取 package.json 中的 dsh.bundle 聲明,完成安裝並自動啓用。
  4. 在 已安裝 分組中會出現 dsh-freeweb 卡片,可進行整包啓停或卸載。

方式 B:命令行安裝

npx @deepseek-ai/dsh plugin --profile web add "<本目錄絕對路徑>"

這會將插件寫入 package.json 的 dsh.profile.bundles。

方式 C:手動掛載(零打包,最輕)

  1. 將 freeweb-search.js 放入 profile 目錄:
    ~/.dsh/profiles/web/freeweb-search.js (Windows: C:\Users\<你>\.dsh\profiles\web\)
  2. 在 profile 的 cordis.patch.yml 中追加配置(注意:config 是整段替換,必須包含 fetchProvider):
    - id: web
      config:
        searchProvider: freeweb
        fetchProvider: http

    - insert:
        - id: freeweb-search
          name: ./freeweb-search.js
  1. 重啓 DSH。

配置與驗證

配置要求

Web 行的 config 是整段替換,必須同時配置 searchProvider: freeweb 和 fetchProvider: http。若不寫 fetchProvider,會丟失 dsh-base 的默認抓取後端。

驗證方法

  1. 側欄 插件 → 已安裝,確認出現 dsh-freeweb 卡片。
  2. 設置 → 內置插件 中檢查 include:freeweb-search 狀態。
  3. 發起一次搜索請求。官方 DeepSeek 搜索 provider 每次都會在日誌寫入 web/deepseek-search-llm-request 事件,freeweb 不寫該事件。若日誌無此條,即表示走的是 freeweb。

注意事項與限制

  • 互斥性:手動掛載與組合包安裝互斥,會導致 WEB_DUPLICATE_PROVIDER 錯誤。請二選一。
  • 免費層限速:Parallel 匿名層有速率限制,遇到 HTTP 429 需稍後重試。
  • 索引偏好:主要索引偏英文,中文可用但質量不如英文。
  • 結果形態差異:返回結構爲 url / title / publish_date / excerpts,而非官方的 cited_text。模型能引用的原文片段可能會比官方少。
  • 失敗處理:插件失敗時以“答案文本”形式返回診斷信息,不拋出 WebError。這是刻意的取捨,旨在保持“永不阻斷、故障透明”。

回退與故障排查

回退官方

  • 插件頁/CLI:卸載組合包後,搜索自動回到官方 deepseek-official。
  • 手動掛載:刪除 cordis.patch.yml 中的配置塊並重啓。注意順序:先刪 patch 行,再刪文件,否則 DSH 啓動會報錯。

常見錯誤

  • WEB_DUPLICATE_PROVIDER:檢查是否同時使用了兩種安裝方式。
  • WEB_PROVIDER_AMBIGUOUS:未顯式指定 searchProvider。
  • not-a-bundle:目錄未聲明 dsh.bundle(若複製了舊版單文件需更新)。
  • 找不到 pnpm:方式 A/B 需要,方式 C 不需要。
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜