DeepSeek Harness(DSH)内置了 web_search 工具,但默认的官方提供者(deepseek-official)受限于 DeepSeek 的 Anthropic 端点,无法指向其他网关。开发者若想跨网关使用,或需要更灵活的协议支持,需要额外的配置。下面介绍 dsh-web-search-diy 插件,它通过注册 ctx.web 提供者并覆盖 shared searchProvider,实现了对多种协议的支持。
是什么¶
这是一个 DeepSeek Harness(DSH)网页搜索提供方插件,由 aaronlei 维护,采用 MIT 许可证。它将 DSH 内置的 web_search 工具连接到多种协议上,返回结构化引用来源,允许调用模型基于引用作答。
核心功能¶
插件支持以下能力:
- 多协议支持:支持四种可选协议,包括 OpenAI 兼容 Responses API、Anthropic Messages API、智谱 Web Search API(基础检索)和智谱 Web Search in Chat(答案增强)。
- 结构化引用:返回结构化引用来源,方便模型基于引用作答。
- 配置覆盖:注册
ctx.web搜索提供者并覆盖shared searchProvider,与 DSH 生态中的其他提供方插件行为一致。 - 灵活配置:支持自定义端点、模型和凭证引用。
安装与启用¶
通过 npm 发布安装:
dsh plugin --profile web add dsh-web-search-diy
本地开发安装:
dsh plugin --profile web add link:./dsh-web-search-diy
安装后,插件会自动插入 loader、覆盖配置并禁用内置的 DeepSeek-official 搜索,无需手动编辑 cordis.patch.yml。
典型用法¶
插件的核心在于通过配置 mode 来选择协议。
- Responses 模式(默认):使用 OpenAI 兼容的 Responses API。该模式通过
POST /responses并在tools中声明web_search来触发搜索。大多数 OpenAI 兼容网关仅通过此方式触发内置搜索。 - Anthropic Messages 模式:使用 Anthropic 兼容的 Messages API,调用原生
web_search_20250305服务器工具。该模式支持自定义apiVersion和maxUses。 - 智谱搜索模式:包含
zhipu-web-search(基础检索)和zhipu-chat-search(答案增强)两种模式。
在 Anthropic 模式下,可以通过 anthropicThinking 开关禁用思考过程。端点为空时会回退到环境变量 $DEEPSEEK_SEARCH_BASE_URL。
适用场景与注意¶
- 适用场景:需要使用非 DeepSeek 官方端点的开发者;使用 OpenAI 兼容网关但仅通过 Responses API 触发搜索的场景;需要 Anthropic 原生 web_search 工具且希望灵活配置参数的用户。
- 注意:Anthropic 模式不支持通过 effort 或 budget 调整思考。每个 Anthropic 轮次会被记录在会话中。OpenAI 兼容网关仅通过 Responses API 触发搜索,Chat Completions 搜索标志会被静默忽略。
总结¶
该插件将 DSH 的搜索能力与各种协议解耦,适合需要灵活配置网关和模型的场景。更多细节与源码,请参考 GitHub 仓库。