用 anysearch-dsh 給 DeepSeek Harness 的 web_search 接上 AnySearch

前言

給智能體做聯網搜索,常見做法是再掛一個 MCP、再配一套 Skill,或者讓模型去調一個全新的搜索工具。結果是:普通問答要先選工具,引用卡片和內置 web_search 對不上,密鑰又散落在幾處配置裏。

DeepSeek Harness(以下簡稱 DSH)把能力拆成可裝卸的插件。官方倉庫把核心理念寫成「一切皆插件」:模型、工具、會話、UI 都可以在配置層替換,不必改 Harness 源碼。社區裏有一份適配層,專門把 AnySearch 接到 Harness 已有的 web_search 上,同時補上能力發現、垂直搜索和有界批量搜索。這個插件叫 anysearch-dsh,收錄在獨立的社區插件目錄 deepseek-harness-plugin.com 中。該目錄與 DeepSeek / 幻方沒有官方從屬關係,不是官方應用商店。

本文按插件目錄頁、GitHub 倉庫 README、package.json、中文使用指南和 DeepSeek Harness 官方倉庫交叉覈對後整理:它是什麼、裝哪條命令、四個工具怎麼用,以及安裝前要看清的權限與能力邊界。

這是什麼

anysearch-dsh 是 AnySearch 面向 DeepSeek Harness 的搜索插件。npm 包名是 @anysearch/anysearch-dsh,當前文檔適用版本爲 0.1.1,由 GitHub 組織 anysearch-team 維護,倉庫地址爲 anysearch-team/anysearch-dsh,許可證爲 MIT。主要語言是 TypeScript。社區目錄把它分在「界面增強」,收錄日期爲 2026-08-15。截至 2026-08-17,GitHub 倉庫星標爲 74。

它解決的問題可以概括成一句話:Agent 仍然調用 Harness 原生的 web_search,插件負責把請求發到 AnySearch,並把結果轉成 Harness 能展示和引用的來源。按倉庫說明,你不需要讓模型學習一個新的普通搜索工具,也不需要單獨配置 MCP Server。

隨包提供的 profile 層會把 AnySearch 設爲現有 ctx.web Provider,並掛載高級工具。默認配置裏插件條目的 idweb-search-anysearchweb 配置裏的 searchProvideranysearch

核心功能

當前 0.1.1 向模型暴露四個搜索入口:

使用場景 Harness 工具
普通網頁搜索 web_search
查看可用領域和標籤 anysearch_capabilities
垂直或參數化搜索 anysearch_search
一次執行一至五個搜索 anysearch_batch_search

按 README 和使用指南,已覈實的能力包括:

  • 通過內置 web_search 走 AnySearch,返回帶標題、摘要和 URL 的即時來源,便於引用。
  • anysearch_capabilities 讀取即時目錄,拿到可搜索領域、垂直分類和支持的參數;兩級能力目錄結果會向模型保留請求 ID。
  • anysearch_search 可使用 tagparamszonelanguage 做垂直或參數化搜索。
  • anysearch_batch_search 併發執行一至五個完整搜索項,按輸入順序返回;單項失敗時保留其他成功結果。每項單獨鑑權、限流和計費。
  • 高級搜索結果可保留請求 ID、耗時,以及有字符上限的清洗正文。
  • 未配置 API Key 時使用 AnySearch 匿名額度;配置後走賬號級額度。
  • 憑據通過 DSH 憑據系統解析 ANYSEARCH_API_KEY。受管憑據文件裏輪換 Key 後,下一次搜索自動使用新值,不必重啓 DSH。啓動環境變量優先級更高,改環境變量需要重啓進程。
  • Agent 取消操作時會中止正在進行的搜索。HTTP 請求有 55 秒 deadline,三個高級工具聲明 60 秒預算。
  • 拒絕把查詢或憑據轉發到 HTTP 重定向目標。

web_search 只向通用 Web Search 接口提交可移植字段:titleurlsnippet。完整 content 不會進入 web_search 結果。要拿清洗正文,需要走 anysearch_search 或批量工具,並傳入 includeContent: true。單次搜索所有結果的 content 累計最多 200,000 字符;向模型展示時再截到配置項 maxRenderedContentChars(默認 12000)。批量搜索裏,200,000 字符上限按每個獨立搜索計算,maxRenderedContentChars 由整批共享。

當前版本明確不提供 anysearch_extract,也就是沒有網頁正文提取工具。AnySearch MCP 另有 extract;DSH 插件這條路徑目前沒有接上。

安裝與啓用

目錄頁給出的安裝命令如下,在 DeepSeek Harness 終端中運行即可:

dsh plugin add github:anysearch-team/anysearch-dsh

如需可復現安裝,目錄頁建議固定 commit 哈希:

dsh plugin add github:anysearch-team/anysearch-dsh#commit

commit 換成倉庫裏實際的提交哈希。插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。安裝前應檢查源代碼倉庫和許可證。

倉庫 README 和中文使用指南推薦把 npm 包裝進 web profile。環境要求是 Node.js 22.19 或 Node.js 24+、pnpm 11.7,以及可以通過 npx 運行的 DeepSeek Harness。DSH 插件命令用 pnpm 管理 profile 依賴,因此 pnpm 必須能在 PATH 裏直接運行。Windows、Linux 和 macOS 使用同一條安裝命令:

npx -y @deepseek-ai/dsh plugin --profile web add @anysearch/anysearch-dsh

然後啓動:

npx -y @deepseek-ai/dsh web

快速體驗不需要 API Key,未配置時請求使用 AnySearch 匿名額度。匿名額度受共享免費額度和更低限流約束,耗盡或觸發限流後需要稍後重試,或改配賬號 Key。

安裝後可用下面這條命令檢查最終組合配置,輸出裏不應出現真實密鑰:

npx -y @deepseek-ai/dsh --profile web --dump-config

配置中應能看到:

- id: web
  config:
    searchProvider: anysearch

以及插件行:

- id: web-search-anysearch
  name: '@anysearch/anysearch-dsh'

更新和移除(倉庫 README):

npx -y @deepseek-ai/dsh plugin --profile web update @anysearch/anysearch-dsh
npx -y @deepseek-ai/dsh plugin --profile web remove @anysearch/anysearch-dsh

配置 API Key

API Key 是可選的。持續使用或需要賬號級額度時,倉庫建議到 anysearch.com 註冊並登錄,再到 API Keys 獲取。推薦寫入 DSH 管理的憑據文件,默認位置是 ~/.dsh/.credentials.yaml;如果設置了 DSH_HOME,則是 $DSH_HOME/.credentials.yaml

ANYSEARCH_API_KEY: "as_sk_your_key"

as_sk_your_key 是佔位符,必須換成有效 Key。原樣保存時,插件會在發送 HTTP 請求前拒絕它;若要繼續匿名訪問,刪除整條配置即可。Windows 默認路徑對應 C:\Users\<用戶名>\.dsh\.credentials.yaml

插件配置只保存引用名 ANYSEARCH_API_KEY,不保存真實 Key。DSH 的標準本地憑據 Provider 按以下順序解析同名引用:啓動環境、$DSH_HOME/.credentials.yaml、當前調用目錄的 .env$DSH_HOME/.env。請不要把真實 API Key 寫入 Git 倉庫、截圖、日誌或問題報告。

當前 DSH Web 設置頁不會爲第三方 Provider 自動生成 AnySearch Key 輸入框,因此只能用受管憑據文件或環境變量。官方 base profile 已包含插件所需的標準 credentials 服務。

默認 API 地址是 https://api.anysearch.com。若要改測試環境或自託管兼容服務,在目標 profile 的用戶配置層覆蓋同一條 id: web-search-anysearch,保持 id 不變,完整替換 config,不要用不同 ID 再加第二個 AnySearch Provider:

