模型额外参数 (extra_params)
model_config.toml 中每个模型都可以设置 extra_params 字段,用于在 API 调用时传递服务商特有的参数。最常见的用途是控制大模型的思考模式和推理强度。
extra_params 不会以原样整体发送给服务商,实际请求前客户端会按规则拆分转换:
headers— 作为请求头传入query— 作为 URL 查询参数传入body— 合并到请求体- 其他普通键 — 作为请求体额外字段传入(OpenAI SDK 的
extra_body)
当 client_type = "google" 时,extra_params 不按上述规则拆分,而是由 Gemini 客户端按自身支持的字段筛选和映射到 GenerateContentConfig。
思考与非思考模式
很多大模型支持"思考模式",让模型在回答前先进行深度推理,从而提升复杂问题的回答质量。MaiBot 支持两种 API 体系,配置方式不同:
- OpenAI 兼容 API(
client_type = "openai"):DeepSeek、OpenAI、阿里云百炼等 - Gemini 原生 API(
client_type = "google"):Google Gemini 系列
WebUI 思考开关按服务商模板适配
模型配置页「编辑模型」弹窗默认参数区的思考开关不写死参数名:保存模型时,MaiBot 按提供商 base_url 命中内置服务商模板,再按模板的思考格式元数据决定往 extra_params 里写哪个参数。命中 DeepSeek 走专用开关(含 Responses 客户端与联网搜索),见 DeepSeek 专用开关;其余服务商分三种写入格式:
thinking_type— 智谱、Kimi、MiniMax、豆包:写入thinking.type,开启值各家不同,可关闭的模板在关闭时写入disabledenable_thinking— 阿里云百炼、硅基流动:写入布尔值enable_thinking = true/falsereasoning_effort— 阶跃星辰、OpenAI、xAI:推理模型思考常开,开关不可关闭,只调力度档位
Base URL 没有命中任何内置模板(自定义端点)时不显示思考开关,需要按本文后面的写法手写 extra_params。
思考力度(reasoning_effort)和思考预算(thinking_budget)是两类独立参数:力度只在配了力度档位的模板出现,预算只在配了预算参数的模板出现;预算留空表示用服务商默认。两者都只作用于 OpenAI 兼容 API,Gemini 用 thinking_config。
下面示例中的
model_identifier是占位写法,请换成控制台里你要用的实际模型 ID。
thinking_type:智谱 / Kimi / MiniMax / 豆包
四家都写 thinking.type,但开启值不一样:
- 智谱(GLM) — 开启值
enabled;力度参数reasoning_effort,档位max/xhigh/high/medium/low/minimal/none,默认max。打开开关时若还没写力度,会一并写入默认档位 - Kimi(月之暗面) — 开启值
enabled,不带力度档位 - MiniMax(海螺 AI) — 开启值
adaptive,交给模型自行决定;可关闭 - 豆包(Doubao) — 开启值
auto,交给模型自行决定;可关闭;带思考预算thinking_budget
[[models]]
name = "zhipu-think"
model_identifier = "glm-5"
api_provider = "zhipu"
visual = false
extra_params = {thinking = {type = "enabled"}, reasoning_effort = "high"}[[models]]
name = "kimi-think"
model_identifier = "kimi-k3"
api_provider = "moonshot"
visual = false
extra_params = {thinking = {type = "enabled"}}[[models]]
name = "minimax-think"
model_identifier = "MiniMax-M3"
api_provider = "minimax"
visual = false
extra_params = {thinking = {type = "adaptive"}, reasoning_split = true}[[models]]
name = "doubao-think"
model_identifier = "doubao-pro"
api_provider = "doubao"
visual = false
extra_params = {thinking = {type = "auto"}, thinking_budget = 8192}要点:
- 关闭思考时 WebUI 写入
thinking.type = "disabled",并顺手删掉力度参数(思考关闭后力度没有意义),预算参数保留 - MiniMax 的思维链内容要配合
reasoning_split = true才会返回到reasoning_content thinking_budget只能填非负整数,写负数或字符串会被开关判定为配置错误
enable_thinking:百炼 / 硅基流动
这两家用布尔值开关,没有 thinking 对象:
- 阿里云百炼(Qwen) —
enable_thinking = true/false,另支持思考预算thinking_budget;混合思考模型还能在 prompt 末尾追加/think、/no_think临时切换 - 硅基流动(SiliconFlow) —
enable_thinking = true/false,另支持思考预算thinking_budget
[[models]]
name = "qwen-think"
model_identifier = "qwen-plus"
api_provider = "dashscope"
visual = false
extra_params = {enable_thinking = true, thinking_budget = 8192}[[models]]
name = "qwen-nothink"
model_identifier = "qwen-plus"
api_provider = "dashscope"
visual = false
extra_params = {enable_thinking = false}[[models]]
name = "silicon-think"
model_identifier = "Qwen/Qwen3-32B"
api_provider = "siliconflow"
visual = false
extra_params = {enable_thinking = true}要点:
enable_thinking只接受布尔值,写"true"这类字符串会被开关拒绝并提示「enable_thinking 只能是 true 或 false」/think、/no_think是一次性的 prompt 后缀,只影响当轮,不会改模型配置
reasoning_effort:阶跃 / OpenAI / xAI
这三种模板只有力度档位,没有开关:推理模型思考常开,界面上的启用思考开关是置灰的,只能调档。档位值域和默认值各不一样:
- 阶跃星辰(StepFun) —
low/medium/high,默认medium - OpenAI —
minimal/low/medium/high,默认medium - xAI(Grok) —
low/high,无默认值(取第一个档位)
[[models]]
name = "openai-reason"
model_identifier = "gpt-5"
api_provider = "openai"
visual = false
extra_params = {reasoning_effort = "minimal"}[[models]]
name = "grok-reason"
model_identifier = "grok-4"
api_provider = "xai"
visual = false
extra_params = {reasoning_effort = "low"}[[models]]
name = "step-reason"
model_identifier = "step-3"
api_provider = "stepfun"
visual = false
extra_params = {reasoning_effort = "high"}要点:
- 力度值不在值域内时,WebUI 会提示「reasoning_effort 只能是 …」;手改
model_config.toml也要按对应服务商的值域写,否则服务商会报错 - WebUI 只列出模板里配置的档位。OpenAI 官方另外还支持
none和xhigh(见下文 OpenAI 兼容 API),手写配置时可以写,只是界面上不显示 - 关不掉思考不代表不能省 token:把档位调到最低(OpenAI 用
minimal、xAI 用low)才是最省的一档
DeepSeek 专用开关
DeepSeek 因为两种客户端格式差异大,不走上面三种通用格式,模型配置页为它单独渲染一组控件:
- 启用思考 —
openai客户端写入thinking.type,openai_responses客户端写入reasoning.effort - 思考力度 —
low/high/max,思考关闭时置灰 - 启用联网搜索 — 仅在
openai_responses客户端可操作,写入 DeepSeek 原生web_search工具,并保留tools里的其他工具
[[models]]
name = "deepseek-think"
model_identifier = "deepseek-chat"
api_provider = "deepseek"
client_type = "openai"
extra_params = {thinking = {type = "enabled"}, reasoning_effort = "high"}[[models]]
name = "deepseek-web"
model_identifier = "deepseek-chat"
api_provider = "deepseek"
client_type = "openai_responses"
extra_params = {reasoning = {effort = "high"}, tools = [{type = "web_search"}]}要点:
openai客户端里不要写reasoning,openai_responses客户端里不要写thinking或reasoning_effort,混用会被校验拒绝并提示「额外参数配置冲突」- 联网搜索工具只能配一次;
openai客户端配web_search会被直接拒绝,必须换openai_responses - 完整写法见下面的 Responses API
各家限制与易错点
这些限制来自各家服务商自身,踩了就是 400 报错,配置前先对一眼:
- Kimi k2.7-code — 仅支持开启思考,写
thinking.type = "disabled"会报错 - Kimi k3 系列 — 不收
thinking参数,只能用reasoning_effort调档,不要写thinking - MiniMax M2.x — 思考无法关闭,
disabled仅对 M3 生效 - 智谱 GLM-5.3 系列 — 不支持关闭思考,力度值域收窄为
low/high/max(默认max);GLM Coding Plan 套餐是独立模板,不受这个限制 - 火山方舟编程套餐 — 套餐凭证与按量付费 API Key 不通用;控制台给出的专属 Base URL 可能和模板里的不一样,以控制台为准
对应的 extra_params 写法:
[[models]]
name = "kimi-k27-code"
model_identifier = "kimi-k2.7-code"
api_provider = "moonshot"
visual = false
extra_params = {thinking = {type = "enabled"}}[[models]]
name = "kimi-k3"
model_identifier = "kimi-k3"
api_provider = "moonshot"
visual = false
extra_params = {reasoning_effort = "high"}[[models]]
name = "minimax-m3"
model_identifier = "MiniMax-M3"
api_provider = "minimax"
visual = false
extra_params = {thinking = {type = "disabled"}, reasoning_split = true}[[models]]
name = "glm-53"
model_identifier = "glm-5.3"
api_provider = "zhipu"
visual = false
extra_params = {thinking = {type = "enabled"}, reasoning_effort = "high"}注意
上面四段是手写 extra_params 的参考。WebUI 开关只按模板判断能不能关闭,模型个体的限制写在开关下方的小字里(例如 Kimi k2.7-code、MiniMax M2.x);智谱 GLM-5.3 是模板按模型标识单独收紧的限制,开关会直接置灰。在源文件里给不支持的模型写了 disabled,保存时会报「当前模型不支持关闭思考」。
新增的服务商套餐模板
MaiBot 1.3.1 新增三个套餐制服务商模板,思考开关与对应按量付费模板一致:
- 智谱编程套餐(GLM Coding Plan) —
https://open.bigmodel.cn/api/coding/paas/v4 - 阶跃 Step Plan —
https://api.stepfun.com/step_plan/v1 - 火山方舟编程套餐(Ark Coding Plan) —
https://ark.cn-beijing.volces.com/api/coding/v3
[[api_providers]]
name = "zhipu-coding"
base_url = "https://open.bigmodel.cn/api/coding/paas/v4"
api_key = "your-glm-coding-plan-key"
client_type = "openai"[[api_providers]]
name = "stepfun-plan"
base_url = "https://api.stepfun.com/step_plan/v1"
api_key = "your-step-plan-key"
client_type = "openai"[[api_providers]]
name = "ark-coding"
base_url = "https://ark.cn-beijing.volces.com/api/coding/v3"
api_key = "your-ark-coding-plan-key"
client_type = "openai"要点:
- 套餐凭证与按量付费 Key 不通用:套餐模板要用套餐订阅给的 Key,把按量付费的 API Key 填进去会认证失败
- Base URL 可能因账号而异:火山方舟编程套餐控制台有时会给出账号专属地址,拿到后请改用专属地址,不要照抄模板
- 思考开关的行为与对应的按量付费模板相同:GLM Coding Plan 走
thinking_type+reasoning_effort,Step Plan 走reasoning_effort,Ark Coding Plan 走thinking_type(开启值auto)+thinking_budget
OpenAI 兼容 API
thinking 对象是多家服务商通用的思考模式开关,DeepSeek、Kimi(月之暗面)、GLM(智谱) 等均采用此格式,配置方式完全一致。reasoning_effort 为可选参数,不填则使用默认强度。部分第三方平台(如阿里云百炼/DashScope)则使用 enable_thinking 参数格式。上面 WebUI 开关写入的就是这一节的参数,手写配置时按同一套规则来:
[[models]]
name = "deepseek-v4-flash-think"
model_identifier = "deepseek-v4-flash"
api_provider = "deepseek"
visual = false
extra_params = {thinking = {type = "enabled"}, reasoning_effort = "high"}[[models]]
name = "deepseek-v4-flash-nothink"
model_identifier = "deepseek-v4-flash"
api_provider = "deepseek"
visual = false
extra_params = {thinking = {type = "disabled"}}[[models]]
name = "deepseek-v4-flash-max"
model_identifier = "deepseek-v4-flash"
api_provider = "deepseek"
visual = false
extra_params = {thinking = {type = "enabled"}, reasoning_effort = "max"}[[models]]
name = "deepseek-v4-flash-think"
model_identifier = "deepseek-v4-flash"
api_provider = "dashscope"
visual = false
extra_params = {enable_thinking = true}[[models]]
name = "deepseek-v4-flash-nothink"
model_identifier = "deepseek-v4-flash"
api_provider = "dashscope"
visual = false
extra_params = {enable_thinking = false}要点:
- DeepSeek V4 的
reasoning_effort仅支持high(默认)和max(极限推理)两个有效等级。low/medium映射为high,xhigh映射为max - 对比 OpenAI:OpenAI 的
reasoning_effort支持 6 个独立等级(none/minimal/low/medium(默认)/high/xhigh),各自独立生效,与 DeepSeek V4 只有 2 个有效等级不同。注意o1-mini不支持此参数 - 多轮对话规则:如果思考轮次没有工具调用,不需要把思考内容回传;如果有工具调用,必须回传
- 限制:思考模式下
temperature和top_p会被静默忽略,tool_choice会导致 400 错误 - 第三方平台(如阿里云百炼/DashScope)使用
enable_thinking(布尔值)控制思考模式,与原生thinking对象写法不同。配置前请确认你使用的平台支持哪种参数格式
Responses API
部分服务商(如 DeepSeek v4 flash 联网搜索)使用 OpenAI 的 Responses 协议,需要在服务商配置中设置 client_type = "openai_responses"。Responses API 的参数格式与 Chat Completions 略有不同:
- 思考模式:使用
reasoning = {effort = "..."}而不是thinking/reasoning_effort,effort可选none/low/high/max - 联网搜索:把
web_search原生工具写入tools列表即可启用
[[models]]
name = "deepseek-v4-flash-responses-think"
model_identifier = "deepseek-v4-flash"
api_provider = "deepseek"
client_type = "openai_responses"
extra_params = {reasoning = {effort = "high"}}[[models]]
name = "deepseek-v4-flash-responses-nothink"
model_identifier = "deepseek-v4-flash"
api_provider = "deepseek"
client_type = "openai_responses"
extra_params = {reasoning = {effort = "none"}}[[models]]
name = "deepseek-v4-flash-responses-web"
model_identifier = "deepseek-v4-flash"
api_provider = "deepseek"
client_type = "openai_responses"
extra_params = {reasoning = {effort = "high"}, tools = [{type = "web_search"}]}要点:
- Responses 客户端中不要再写
thinking或reasoning_effort,请统一使用reasoning.effort,否则会被校验拒绝 reasoning.effort比 Chat Completions 多一个none(完全关闭思考)web_search工具通过extra_params.body.tools传入(body分组的字段与其他普通键会合并进请求体,见 自定义 HTTP 请求)- DeepSeek 的 Chat Completions 端点不支持原生联网搜索,使用联网搜索必须选择
openai_responses客户端 - Maisaka 监控页与日志会展示联网搜索摘要(本轮查询、动作、状态和来源数量)
Gemini 原生 API
当 client_type = "google" 时,extra_params 不按 OpenAI 的 headers/query/body 规则处理,而是由 Gemini 客户端按自身支持的字段筛选和映射到 GenerateContentConfig。
Gemini 2.5(thinking_budget)
Gemini 2.5 系列通过 thinking_budget(整数)控制思考预算:
[[models]]
name = "gemini-2.5-flash-think"
model_identifier = "gemini-2.5-flash"
api_provider = "google-gemini"
visual = true
client_type = "google"
extra_params = {thinking_config = {thinking_budget = 4096, include_thoughts = true}}[[models]]
name = "gemini-2.5-flash-nothink"
model_identifier = "gemini-2.5-flash"
api_provider = "google-gemini"
visual = true
client_type = "google"
extra_params = {thinking_config = {thinking_budget = 0}}[[models]]
name = "gemini-2.5-pro-think"
model_identifier = "gemini-2.5-pro"
api_provider = "google-gemini"
visual = true
client_type = "google"
extra_params = {thinking_config = {thinking_budget = -1, include_thoughts = true}}要点:
thinking_budget:-1= 自动分配,0= 关闭思考,N= 指定 token 预算include_thoughts:是否在响应中包含思考过程- 已知问题:Flash Preview 04-17 版本设置
thinking_budget = 0可能失败
Gemini 3.0+(thinking_level)
Gemini 3.0 及更新版本通过 thinking_level(枚举值)控制思考强度:
[[models]]
name = "gemini-3-flash-high"
model_identifier = "gemini-3-flash"
api_provider = "google-gemini"
visual = true
client_type = "google"
extra_params = {thinking_config = {thinking_level = "high", include_thoughts = true}}[[models]]
name = "gemini-3-flash-low"
model_identifier = "gemini-3-flash"
api_provider = "google-gemini"
visual = true
client_type = "google"
extra_params = {thinking_config = {thinking_level = "low", include_thoughts = true}}要点:
thinking_level可选:minimal、low、medium、high- 不要同时使用
thinking_budget和thinking_level,会导致 400 错误 - 多轮对话中需要使用 thought signatures 保持上下文
Gemini 总览
- Gemini 2.5 — 通过
thinking_budget控制思考预算,值域:-1(自动)/0(关闭)/N(预算),关闭方式为budget = 0。budget 和 level 不可混用 - Gemini 3.0+ — 通过
thinking_level控制思考等级,值域:minimal/low/medium/high,关闭方式为不设置或minimal。不支持 token 级预算控制
Gemini 2.5 使用 token 数量间接控制强度,-1 为自动分配。Gemini 3.0+ 使用枚举值直接指定等级。
Google API 在国内无法直接访问,需要代理。
自定义 HTTP 请求
extra_params 支持三个特殊 key 来精确控制 API 请求:
headers— 添加 HTTP 请求头,如{headers = {"X-Custom" = "value"}}query— 添加 URL 查询参数,如{query = {"key" = "value"}}body— 其中的字段与其他普通键一起进入请求体,仅用于在配置中按用途分组
注意
body 并不创建独立的请求通道。body 内的字段和 headers/query 之外的所有普通键会合并后一起发送到请求体中。
例如:
[[models]]
name = "custom-model"
model_identifier = "custom-model-v1"
api_provider = "custom"
visual = false
extra_params = {
headers = {"X-API-Version" = "2024-06", "X-Priority" = "high"},
query = {version = "2024-01-01"},
body = {metadata = {source = "maibot"}},
enable_thinking = false
}客户端拆分后的实际效果:
headers — HTTP 请求头:X-API-Version: 2024-06,X-Priority: high
query — URL 查询参数:?version=2024-01-01
body 内字段 + 其他普通键 — 请求体 JSON:{"metadata": {"source": "maibot"}, "enable_thinking": false}
所以 extra_params = {enable_thinking = "false"} 等价于 extra_params = {body = {enable_thinking = "false"}},都会把 enable_thinking 作为请求体 JSON 字段发给服务商,而不是发送嵌套的 {"extra_params": {"enable_thinking": "false"}}。
图片嵌入模型
图片记忆检索用的 image_embedding 任务需要"吃图片、吐向量"的模型。这类模型的请求形状各服务商都不一样,client_type = "openai" 时靠 extra_params 的两个模板字段适配:
image_embedding_input— 图片输入模板,默认"{data_uri}"。可用占位符{base64}、{data_uri}、{mime_type},会在请求时替换image_embedding_body— 请求体模板(对象)。其中input键会覆盖上面的输入模板,其余键并入请求体
命中官方地址时 MaiBot 会自动切换协议,不用手写模板:
- 阿里云百炼、火山方舟(豆包) — 自动切到各自的原生多模态嵌入端点(百炼
/api/v1/services/embeddings/multimodal-embedding/multimodal-embedding,方舟<Base URL>/embeddings/multimodal),请求体按原生协议构造 - 硅基流动 — 仍走
/embeddings,自动填入{"image": "{data_uri}"}图片输入模板 - 其他地址 — 不会自动猜测,必须自己写
image_embedding_input或image_embedding_body,否则调用时报错
[[models]]
name = "vl-embed"
model_identifier = "vl-embed-v1"
api_provider = "custom-openai"
visual = false
extra_params = {image_embedding_input = "{data_uri}"}[[models]]
name = "qwen-vl-embed"
model_identifier = "multimodal-embedding-v1"
api_provider = "dashscope"
visual = false
extra_params = {dimensions = 1024}要点:
- 走百炼/方舟原生协议时,
model、input(方舟再加encoding_format)是保留字段,不允许通过extra_params覆盖,写了会报错 - 百炼原生协议下,向量维度既可以写顶层
dimensions,也可以写parameters.dimension,两处都写且值不同会报错 - 1.3.1 起
image_embedding任务没配模型时会立刻报错,提示你在image_embedding里指定支持图片嵌入的模型,不会再一路拖到请求阶段才失败 embedding和image_embedding两个嵌入任务会忽略selection_strategy,始终按model_list配置顺序取第一个可用模型——向量空间必须保持一致,多个嵌入模型混用会污染向量库
高级鉴权配置
auth_header_name— Header 鉴权名称。默认Authorizationauth_header_prefix— Header 鉴权前缀。默认Bearerauth_query_name— Query 鉴权参数名。默认api_key
其他高级参数
模型级参数覆盖
temperature— 模型级温度,覆盖任务配置。可选,如0.7max_tokens— 模型级最大 token,覆盖任务配置。可选,如4096force_stream_mode— 强制流式输出,不支持非流式时设为true。默认关闭extra_params— 额外参数字典。默认为空
优先级说明
temperature 和 max_tokens 可以写在 extra_params 中作为模型级默认值,但更推荐使用模型配置里的同名独立字段:
temperature = 0.7
max_tokens = 4096这样配置意图更清楚,也能避免和服务商请求体中的同名字段混淆。
当多处存在同名参数时,生效优先级为:
- 调用方本次请求显式传入的值
- 当前模型配置里的独立字段(如
temperature、max_tokens) - 当前模型
extra_params中的同名字段 - 当前任务配置中的默认值
API 提供商高级配置
default_headers— 默认 HTTP 头。默认为空default_query— 默认查询参数。默认为空organization— OpenAI 组织(可选)。默认无project— OpenAI 项目(可选)。默认无model_list_endpoint— 模型列表端点。默认/modelsreasoning_parse_mode— 推理内容解析模式。默认autotool_argument_parse_mode— 工具参数解析模式。默认auto
运行时配置
timeout— 超时时间。推荐 60 秒max_retry— 最多请求几次(含第一次)。推荐 3,即失败后最多再试 2 次retry_interval— 重试间隔。推荐 5 秒
常用参数速查
OpenAI 兼容 API
thinking— 思考模式控制,含type。智谱/Kimi 写enabled、MiniMax 写adaptive、豆包写auto,关闭写disabledenable_thinking— 布尔思考开关。适用阿里云百炼、硅基流动reasoning_effort— 推理强度等级。DeepSeek 仅 low/high/max,OpenAI 六档,xAI 仅 low/high,阶跃 low/medium/high,智谱七档(默认 max)reasoning— Responses API 思考控制,含effort(none/low/high/max)。适用 DeepSeek(Responses 客户端)reasoning_split— MiniMax 思维链拆分开关,true时思考内容进reasoning_contentthinking_budget— 思考预算(token)。适用豆包、Qwen/百炼、硅基流动tools— 原生工具列表,如{type = "web_search"}开启联网搜索。适用 DeepSeek Responses 客户端image_embedding_input/image_embedding_body— 图片嵌入请求模板。适用image_embedding任务headers— 自定义 HTTP 请求头。适用全部query— 自定义 URL 查询参数。适用全部body— 自定义请求体字段。适用全部
Gemini 原生 API
thinking_config— 思考配置,含thinking_budget或thinking_level。适用 Gemini 全系thinking_budget— 思考预算(-1 自动 / 0 关闭 / N 指定)。适用 Gemini 2.5thinking_level— 思考等级(minimal/low/medium/high)。适用 Gemini 3.0+include_thoughts— 响应是否包含思考过程。适用 Gemini 全系
参数会原样传递给 LLM API,务必与你使用的服务商文档一致,否则可能导致调用失败。
验证与排错
配完之后用模型配置页模型列表里的「测试模型」按钮跑一次能力测试:思考模型通过时会返回文本,测试详情里能看到「推理内容」;没看到推理内容先检查 extra_params 里的思考参数。
- 保存模型时提示「当前模型不支持关闭思考」→ 这是模板按模型标识收紧了关闭能力(典型是智谱 GLM-5.3);Kimi k2.7-code、MiniMax M2.x 属于个别型号的限制,界面上不会置灰,手写配置时注意别写
disabled - 保存模型时提示「reasoning_effort 只能是 …」→ 档位不在该服务商的值域内,按上文各家值域改;xAI 只有
low/high - 保存模型时提示「enable_thinking 只能是 true 或 false」→ 写成了字符串,改回布尔值
- 调用返回 400 且报文提到
thinking或reasoning_effort→ 客户端类型和参数写混了:DeepSeek 用openai_responses时只能写reasoning.effort,用openai时只能写thinking+reasoning_effort - 图片记忆检索一直不可用 → 确认
[model_task_config.image_embedding]配了支持图片输入的模型;非百炼/硅基流动/方舟地址必须手写image_embedding_input或image_embedding_body
更多细节以服务商官方文档为准:DeepSeek 思考模式、OpenAI 推理指南、Google Gemini 思考配置、阿里云百炼、Kimi 思考模式、GLM 思考模式。