dsh-tinyfish:爲 DSH 接入零成本的聯網搜索與頁面抓取

前言

在 DeepSeek Harness(DSH)裏,智能體通常已經具備推理與工具調用能力,但「聯網」往往還要單獨接搜索 API、再自己把 HTML 轉成可讀文本,按次計費也會堆在主機側。DSH 的 web_search 與 web_fetch 走統一的 web 能力接縫(ctx.web),默認提供方是 deepseek-official 與 http,搜索按調用計費,抓取到的頁面還要經過 turndown 一類轉換。下面介紹社區插件 dsh-tinyfish:把搜索與抓取接到 TinyFish 後端,文檔寫明兩端點均可免費使用,並可通過 Monid 錢包走同一套接口。

這是什麼

dsh-tinyfish 由維護者 viztor 發佈,npm 包名 dsh-tinyfish(與 @viztor/dsh-tinyfish 爲同一構建產物)。插件在 Cordis 層註冊 TinyFish 實現的 search / fetch provider,並通過 bundle 默認把 web 接縫的 searchProvider、fetchProvider 指到 TinyFish。分類上屬於 DSH 社區目錄中的聯網工具;GitHub 倉庫 viztor/dsh-tinyfish 當前約 1 star,許可證 MIT。

核心功能

接入原生 web 工具

插件不新增一套平行 API,而是讓 Harness 自帶的 web_search、web_fetch 走 TinyFish:搜索側提供 SERP 結果,抓取側返回文檔所稱的瀏覽器級提取後的 Markdown,而不是先拿整頁 HTML 再 clumsy 轉換。

雙通道、同一套載荷

通道 默認 憑證來源 文檔標註費用
direct 是 tinyfish.ai 免費 key;CLI 可用 tinyfish auth login $0
monid 否 app.monid.ai 平臺 key;CLI 可用 monid keys add $0

兩種通道背後仍是 TinyFish 端點(Monid 經錢包轉發)。兩種 key 可同時保存,切換 channel 不會互相覆蓋。

默認接管與可覆蓋

安裝 bundle 後,默認會把 search 與 fetch 都選到 TinyFish(按 row id 匹配 provider)。若只想改其一,可在 profile 的 cordis.patch.yml 裏覆蓋 web 行的 searchProvider / fetchProvider(兩字段獨立)。環境變量 DSH_WEB_SEARCH_PROVIDER、DSH_WEB_FETCH_PROVIDER 也會寫入同一配置,但在 stock profile 下 patch 中的值優先。

與更貴路徑的分工(README 對照表)

日常在原生工具裏免費搜、抓,用 dsh-tinyfish 即可。若任務需要 SERP 地理/排名等細粒度字段或批量查詢,文檔建議改用 Monid SERP mirror(monid_run,按次約 \(0.002–\)0.18,視 provider 而定)。若 fetch 讀不了 JS 重頁或需登錄交互,再考慮 CLI 的 tinyfish agent / browser(按步/分鐘計費)。這些 escalation 路徑在插件 README 的對比表裏寫清,本文不展開計費細節以外的能力。

安裝與啓用

方式一:DSH Web 界面(文檔推薦)

  1. 打開 DSH Web,側欄進入 Plugins(插件)。
  2. 點擊 Add plugin(添加插件)。
  3. 在自由文本框輸入包名 dsh-tinyfish 或 @viztor/dsh-tinyfish(不是 registry 搜索)。
  4. 點擊 Install,DSH 從 npm 拉包並加載 bundle 聲明的 patch;live profile 可熱更新,否則需下次啓動生效。
  5. 在同一頁打開 Tinyfish 卡片:選擇通道 direct 或 monid,填寫對應 key(可同時保存兩種),Save。
  6. 向智能體提一個時效性問題驗證;成功時結果通常不標註 provider,失敗信息會提到 tinyfish。

方式二:Profile 的 package.json

適用於無頭環境、服務器或 dotfiles 管理 profile 的場景。進入 web profile 目錄後安裝依賴:

cd ~/.dsh/profiles/web
npm install dsh-tinyfish

也可使用 npm install @viztor/dsh-tinyfish,二者勿重複掛載。然後在同一 profile 的 package.json 里加入 bundle 並重啓 DSH(通過 package.json 安裝的 bundle 在啓動時解析,僅 reload patch 不夠):

{
  "dependencies": { "dsh-tinyfish": "^0.11.0" },
  "dsh": {
    "profile": {
      "bundles": [
        "@deepseek-ai/dsh-base",
        "@deepseek-ai/dsh-web-app",
        "dsh-tinyfish"
      ]
    }
  }
}

npmjs 不可達時,README 說明 release 會鏡像到 GitHub Packages 的 @viztor/dsh-tinyfish,需配置 registry 與 read:packages token;除非 npm 宕機,一般仍優先 npm,免 token。

固定 Monid 通道

若希望默認走 Monid 而非 direct,在 profile patch 中增加:

- id: dsh-tinyfish
  config:
    channel: monid

改回官方搜索或 http 抓取

插件可保持掛載但 idle,僅改 web 提供方,例如:

- id: web
  config:
    searchProvider: deepseek-official
    fetchProvider: http

典型用法

安裝並完成 key 保存後,無需改智能體提示詞裏的工具名:照常使用 Harness 的聯網工具即可。文檔建議用當前事實類問題做冒煙測試(示例:「上一場 F1 誰贏了?」),有 live source 返回即表示 credential 與 provider 解析成功。GUI 側在 Plugins → Tinyfish 可改通道、key,以及搜索排序相關選項(文檔提及 domain、language、recency、date bounds、cache TTL、selectors 等 standing defaults;具體字段以卡片與 locale 爲準,截斷資料未列全表)。

若需確認當前 pin 的是 TinyFish,可查看 profile patch 裏的 searchProvider / fetchProvider,或故意觸發一次失敗以在報錯中看到 tinyfish 名稱。

適用場景與注意

適合誰: 已在 DSH 上使用 web_search / web_fetch,希望把搜索與頁面提取換成文檔標註爲 $0 per call 的 TinyFish 路徑,並願意在 direct(TinyFish 賬號)與 monid(已有 Monid 生態 key)之間二選一或並存備 key 的開發者。

權限與安全: 插件隨當前 DSH 進程權限運行,會向 TinyFish(或經 Monid)發起外網請求;安裝前應在 GitHub 閱讀源碼與 MIT 許可證,並自行保管 API key,勿提交到版本庫。

生態說明: DSH 社區插件目錄(如 skillhub 上的 viztor/dsh-tinyfish 頁)爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;安裝來源以 npm 包與倉庫 README 爲準。

結尾

dsh-tinyfish 把 TinyFish 的免費搜索與 Markdown 抓取接到 DSH web 接縫,默認替換官方按次搜索與 http+turndown 抓取路徑,配置通道與 key 後即可在原生工具裏驗證。更多信息見目錄頁 https://www.skillhub.cn/plugins/viztor/dsh-tinyfish 與倉庫 https://github.com/viztor/dsh-tinyfish。

羽毛球分组比赛记分
小程序二维码

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

小夜