前言¶
在 DeepSeek Harness 裏做智能體,常見需求是「當前對話用的不是 DeepSeek,但仍要聯網查資料」。Harness 自帶的 web_search 往往和某個 web 搜索 provider 綁定;若再裝一個會註冊 searchProvider 的插件,還可能和現有配置衝突。下面介紹的插件走另一條路:用插件自己的 DeepSeek API Key 調用 DeepSeek 官方 Search 接口,同時提供左側欄搜索頁和全局工具 deepseek_search,且不接管 ctx.web 的搜索 provider。
這是什麼¶
dsh-deepseek-search(npm 包名 @local/dsh-deepseek-search,當前版本 0.2.0,MIT 許可證)由維護者 SivanCola 發佈,分類爲聯網工具。它把能力拆成兩半:瀏覽器側在左側欄增加「DeepSeek 搜索」入口,主欄裏是完整搜索頁;Host 側註冊工具 deepseek_search,並對全部 agent / 任意模型可見,另提供搜索頁使用的三個 HTTP 路由。搜索計費與鑑權用的是本插件解析出的 DeepSeek Key,與當前會話所用模型服務商(DeepSeek、Anthropic、OpenAI 兼容、本地模型等)無關。
核心功能¶
左側欄搜索頁¶
安裝並激活後,左側欄會出現放大鏡入口(README 示例環境中爲 Plugins / Schedules / Context 之後的第 4 個圖標)。點開後可在主欄輸入關鍵詞、調整結果條數、開關正文抓取、查看結果卡片,並在面板中配置或查看 Key 來源(脫敏顯示)。
模型工具 deepseek_search¶
任意模型在會話中均可調用該工具,參數如下:
| 參數 | 類型 | 必填 | 說明 |
|---|---|---|---|
query |
string | 是 | 1–128 字符,支持 DeepSeek 搜索語法 |
count |
integer | 否 | 1–50,默認 10 |
need_content |
boolean | 否 | 爲 true 時在結果中返回網頁正文(更慢、體積更大) |
ori_question |
string | 否 | 用戶原始問題,輔助理解搜索意圖 |
query 可透傳官方語法,例如 site:、-site:、排除詞、"精確短語"、lang:、after: / before: 等(詳見倉庫 README 表格)。
返回給模型的是緊湊文本;結構化 JSON 含 results 數組,字段包括 title、url、snippet、summary、content、siteName、authority、rerankScore 等。
API Key 解析(四級回退)¶
每次調用重新解析,改動後下一次調用即生效,無需重啓。優先級從高到低:
config.apiKey(明文,僅適合調試)- Harness 憑證庫中的
DEEPSEEK_SEARCH_API_KEY(面板保存的獨立 Key) - 模型列表裏已配置的 DeepSeek 官方 Key(默認開啓
useOfficialKey,從 provider 目錄推導憑證名,兜底DEEPSEEK_API_KEY) - 環境變量
DEEPSEEK_SEARCH_API_KEY/DEEPSEEK_API_KEY
若已在 Harness 中配置可用的官方 DeepSeek,多數情況下搜索可直接可用;若希望搜索走單獨賬號或額度,在面板填寫獨立 Key 即可。關閉自動複用官方 Key:
config:
useOfficialKey: false
注意:自動複用僅 Key,不跟隨官方 provider 的 baseURL;自定義接口地址需設置 baseUrl(默認 https://api.deepseek.com)。
設計取捨(與現有 web_search 的關係)¶
插件不註冊爲 ctx.web 的 searchProvider,避免觸發「無配置 + 多個 provider」時的模糊判定,從而儘量不干擾已有 web_search。Key 僅在 Host 側使用,瀏覽器側只看到脫敏信息;搜索請求由 Host 發起。
Host 暴露的 POST 路由(面板調用):
| 路徑 | 作用 |
|---|---|
/api/dsh-deepseek-search/status |
配置狀態、脫敏 Key、來源、默認值 |
/api/dsh-deepseek-search/search |
代理搜索 |
/api/dsh-deepseek-search/key |
保存或清除憑證 |
安裝與啓用¶
換機或首次從 GitHub 安裝,使用資料中的命令:
plugin_manager action=install_bundle target=https://github.com/SivanCola/dsh-deepseek-search
若修改了 package.json、cordis.patch.yml 或 locale,需先卸載再安裝同一 bundle;僅改 index.js / client.js 時,可通過 set_bundle enabled=false 再 enabled=true 熱激活。具體 remove / install 步驟見倉庫 README。
可選配置寫在 profile 的 cordis.patch.yml 或插件內 cordis.patch.yml,例如:
| 鍵 | 默認 | 說明 |
|---|---|---|
apiKey |
'' |
明文 Key |
apiKeyEnv |
DEEPSEEK_SEARCH_API_KEY |
憑證 / 環境變量名 |
baseUrl |
https://api.deepseek.com |
接口 origin |
count |
10 |
默認條數 |
needContent |
false |
默認是否抓正文 |
timeoutMs |
25000 |
單次超時 |
toolName |
deepseek_search |
工具名 |
環境變量方式示例:
export DEEPSEEK_SEARCH_API_KEY=sk-xxxx
修改環境變量後需重啓 DSH 進程。
典型用法¶
- 安裝 bundle 並確認左側欄出現「DeepSeek 搜索」、工具列表中有
deepseek_search。 - 若模型列表已有有效 DeepSeek 官方 Key,可先直接在面板試搜;否則點放大鏡 → 設置 → 粘貼
sk-...保存爲獨立 Key。 - 在任意模型的會話中,讓 agent 調用
deepseek_search,傳入query;需要全文時再設need_content: true。
面板或工具返回錯誤時,README 排錯表列出了常見情況:401(Key 失效,會標明實際使用的是 DEEPSEEK_API_KEY 還是 DEEPSEEK_SEARCH_API_KEY)、402 餘額不足、429 QPS 超限、未配置 Key 等。
適用場景與注意¶
適合:希望用 DeepSeek Search API 做聯網、且不想改動現有 web_search provider 鏈路的 DSH 用戶;需要在非 DeepSeek 模型會話裏仍調用同一套搜索工具的場景。
注意:
- 插件在當前 DSH 進程權限下運行;安裝前請自行查看 GitHub 源碼 與 MIT 許可證,確認可接受的行爲與依賴。
- 搜索與正文抓取按 DeepSeek 官方計費規則(README:每 1000 次成功請求 5 元,失敗或空結果不計費);賬號 Search QPS 100、Fetch QPS 25。
need_content受目標站點可用性影響,可能得到空正文。- 社區目錄 SkillHub 插件頁 爲獨立站點展示,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
dsh-deepseek-search 用獨立解析的 DeepSeek Key 接通官方 Search 接口,以「側欄搜索頁 + 全局 deepseek_search 工具」的方式提供聯網能力,並刻意避開對 ctx.web search provider 的佔用。進一步瞭解與 issue 反饋見 GitHub 倉庫;目錄索引見 SkillHub 頁面。
- 目錄頁:https://www.skillhub.cn/plugins/SivanCola/dsh-deepseek-search
- GitHub:https://github.com/SivanCola/dsh-deepseek-search