前言¶
在使用 DeepSeek Harness (DSH) 開發智能體時,web_search 工具面臨一個經典權衡:快速但覆蓋面窄的查詢,與慢速但覆蓋面廣的查詢。硬編碼單一策略意味着簡單問題會浪費資源,複雜問題可能信息不足。dsh-tool-bandit-search 插件通過 Thompson sampling 上下文多臂老虎機算法,讓工具根據實際使用情況自動選擇搜索策略。
插件介紹¶
這是一個 DeepSeek Harness 插件,旨在替換標準的 web_search 工具。它引入了一個新的 search 工具,利用 Thompson sampling 在兩種搜索策略(”quick” 和 “thorough”)間自適應決策。維護者:siruignaw-sys。許可證:MIT。
核心功能¶
- 策略替換:將 DSH 內置的
web_search替換爲search工具。 - 雙策略選擇:
- quick:單次查詢,最多 5 條結果,速度快,適合簡單事實查詢。
- thorough:運行三個查詢變體(原查詢 + 兩個重述角度)並行合併,最多 10 條結果,速度慢,適合開放性問題。
- 自適應學習:使用 Thompson sampling 算法,基於 Beta(α, β) 分佈採樣選擇策略。
- 獎勵計算:每次調用後,根據結果數量和響應速度計算 0-1 獎勵,更新策略參數。
安裝與啓用¶
使用以下命令安裝插件:
dsh plugin --profile web add github:siruignaw-sys/dsh-tool-bandit-search
安裝後必須重啓 Web UI 才能生效。如果是在本地開發,使用 dsh plugin --profile web add link:/absolute/path/to/dsh-tool-bandit-search。
# 重啓 Web UI
pnpm dsh web
# 或
dsh web
運行示例¶
插件在運行時會輸出日誌,展示選擇的策略、獲得的獎勵以及當前的 Beta 分佈參數:
[bandit-search] arm=quick reward=1.000 durationMs=4393 resultCount=5 stats={"quick":{"alpha":2,"beta":1},"thorough":{"alpha":1,"beta":1}}
[bandit-search] arm=thorough reward=0.854 durationMs=8481 resultCount=10 stats={"quick":{"alpha":2,"beta":1},"thorough":{"alpha":1.85,"beta":1.15}}
適用場景與注意事項¶
該插件適合希望在運行時動態優化搜索策略的場景。需要注意的是:
- 狀態存儲:Bandit 的狀態存儲在內存中,進程重啓後會重置。
- 獎勵指標:當前的獎勵是啓發式指標(基於結果數和延遲),並不代表答案的相關性或正確性。
- 優化範圍:插件僅優化單次調用的策略選擇,無法控制模型在一次對話中的多次
search調用行爲。 - API 穩定性:該插件基於 dsh 開發者預覽構建,API 可能變更。
結語¶
dsh-tool-bandit-search 爲 DSH 插件生態提供了一種通過在線學習自動調整工具行爲的方式。它不依賴額外的 API Key,直接複用 DSH 的 ctx.web 服務。更多細節與源碼,可參考目錄頁或 GitHub 倉庫。