dsh-web-search-minimax:MiniMax 优先、DuckDuckGo 兜底的 ctx.web 联网搜索

前言

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 端点。

核心功能

双后端链路

插件注册的提供方 minimax-fallback 按顺序尝试:

  1. MiniMax:通过 MiniMax 的 Anthropic 兼容 Messages 端点调用原生 web_search_20250305 服务端工具(与 Harness 自带 DeepSeek 搜索提供方使用的线路格式一致)。每次搜索占用一次模型轮次,返回 MiniMax 原生结果块,而非抓取正文拼出来的摘要。
  2. 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 web profile 中运行智能体,希望默认用 MiniMax 原生联网搜索,又要在欠费、无 Key 或故障时仍能搜到内容的开发者。
  • 需要可观测回退原因(web/minimax-fallback-search 日志事件)以便排查配额问题的环境。

使用前应了解

  • 插件以当前 dsh 进程权限运行;安装前请自行审阅 源码与 MIT 许可证。
  • 社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系,属于 DSH「一切皆插件」生态中的第三方条目。
  • GitHub 上该仓库公开星标为 0(以目录线索为准);选型时请结合自述测试环境与自身 Harness 版本验证。

结尾

dsh-web-search-minimax 把「单提供方、无内置回退」的 Harness 搜索接缝扩展成一条可配置的 MiniMax 优先链路,并在无凭证时仍可通过 DuckDuckGo 保持 web_search 可用。安装命令、配置键与回退条件均以仓库 README 为准。

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

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

小夜