- id: web-search-anysearch
  config:
    apiKeyEnv: ANYSEARCH_API_KEY
    baseURL: https://api.anysearch.com
    maxRenderedContentChars: 12000

apiKeyEnv 是憑據引用名,不是 Key 字面量。baseURL 必須是 HTTP 或 HTTPS 地址。

典型用法

安裝完成後,像平時一樣向 DeepSeek Harness 提問。普通聯網查詢繼續走 web_search。使用指南給出的提示詞示例包括:

搜索 DeepSeek Harness 最近的發佈變化,並附上來源鏈接。
查找今天關於開源 Agent Harness 的重要新聞,比較三個來源。
覈實某個 GitHub 項目當前的安裝方式,並引用官方文檔。

需要專業數據時,應先調用 anysearch_capabilities 讀取即時目錄,再把返回的標籤和參數交給 anysearch_search,不要自行猜測 tag 或參數名。需要同時執行多個獨立查詢時,使用 anysearch_batch_search,一次最多五項。使用指南里的提示詞示例:

查詢 AAPL 最新行情。先獲取 finance 領域能力,再使用準確的標籤和參數搜索。
檢索最近的 CVE,並保留 AnySearch 的請求 ID 和搜索耗時。
分別搜索三個開源 Agent Harness 的最新版本,並保留每項請求 ID。使用批量搜索。

普通查詢讓 Harness 自動選 web_search 即可。只有垂直標籤、結構化參數或完整元數據有價值時,才使用 anysearch_search

如果 Provider 未註冊,Harness 會報告配置的搜索 Provider 缺失;如果 AnySearch 返回錯誤,工具會顯示安全錯誤消息或 HTTP 狀態說明。出現 WEB_PROVIDER_ERROR 時,使用指南建議依次檢查:baseURL 是否正確、網絡能否訪問 api.anysearch.com、API Key 是否有效或過期、匿名/賬號額度是否用盡、服務端是否返回 429 或 5xx。報告問題時提供錯誤消息和發生時間,不要提供真實 API Key。上游業務錯誤文本最多保留 2,000 字符,並以 JSON 字符串轉義,前面會標明這是不可信的上游數據而不是指令。

適用場景與注意事項

適合已經在用 DeepSeek Harness、希望 AnySearch 成爲默認搜索 Provider、並且更看重原生 web_search 展示和引用的人。倉庫把 DSH 插件、AnySearch Skill、AnySearch MCP、直接 HTTP 四種接入寫成同一套搜索後端上的不同適配層:只在 DSH 裏用、想替換內置搜索,選這個插件;當前就需要 Extract,應另配 AnySearch MCP,而不是指望本插件補上提取工具。

使用前需要接受這些邊界:

  • DeepSeek Harness 仍處於開發預覽階段,可能發佈不兼容變更,插件可能需要同步升級。
  • 本插件當前不提供 anysearch_extract
  • 通用 web_search 仍只開放查詢詞和結果數量;清洗正文和完整元數據走專屬工具。
  • anysearch_batch_search 發出多次獨立 HTTP 請求,可能部分成功、部分限流或額度不足,語義不同於 MCP 服務端統一處理的 batch。
  • 插件以當前 dsh 進程權限運行。安裝前檢查源碼與許可證;需要可復現安裝時固定 commit 哈希。
  • 社區插件目錄是獨立站點,收錄信息(例如星標)可能滯後於 GitHub。以倉庫和 package.json 爲準覈對版本與命令。

小結

anysearch-dsh 做的是一層很薄、但貼着 Harness 走的適配:普通搜索繼續叫 web_search,垂直和批量能力用三個專屬工具補上,密鑰只以引用名進入配置。當前版本是 0.1.1,MIT 許可,維護者是 anysearch-team。

目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/anysearch-dsh/

GitHub:https://github.com/anysearch-team/anysearch-dsh

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

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

小夜