Skip to content

[Bug] openai-compatible 通道「原生联网搜索」无法触发:WebSearch 报 "does not encode provider-native WebSearch"(小米 MiMo) #803

Description

@Tasyer

使用环境

  • 操作系统:Windows 10(19045,x64)
  • ZCode 版本:3.14.3.7762
  • 模型通道:自定义「小米」提供方,API 类型 openai-chat-completions(baseUrl: https://api.xiaomimimo.com/v1),模型 mimo-v2.6-flash
  • 相关开关:模型级 supportsNativeWebSearch=true(设置页「原生联网搜索」)、全局 nativeSearchEnhancementsEnabled=true;MiMo 开放平台「控制台 → 插件管理」的 Web Search 插件已激活(超过 5 分钟生效缓存)

复现步骤

  1. 添加小米 MiMo 提供方(API 类型选择 OpenAI Chat Completions,https://api.xiaomimimo.com/v1),启用 mimo-v2.6-flash
  2. 在模型设置中开启「原生联网搜索」,并确认全局原生搜索增强已开启
  3. 在 MiMo 开放平台激活 Web Search 插件(MiMo 官方文档要求的前置条件)
  4. 在会话中触发 ZCode 的 WebSearch 工具(例如让它搜索今日新闻)

期望表现

ZCode 将「原生联网搜索」编码进请求:按 MiMo 文档在 POST /v1/chat/completions 请求体携带:

"tools": [{ "type": "web_search", "max_keyword": 3, "force_search": false, "limit": 5, "user_location": { "type": "approximate" } }],
"tool_choice": "auto"

force_search 语义:false = 模型自判是否需要搜索,true = 强制搜索(显式调用 WebSearch 时可置 true)。搜索结果以响应 annotations(url_citation)返回,用量见 usage.web_search_usage。

实际表现

调用 WebSearch 工具时在本地直接失败,报错原文:

Provider API kind openai-compatible does not encode provider-native WebSearch

openai-compatible 类型的提供方适配器没有实现 provider-native WebSearch 的请求编码,调用在发出 HTTP 请求之前即被拒绝。平台侧插件与两侧开关都已就绪,但请求体永远不会携带 web_search tool,联网搜索无法触发。也就是说:supportsNativeWebSearch 只声明了能力,真正扣扳机的适配器编码缺失,声明与实现不一致。

证据:MiMo 官方文档

  • 联网搜索指南:https://mimo.mi.com/docs/zh-CN/quick-start/usage-guide/text-generation/tool-calling/web-search
  • OpenAI Chat Completions API 参考(web_search tool 参数 schema):https://mimo.mi.com/docs/zh-CN/api/chat/openai-api
  • 文档要点:
    • 平台插件激活只是「许可」,真正触发搜索的是每个请求由客户端携带的 tools:[{type:"web_search"}];
    • 该工具仅支持 OpenAI Chat Completions 协议(原文 “Other API protocols are not supported for the time being”;Anthropic 协议参考全文无 web_search),因此换协议接入也绕不开 openai-compatible 编码;
    • mimo-v2.6-flash 在支持模型列表内;
    • 参数:type(目前仅 web_search)、force_search、max_keyword(1–50)、limit(1–50)、user_location(可选)。

建议修复

为 openai-compatible 提供方实现原生 WebSearch 编码:当模型声明 supportsNativeWebSearch 时,向请求体注入对应厂商的 web_search tool schema(MiMo:type/max_keyword/force_search/limit/user_location + tool_choice=auto),并把响应 annotations 映射为工具结果。若担心不同厂商 schema 差异,可按 baseUrl(如 api.xiaomimimo.com)白名单注入,或允许提供方配置自行声明 tool schema。

日志与截图

本地 %USERPROFILE%\.zcode\logs 目录当前不存在,暂无可附日志包;报错原文见上。本机仅实测小米 MiMo 通道,预期任何 openai-compatible 提供方 + 勾选「原生联网搜索」的模型都会复现。

Activity

  1. github-actions commented on Sep 24, 2026

    @github-actions

    👋 感谢你的反馈,我们已经收到。

    • 维护者看到后会尽快回复你。
    • 状态保持为 status: 待评估,你可以随时补充信息。
    • 信息不全时我们会打上 needs: 更多信息 标签并 @ 你。

    👋 Thanks — we've received your issue.

    • A maintainer will get back to you as soon as we can.
    • Status stays at status: 待评估 (Triage); feel free to add context.
    • If we need more details, we'll add needs: 更多信息 and ping you.
  2. ykla commented on Oct 1, 2026

    @ykla

    测试过多种其他自定义 API 均复现。参见 #84。

    与 Anthropic 协议无关,虽然 Anthropic 协议会被处理,但是实际上返回仍然为空。

    有一说一 zcode 前端和后端配置文件实际调用在既往就存在不一致问题,比如思考强度。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions