首页/AI/AI 应用速查/max_tokens 与输出上限

max_tokens 与输出上限

max_tokens 是单次输出的硬上限,也是成本刹车:按任务输出长度的 P95 乘 1.5 左右设置,配合 finish_reason 判断是否被截断,截断要有重试或降级逻辑。

AI 应用速查AI更新于 2026-10-13

max_tokens 是什么

最大输出长度(max_tokens)是单次生成的硬上限,同时也是成本刹车。设置方法是先看任务输出的 P95 长度,再取约一点五倍:既能避免长尾任务频繁截断,又能抑制无意义的长输出。响应里的结束原因字段会告诉你是否被截断,被截断的结构化输出无法解析,必须按异常路径处理——提高额度重试,或降级返回已解析出的部分结果。上限设得过小会让长尾任务反复失败,设得过大则失去成本保护作用。

基本信息

作用限制单次生成长度,控制成本上限
设置方法任务输出 P95 乘以 1.5,随版本回归校准
截断信号结束原因为长度类取值
兜底策略重试提高额度,或降级返回部分结果
与提示词配合提示词约束格式,接口层设硬上限,双保险
监控指标输出 token 的 P50 与 P95 分布

典型使用场景

  • 结构化输出:保证 JSON 不被截断或多余尾巴污染
  • 批量任务:用上限把单条成本封顶,便于预算测算
  • 流式交互:限制长度同时改善响应时长
  • 长文生成:分段生成并用上限控制每段规模
  • 成本治理:定位输出过长的功能并逐个收紧

设置上限与检查结果

设置上限与检查结果
# 上限配合提示词约束同时生效
export OPENAI_API_KEY=你的密钥
cat > payload.json <<'EOF'
{"model":"gpt-4o-mini","max_tokens":512,
 "messages":[{"role":"user","content":"用三句话总结上文,不要复述原文"}]}
EOF
curl -s https://api.openai.com/v1/chat/completions -H "Authorization: Bearer $OPENAI_API_KEY" -H "Content-Type: application/json" -d @payload.json -o resp.json
# 返回里必须检查:结束原因是否为截断、usage 输出 token 是否贴近上限

结束原因怎么读

取值含义处理动作
正常结束模型自然结束输出按正常流程解析结果
长度截断达到输出上限被迫停止重试提高上限,或改为分段生成
内容过滤被安全策略拦截走审核与拒答流程,不要重试
工具调用请求执行工具并等待回包按工具协议继续下一轮
被截断的 JSON 无法解析:结构化输出场景必须把长度截断当作异常路径处理,否则会把半截产物当成功结果入库。
上限是单次输出限制,不是总预算:多轮工具调用会累加输出,成本治理要把整轮会话的输出合计看待。

易错点

  • 上限设得比实际所需小:长尾任务频繁截断,重试成本高于一次生成
  • 忽略结束原因:把截断的半截内容当成功结果写入下游
  • 只设上限不做提示词约束:模型仍在限额内写大量铺垫,成本省不下来
  • 把上限当成质量开关:提高上限不会让答案更好,只会让输出更长
  • 不同任务共用一个上限:短任务浪费额度,长任务被截断

数据来源与参考

  • OpenAI Chat Completions 参数文档(max_tokens / finish_reason)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