dsh-tool-bandit-search:基于 Thompson Sampling 的自适应搜索策略插件

前言

在使用 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 仓库。

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

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

小夜