前言¶
DeepSeek Harness (DSH) 的理念是「一切皆插件」。在开发智能体或使用大模型进行复杂任务时,模型容易产生幻觉或缺乏实时信息。dsh-search-first 插件通过在 agent/pre-step 阶段强制执行多源搜索,解决了回答缺乏实时性和准确性问题。
插件定位¶
这是一个 DeepSeek Harness (DSH) Cordis 插件,遵循 “Search first, verify facts, reply last” 的原则。它接管了宿主模型的回答前奏,负责查询提取、统一搜索、页面抓取、结果组织与缓存,最后将组织好的实时情报注入给宿主模型,最终回答仍由宿主模型生成。
核心功能¶
- 可配置的查询提取模型:在提取搜索意图时使用的子模型可自定义,留空则跟随会话模型。
- 引用格式引导:强制引导宿主模型使用标准化的引用格式,便于溯源。
- 多源排序与抓取:对多来源的搜索结果进行排序,并选择性抓取页面内容返回给宿主模型。
- 全链路执行:覆盖查询提取、统一搜索引擎、页面抓取、结果组织、缓存及运行持久化。
安装与启用¶
环境要求¶
- 挂载
dshweb profile,版本需 >= 0.1.1-rc.2。 - 系统安装 Node.js,版本需 >= 22。
安装命令¶
dsh plugin --profile web add https://github.com/v587d/dsh-search-first.git
安装完成后必须重启 dsh web。
卸载¶
dsh plugin --profile web remove dsh-search-first
典型用法¶
- 配置搜索 API:进入设置中的 “Search first” -> “Search APIs” 点击 “Test all connections” 测试连通性。
- 设置密钥:必须导出至少一个 API 密钥(支持 AnySearch / Tinyfish / Tavily)。密钥可配置在环境变量(如
TAVILY_API_KEY)或$DSH_HOME/.credentials.yaml中。AnySearch 支持匿名模式(无需 Bearer header)。 - 使用开关:在会话输入框下方找到 “Search First” 开关来控制单次会话的启用状态。右键点击开关可返回全局默认设置。
配置说明¶
设置路径为:Settings -> Search first。
| 配置项 | 说明 |
|---|---|
| General | 默认启用开关,失败策略(continue/block),注入模式,总体超时时间。 |
| Query Extraction | 指定提取查询的子模型,超时时间,最大 Token 数。 |
| Cache | 缓存目录(默认 $DSH_HOME/search-first,重启后 root 生效),搜索/抓取有效期,清除按钮。 |
| Limits | 最大搜索结果数、最大抓取页数、最大注入字符数。 |
| Search APIs | 运行模式(顺序故障转移/并行扇出合并),三大搜索引擎开关与优先级,单提供商超时,ctx.web 回退,本地 HTTP 回退。 |
适用场景与注意¶
- 使用成本:免费层级通常足够使用。
- 权限风险:插件以当前
dsh进程的权限运行,安装前请检查源码与许可证。 - 生态说明:DeepSeek Harness (DSH) 遵循「一切皆插件」的理念。本插件收录于社区目录,与 DeepSeek / 幻方无官方从属关系。
总结¶
通过强制在回答前执行搜索与事实核查,该插件能有效提升智能体回答的可靠性。更多细节与源码可参考项目主页。