前言¶
DeepSeek Harness(DSH)通过 ctx.web 接缝向智能体提供联网搜索。Harness 一次只会选定一个搜索提供方,内置并不会自动在多个后端之间切换。当 MiniMax 欠费、未配置密钥、服务端错误或超时时,要么直接失败,要么需要你自己换提供方。
dsh-web-search-minimax 由维护者 Franklinyung 发布,分类为联网工具。它在单个注册名 minimax-fallback 下自行完成「MiniMax → DuckDuckGo」链路,并通过 web.searchProvider: minimax-fallback 固定选用,避免误选到其他已注册的提供方。
这是什么¶
一句话:面向 DSH ctx.web 接缝的 MiniMax 优先联网搜索插件;在 MiniMax 无配额、无凭证、报错或超时等情况下,可按配置回退到 DuckDuckGo 公共 HTML 端点。
- 仓库:Franklinyung/dsh-web-search-minimax
- 目录页:SkillHub 插件页
- 许可证:MIT(见仓库 README)
- 包版本:1.0.0(见
package.json) - 运行环境:Node
>=20;README 注明在 DeepSeek Harness 0.2.2-rc.1、Node 24 上做过验证
核心功能¶
双后端链路¶
插件注册的提供方 minimax-fallback 按顺序尝试:
- MiniMax:通过 MiniMax 的 Anthropic 兼容 Messages 端点调用原生
web_search_20250305服务端工具(与 Harness 自带 DeepSeek 搜索提供方使用的线路格式一致)。每次搜索占用一次模型轮次,返回 MiniMax 原生结果块,而非抓取正文拼出来的摘要。 - DuckDuckGo:当 MiniMax 无凭证、返回配额/鉴权/服务端错误(例如 HTTP 402、HTTP 429)、在默认 45 秒内超时,或结果数为 0 时启用。DuckDuckGo 遇到反爬
202页面时,会在 0 s、1.5 s、5 s 以不同 User-Agent 重试。
未配置 MiniMax 凭证时不会因此把 web_search 从接缝上摘掉:DuckDuckGo 无需密钥,提供方仍可被认定为可用并直接进入 DuckDuckGo。
两端均失败时,返回一条合并错误,说明两个后端各自失败原因。
与接缝的对接方式¶
- 结果规范化为接缝要求的
sources[]字段(url、title、snippet、publishedAt);接缝会按调用方的maxResults截断。 - 每次搜索追加仅用于日志的会话事件
web/minimax-fallback-search,记录实际后端(minimax或duckduckgo)、端点、查询及回退原因,便于排查配额问题。 - 调用方中止请求时,提供方不抛错,以
AbortError传播取消。
无需设置页¶
README 明确:没有独立设置页。Plugins → Web search 页面编辑的是内置 DeepSeek 提供方,不是本插件。配置通过 profile 的 cordis.patch.yml 覆盖项完成。
安装与启用¶
在 web profile 下添加 bundle:
dsh plugin --profile web add dsh-web-search-minimax
也可在 Harness UI:Plugins → Add(或插件市场)中搜索 dsh-web-search-minimax;bundle 的 patch 会插入提供方行并固定 web.searchProvider。
若客户端提示,重启 Harness;提供方行显示为已启用后即生效。
卸载:在 Plugins 已安装 bundle 列表移除,或执行:
dsh plugin --profile web remove dsh-web-search-minimax
移除后固定提供方消失,接缝回到基础组合所 pin 的搜索提供方。
配置¶
默认值来自 bundle 自带的 cordis.patch.yml。在 profile 自己的 cordis.patch.yml 中重写对应行即可覆盖(后应用的 profile 层覆盖 bundle 层)。
| Key | 默认值 | 含义 |
|---|---|---|
minimaxBaseURL |
https://api.minimaxi.com/anthropic/v1 |
Anthropic 兼容 API 根路径,实际请求会追加 /messages。非中国区账号可改为国际端点。 |
minimaxModel |
MiniMax-M3 |
辅助搜索轮次所用模型;须接受 thinking: {type: "disabled"}。MiniMax-M3.1-Flash 不接受该参数,会始终触发回退。 |
minimaxApiKeyEnv |
MINIMAX_CN_API_KEY |
凭证环境变量名;先经 ctx.credentials,再读启动环境。 |
minimaxApiKey |
未设置 | 本地实验用明文密钥;生产环境优先 minimaxApiKeyEnv,避免密钥写入配置。 |
minimaxApiVersion |
2023-06-01 |
anthropic-version 请求头。 |
minimaxMaxTokens |
4096 |
搜索轮次生成 token 上限。 |
minimaxMaxUses |
5 |
单次请求内原生 web_search 工具可用次数上限。 |
minimaxTimeoutMs |
45000 |
MiniMax 段超时,超时后尝试 DuckDuckGo。 |
duckduckgoFallback |
true |
设为 false 时 MiniMax 失败不再回退。 |
duckduckgoTimeoutMs |
20000 |
DuckDuckGo 段超时。 |
duckduckgoEndpoint |
https://html.duckduckgo.com/html/ |
DuckDuckGo HTML 搜索端点。 |
duckduckgoRegion |
wt-wt |
请求中的 kl 区域参数。 |
行级 config 会被整体替换,覆盖时需写全仍要保留的键。示例(国际端点与国际环境变量名):
- id: web-search-minimax-fallback
name: dsh-web-search-minimax
config:
minimaxBaseURL: https://api.minimaxi.io/anthropic/v1
minimaxModel: MiniMax-M3
minimaxApiKeyEnv: MINIMAX_API_KEY
duckduckgoFallback: true
凭证可存入 Harness 凭证库(例如在 Models 页添加 MiniMax 提供方时指定相同的 apiKeyEnv),或在启动 dsh 的环境中导出对应变量。
典型用法与行为要点¶
智能体侧仍通过 Harness 既有的 ctx.web / web_search 能力发起查询,无需为本插件单独调用新 API。安装并 pin 提供方后,搜索自动走 minimax-fallback 链路。
需要注意的行为差异:
- MiniMax 段是一次完整模型调用,延迟与 token 消耗高于 DuckDuckGo 的纯 HTML 请求。
- DuckDuckGo 无 API 密钥、无 SLA;突发请求可能长时间停留在反爬页面,即便重试仍失败,最终错误会同时写明两个后端。若只希望看到 MiniMax 自身错误,将
duckduckgoFallback设为false。 - MiniMax 段绑定 Anthropic Messages 线上的
web_search_20250305;若 MiniMax 变更该能力,主路径会持续回退到 DuckDuckGo。 - DuckDuckGo 回退依赖其 HTML 结果页结构;对方改版可能导致解析失败,需插件侧修复,而非改配置。
适用场景与注意¶
适合谁
- 已在 DSH
webprofile 中运行智能体,希望默认用 MiniMax 原生联网搜索,又要在欠费、无 Key 或故障时仍能搜到内容的开发者。 - 需要可观测回退原因(
web/minimax-fallback-search日志事件)以便排查配额问题的环境。
使用前应了解
- 插件以当前
dsh进程权限运行;安装前请自行审阅 源码与 MIT 许可证。 - 社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系,属于 DSH「一切皆插件」生态中的第三方条目。
- GitHub 上该仓库公开星标为 0(以目录线索为准);选型时请结合自述测试环境与自身 Harness 版本验证。
结尾¶
dsh-web-search-minimax 把「单提供方、无内置回退」的 Harness 搜索接缝扩展成一条可配置的 MiniMax 优先链路,并在无凭证时仍可通过 DuckDuckGo 保持 web_search 可用。安装命令、配置键与回退条件均以仓库 README 为准。