dsh-searchflow:實時搜索加速與流程可視化插件

前言

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 在場時,註冊爲側欄頁籤(id searchflow:panel),鋪滿容器。支持“檢索記錄”,最多保留 20 條歷史,單條展開最多 30 條結果。
  • 浮動卡片形態:當 better-sidebar 缺席時,顯示右下角固定卡片(368px 毛玻璃),可收起爲膠囊。
  • 軟依賴:插件不強制 import better-sidebar 類型,只按結構探測。支持遲到接入(ctx.inject)和手動覆蓋(localStorage['sf.host'])。
  • 無障礙:prefers-reduced-motion 下禁用動畫。調試可通過 window.__SF_DEBUG__.task 透出狀態。

搜索定義與工具白名單

插件定義了“一次搜索”的邊界,只有以下 4 個工具能開一輪新任務:

  1. web_search
  2. web_search_pro
  3. web_platform_search
  4. github_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
羽毛球分组比赛记分
小程序二维码

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

小夜