同时对接多家大模型 API 的人一定有过这种体验明明参数名字都差不多换个模型就 400 了。temperature 都叫 temperature范围却不一样thinking 都能开开了之后别的参数还能不能用各家说法完全不同。这篇文章把 Anthropic Claude、OpenAI GPT、DeepSeek、GLM智谱四家的核心 API 参数拉到一起做对比。重点讲两件事推理模式怎么控制采样参数有哪些暗坑。一、推理模式四家四种玩法让模型先想再答是当前大模型最热的能力方向也是 API 参数分化最严重的地方。Anthropic精确到 token 的预算制Claude 的做法最直白——你告诉模型最多花多少 token 想{thinking:{type:enabled,budget_tokens:8000}}budget_tokens最小 1024必须小于max_tokens。这种精确控制的好处是可预测——你能精确估算推理成本。新版模型引入了自适应思考不再接受budget_tokens模型自行决定思考深度。注意对着自适应模型发budget_tokens会直接 400。同一家的不同模型版本参数都不通用。OpenAI档位制简单粗暴OpenAI 的 Responses API 没有显式的 thinking 开关用reasoning.effort来控制推理深度{reasoning:{effort:high,summary:auto}}就四档minimal/low/medium默认/high。没有精确的 token 预算概念模型自己决定具体花多少算力。这种设计对普通开发者友好——不需要理解8000 token 的思考预算意味着什么选个档就行。DeepSeek兼容协议 私有扩展DeepSeek 走 OpenAI 兼容协议但 thinking 是私有扩展得塞进extra_body// 需要通过 extra_body 发送{thinking:{type:enabled}}它也有reasoning_effort但只有high和max两档——跟 OpenAI 的四档不兼容跟 GLM 的七档更不兼容。GLM档位最多还有独有参数GLM 同样通过extra_body开启 thinking语法和 DeepSeek 一致。独特之处有两个clear_thinking参数布尔值控制多轮对话时是否保留上一轮的思考链上下文。这在连续推理场景下很有用其他厂商都没有对应功能。七档 reasoning_effort新型号none/minimal/low/medium/high/xhigh/max粒度是所有厂商中最细的。推理模式对比AnthropicOpenAI ResponsesDeepSeekGLM开启方式原生字段reasoning.effort隐式extra_bodyextra_body深度控制token 预算精确值4 档2 档7 档新型号自适应部分新模型默认全部自适应无无独有能力budget 精确控制summary 摘要输出—clear_thinking二、推理开启后的连锁反应这是最容易踩坑的地方推理模式开启后采样参数的行为会发生变化而且各家处理方式不同。提供方推理开启后 temperature/top_p 的行为Anthropictemperature 强制锁 1.0top_p/top_k 被忽略不报错但无效OpenAI Responses本就不支持这些参数发了直接 400DeepSeek可以发但被静默忽略GLM可以发行为未定义官方未说明这意味着如果你的接入层在发送请求前不检查 thinking 状态用户设置的 temperature 可能看起来生效了但实际完全没用造成难以排查的效果偏差。三、采样参数范围和规则的差异temperature 的范围陷阱提供方范围Anthropic0 – 1OpenAI Chat Completions0 – 2DeepSeek0 – 2GLM建议 0.2 – 0.8OpenAI Responses API❌ 不支持你在 OpenAI 上调到 1.5 的效果很满意直接转发给 Claude 就炸了。统一接入层要么做范围裁剪要么在 UI 层就按最严约束0–1暴露。temperature 与 top_p 的互斥问题这两个参数的关系各家态度不同GLM强制互斥同时发直接报错Anthropic明确推荐只设其一同时发行为未定义OpenAI / DeepSeek文档说建议只调一个实际同时发不报错最安全的策略适配层做互斥拦截两个都有值时保留 temperature、置空 top_p。各家独占参数有些参数只有特定厂商支持在其他地方发了要么报错要么被忽略参数唯一支持方说明top_kAnthropic限制候选 token 数其他家都没有frequency_penaltyOpenAI Chat Completions基于频率惩罚范围 -2 到 2presence_penaltyOpenAI Chat Completions惩罚已出现 token范围 -2 到 2clear_thinkingGLM控制多轮思考链是否保留stop sequences 的上限差异提供方上限Anthropic8191 条DeepSeek16 条OpenAI4 条差距极大。如果你依赖大量 stop sequences 做结构化输出切到 OpenAI 时可能需要完全换策略。四、完整速查表采样参数支持矩阵参数AnthropicOpenAI ChatOpenAI ResponsesDeepSeekGLMtemperature✅ 0–1✅ 0–2❌✅ 0–2✅top_p✅✅❌✅✅top_k✅❌❌❌❌frequency_penalty❌✅❌❌❌presence_penalty❌✅❌❌❌stop sequences≤8191≤4❌≤16未明确max_tokens✅必填✅✅✅✅互斥与约束规则规则影响范围后果temperature 与 top_p 互斥GLM 强制Anthropic/OpenAI 推荐GLM 报错其他行为不确定thinking 开启 → 采样参数失效全部各家处理方式不同见第二节Responses API 不接受采样参数OpenAI o 系列 / GPT-5直接 400五、设计建议如果你正在做多模型统一接入以下是几条实战建议参数范围取交集。统一 UI 上的 temperature 暴露 0–1stop sequences 上限取 4 条。超出范围在适配层裁剪别让用户直面 400 错误。thinking 状态要感知采样参数。推理模式开启时适配层应自动屏蔽或忽略 temperature / top_p 的用户设置而不是透传后让模型自己处理因为各家处理方式不一致。用 capability 描述而非 if-else。每接一个新模型就加一堆条件判断会很快失控。更好的做法是维护一份模型能力描述支持哪种 thinking、temperature 范围多少、哪些参数互斥让适配逻辑基于描述驱动。区分用户可调和系统配置。适合放进对话界面让用户随时调的temperature、thinking 开关、reasoning effort。应该锁在后台配置的stop sequences、penalty 参数、budget_tokens、clear_thinking——要么太技术化要么太场景化。写在最后四家厂商的参数设计反映了不同的产品哲学Anthropic给你精确控制权——预算精确到 token 数但也要求你理解这意味着什么OpenAI替你做选择——四个档够用就行DeepSeek走兼容路线——协议复用但功能私有扩展GLM追求粒度最大化——七档 effort还有多轮思考链控制对接一家时这些差异无所谓同时对接四家时就变成了工程问题。没有银弹只能逐个参数对齐。但至少你可以提前知道坑在哪。