前言¶
DeepSeek Harness(DSH)開發者在使用工具時,常面臨兩個痛點:一是工具調用過程處於“黑盒”狀態,難以診斷失敗原因或等待時間;二是 web_snapshot 和 browser_open 等操作耗時較長,拖慢了整體響應速度。dsh-searchflow 插件旨在解決這兩個問題,通過泳道動效展示工具調用全鏈路,並攔截緩存請求以大幅縮短渲染時間。
核心價值¶
該插件由 Dayi-Z 維護,提供兩項核心能力:
1. 可視化:將 web_search → web_fetch → web_snapshot → browser_open 等步驟實時呈現在工具調用行內,用 wb_* 動效圖標(運行中藍光呼吸 / 完成綠勾 / 失敗紅 X)替換默認圖標,並用 ⚠ 徽標標記噪聲(如 Cloudflare 挑戰頁)。
2. 加速:在 tools/execute 瀑布流中攔截緩存請求,web_snapshot 從 90s 縮短至 5ms,browser_open 前臺等待時間縮短至 0ms,並自動預取搜索結果 Top-3。
泳道可視化¶
插件將工具調用映射爲六個泳道階段,每個階段對應特定的工具和圖標。工具行內會顯示實時狀態(緩存 / 規則 徽標)。
| 階段 | 工具 | 圖標 |
|---|---|---|
| search | web_search, web_search_pro, web_platform_search, github_issue_list, browser_automation_search, wiki_recall, mcp_search |
拉匣尋物 |
| fetch | web_fetch, web_fetch_pro, web_exa_contents, browser_crawl, wiki_acquire |
抓取 |
| snapshot | web_snapshot, browser_screenshot |
取景·定影 |
| click | browser_open, browser_click, browser_type, browser_hover, browser_set_files, browser_recipe_run, browser_scroll, browser_automation_run |
指尖按靶 |
| read | browser_read, browser_evaluate, browser_status, browser_opencli_*, browser_script_*, wiki_*, mcp_call, web_rule, web_history, web_search_stats, github_issue_read 等 |
16宮格掃描 |
| navigate | 其它導航類工具 | 路徑繪製 |
搜索流程卡片¶
除了行內圖標,插件還提供任務級的“搜索流程”面板(右下角,可收起/展開):
- 階段進度條:顯示
搜索中 → 閱讀中 → 撰寫中,直接複用行內動效圖標。 - 漸進結果流:搜索完成後,Top-6 結果逐個浮現(70ms 錯峯),可點擊直達原文。
- 完成摘要 Chips:顯示總耗時、來源數、去重、驗證等級(高/中/低)及約 tokens 數,不暴露引擎歸屬。
- 深度模式:默認關閉,開啓後自動擴展查詢(CJK 查詢加英文學術關鍵詞,英文加中文綜述關鍵詞)。
緩存攔截與加速¶
插件通過內存 LRU(200/1h)和 web-search-pro store.db 雙層緩存攔截請求,具體收益如下:
| 攔截點 | 行爲 | 收益 |
|---|---|---|
| web_snapshot | 命中緩存直接短路返回 {value} |
90s → 5ms |
| browser_open | 命中緩存立即返回,真實導航後臺預熱 | ~13-18s → ~0ms 前臺等待 |
| 搜索結果 Top-3 | 完成後對結果 URL 串行預取渲染 | 後續 open/snapshot 直接命中 |
| URL 規範化 | 共享緩存鍵(去 www / 尾斜槓 / 參數排序) | 變體重複渲染歸零 |
| 噪聲檢測 | 標記 Cloudflare 挑戰 / 404 / 噪聲查詢 | 假成功一目瞭然 |
better-sidebar 集成¶
搜索流程面板支持兩種寄生形態,自動選擇:
- 頁籤形態:當
ctx.betterSidebar在場時,註冊爲側欄頁籤(idsearchflow:panel),鋪滿容器。支持“檢索記錄”,最多保留 20 條歷史,單條展開最多 30 條結果。 - 浮動卡片形態:當 better-sidebar 缺席時,顯示右下角固定卡片(368px 毛玻璃),可收起爲膠囊。
- 軟依賴:插件不強制 import
better-sidebar類型,只按結構探測。支持遲到接入(ctx.inject)和手動覆蓋(localStorage['sf.host'])。 - 無障礙:
prefers-reduced-motion下禁用動畫。調試可通過window.__SF_DEBUG__.task透出狀態。
搜索定義與工具白名單¶
插件定義了“一次搜索”的邊界,只有以下 4 個工具能開一輪新任務:
web_searchweb_search_proweb_platform_searchgithub_issue_list
其餘網頁工具(如 web_fetch, browser_open, wiki_recall)只順帶推進當前任務。知識庫 / MCP 工具(如 wiki_recall, mcp_search)雖然帶 search 圖標,但不算 Web 搜索,不會誤開搜索流程面板。
安裝¶
dsh plugin --profile web add dsh-searchflow
安裝後重啓 profile 即可生效。
開發與依賴¶
- 宿主依賴:需要宿主提供
webServer、tools注入,以及browser服務(可選)。 - 環境要求:Node.js
^22.19 || >=24,DSH>=0.1.0-rc.6。 - 調試:前端調試可通過
window.__SF_DEBUG__.task訪問。
鏈接¶
- 插件目錄:https://www.skillhub.cn/plugins/Dayi-Z/dsh-searchflow
- GitHub 倉庫:https://github.com/Dayi-Z/dsh-searchflow