MiniMax M3.1 Flash에는 추론 수준이 다섯 가지 있으며, 끄는 옵션은 없습니다. 수준을 선택하지 않으면 모델이 가장 깊은 수준을 선택합니다. MiniMax의 텍스트 생성 가이드에 따르면, 생략하면 추론 노력 수준은 "max로 기본 설정됩니다."
이 기본값은 쉽게 간과할 수 있는 방식으로 비용이 많이 듭니다. AIHubMix는 동일한 버그 두 개를 수정하는 작업을 모든 수준에서 실행했습니다. 기본값은 low보다 추론 토큰을 약 10배 더 사용하고 시간은 약 6배 더 걸렸지만, 모든 수준에서 실행한 결과 215개 테스트를 전부 통과했습니다. 작업의 난이도는 그대로였지만, 모델의 추론 비용은 설정한 노력 수준에 따라 증가했습니다.
간단히 말하면: low에서 시작하고, 작업이 실패하거나 재시도될 때만 수준을 높이며, 필드를 비워 두지 마세요.
다섯 가지 수준, 끄는 옵션은 없음
| 프로토콜 | 필드 | 값 | 기본값 |
|---|---|---|---|
| OpenAI Chat Completions | reasoning_effort | low, medium, high, xhigh, max | max |
| Anthropic Messages | output_config.effort | low, medium, high, xhigh, max | max |
| OpenAI Responses | reasoning.effort | low, medium, high, xhigh, max | max |
추론을 비활성화할 수는 없습니다. MiniMax의 Messages API 레퍼런스에 따르면, API는 thinking: {"type": "disabled"}와 추론 노력 수준 none을 입력하면 HTTP 400을 반환하며, 메시지는 model "MiniMax-M3.1-Flash" requires adaptive thinking입니다. 이전 MiniMax 모델은 추론 노력 필드를 아예 무시합니다. 지금까지 해당 필드가 실제로 작동하는 MiniMax 모델은 M3.1 Flash뿐입니다.
AIHubMix에서는 AIHubMix의 minimax-m3.1-flash에 세 가지 프로토콜을 모두 사용할 수 있습니다. MiniMax 자체 API와 다른 점은 AIHubMix가 reasoning_effort: "none"과 "minimal"을 HTTP 200으로 받아들였지만, 모델은 어쨌든 추론했다는 것입니다. 이 값들은 추론을 끄는 방법이 아니라 아무 효과도 없는 값으로 취급하세요.
작업 하나에서 수준별 비용은 얼마였을까
테스트는 버그 두 개가 있는 청구 함수였습니다. 일시 중지 기간이 청구 기간의 끝을 넘으면 하루가 중복 계산되고, 일시 중지 기간이 겹치면 그 기간이 두 번 차감됩니다. 모델은 수정된 함수를 반환하고, 로컬 하네스는 비공개 사례 215개를 기준으로 검증합니다. 각 수준은 2026년 10월 19일 AIHubMix의 Chat Completions 엔드포인트를 통해 세 번씩 실행했으며, max_tokens는 32,768로 설정했습니다. 모든 수치는 AIHubMix가 측정한 것이며, 다른 누구도 재현하지 않았습니다.
| 추론 노력 수준 | 평균 추론 토큰 수 | 범위(3회 실행) | 평균 소요 시간 | 수정 1회당 평균 비용 | 테스트 |
|---|---|---|---|---|---|
| low | 591 | 344–812 | 9.5 s | $0.0006 | 215/215 ×3 |
| medium | 1,522 | 970–2,488 | 21.7 s | $0.0013 | 215/215 ×3 |
| high | 2,863 | 2,194–3,673 | 27.1 s | $0.0022 | 215/215 ×3 |
| xhigh | 1,949 | 1,019–2,562 | 19.2 s | $0.0015 | 215/215 ×3 |
| max | 4,699 | 2,612–6,246 | 40.4 s | $0.0034 | 215/215 ×3 |
| 생략 | 6,364 | 4,284–9,376 | 56.3 s | $0.0045 | 215/215 ×3 |
비용 계산에는 AIHubMix의 minimax-m3.1-flash 가격을 사용했습니다. 입력 토큰 100만 개당 $0.165, 출력 토큰 100만 개당 $0.66, 캐시된 입력 토큰 100만 개당 $0.0165입니다. 추론 토큰은 출력 토큰으로 청구됩니다. 예를 들어, "생략" 행은 프롬프트 토큰이 평균 464개(그중 약 192개는 캐시됨), 출력 토큰이 6,673개였으며, 수정 1회당 비용은 약 $0.0045입니다.
수치가 보여 주는 것
이 작업에는 low면 충분했습니다. 모든 수준에서 매번 올바른 수정 결과를 냈습니다. 범위가 제한된 단일 함수 버그에서는 높은 수준의 추가 추론이 측정 가능한 이점을 주지 않았습니다.
low에서 medium으로 올리면 차이가 분명합니다. medium은 low보다 추론 토큰을 평균 약 2.6배 더 사용했고, 시간은 두 배 넘게 걸렸습니다.
medium보다 높은 수준끼리는 차이가 뚜렷하지 않습니다. xhigh 실행의 평균 토큰 수는 high보다 적었고, max의 결과 범위는 두 수준과 겹쳤습니다. 수준별 실행 횟수가 세 번뿐이라 차이를 구분하기 어렵습니다. 이 작업에서는 "high", "xhigh", "max" 모두 "추론을 더 많이 하며, 때로는 훨씬 더 많이 한다"는 결과였습니다.
생략하면 max처럼 작동합니다. 이는 MiniMax 문서와 일치합니다. "생략"의 평균은 "max"보다 높았지만, 두 범위가 겹치고 그 차이는 실행 간 변동 범위 안에 있습니다.
모든 수준에서 편차가 큽니다. 동일한 프롬프트를 사용했는데도 기본값의 실행 시간은 39초에서 82초까지 달랐습니다. Anthropic Messages 엔드포인트에서 low로 세 번 실행한 결과 추론 토큰 수는 511, 1,861, 6,060개였습니다. 마지막 실행은 56초가 걸려 일반적인 max 실행만큼 오래 걸렸습니다. 추론 노력 수준은 추론 깊이의 평균을 정할 뿐, 엄격한 상한을 설정하지 않습니다.
처리 속도는 Flash 실행 24회 전체에서 초당 출력 토큰 약 112개로 일정했습니다. 따라서 소요 시간은 추론 토큰 수에 거의 비례합니다. 이 속도라면 추론 토큰 6,000개를 처리하는 데 거의 1분이 걸립니다.
MiniMax는 수준별 토큰 수나 지연 시간 데이터를 자체적으로 공개하지 않았습니다. 더 어려운 작업에서 높은 수준이 필요한지는 이 테스트 하나만으로 알 수 없습니다. 위 수치는 작업에 높은 수준이 필요하지 않을 때 각 수준에 드는 비용만 보여 줍니다.
짧은 프롬프트는 추론을 거의 하지 않습니다
"항상 추론한다"는 말이 "항상 깊이 추론한다"는 뜻은 아닙니다. 추론은 적응형이므로, 깊이는 프롬프트가 얼마나 어려워 보이는지에 따라 달라집니다.
- 고객 지원 문의 5건을 네 가지 라벨 중 하나로 분류하는 작업:
low에서는 추론 토큰이 0개였고 기본값에서는 평균 6개였습니다. 모든 라벨이 정확했습니다. low에서 "17 × 23은 무엇인가요?"라고 물으면 추론은 전혀 하지 않고 출력 토큰 2개를 사용했습니다.
따라서 추론을 끄는 옵션이 없더라도 짧은 분류, 정보 추출, 라우팅 호출에서는 비용이 거의 들지 않습니다. 비용은 코드처럼 개방형 작업에서 두드러지며, 추론을 깊게 허용할수록 모델이 생각할 거리를 더 많이 찾아냅니다.
어디서 시작할까
아래는 시작점입니다. 앞의 두 행만 직접 측정했으며, 나머지는 재시도 결과를 확인해 보도록 권장하는 설정입니다.
| 작업 유형 | 시작 수준 | 수준을 높일 때 |
|---|---|---|
| 분류, 정보 추출, 라우팅 | low | 어려운 사례에서 라벨이 틀릴 때 |
| 단일 함수 수정, 소규모 코드 검토 | low | 수정 결과가 테스트에서 두 번 실패할 때 |
| 여러 파일 변경, 리팩터링 | medium | 에이전트가 종속된 파일을 놓칠 때 |
| 도구를 여러 번 호출하며 에이전트가 반복 작업을 할 때 | low 또는 medium | 단계가 반복되거나 멈출 때 |
| 어려운 디버깅, 설계 관련 질문 | high | 답변이 계속 피상적일 때 |
| 사용자가 기다리는 대화형 채팅 | low | 여기서는 기본값으로 max를 사용하지 마세요 |
해당 유형의 작업에서 high가 실패한 것을 확인한 경우에만 max를 사용하세요.
추론 노력 수준을 바꾸면 발생하는 문제와 비용 증가
- 응답이 잘릴 수 있습니다. 추론 토큰도
max_tokens에 포함됩니다. 기본값으로 실행한 사례 중 하나는 단일 함수에 추론 토큰 9,376개를 사용했습니다. 따라서 M2.x 응답을 기준으로 설정한 4K 또는 8K 한도에서는finish_reason: "length"와 함께 응답이 잘릴 수 있습니다. MiniMax는 131,072를 권장하며, 최대 524,288까지 허용합니다. - 시간 초과가 발생할 수 있습니다. high 이상에서는 호출 한 번에 1분이 걸릴 수 있습니다. 빠른 모델에 맞춰 설정한 클라이언트 및 프록시 시간 제한을 120초 이상으로 늘려야 합니다.
- 설정해도 아무 효과가 없는 값이 있습니다. AIHubMix에서는
none,minimal,auto같은 알 수 없는 값을 모두 받아들였지만, 모델은 계속 추론했습니다. 게이트웨이 프로젝트의 테스트에 따르면 MiniMax 자체 엔드포인트는 알 수 없는 값을 거부합니다(sub2api 이슈 #8025). 문서에 명시된 다섯 가지 값 중 하나를 사용하세요. - 수준 설정을 노출하지 않는 도구가 있습니다. 현재 OpenCode는 이 모델에서 추론 노력 수준 변형을 해결하지 못하며, 일부 프레임워크는 "thinking disabled"를 전송해 400 오류를 일으킵니다. 사용 중인 도구가 실제로 어떤 값을 보내는지 확인하세요.
- 하나의 파이프라인에서 여러 모델을 사용합니다. M3와 M2.x는 추론 노력 필드를 무시합니다. 모델 간에 라우팅하는 경우, Flash에서 비용을 줄여 주는 수준 설정도 다른 모델에서는 효과가 없습니다.
각 프로토콜에서 설정하기
AIHubMix에서 하나의 키로 세 가지 프로토콜을 모두 사용할 수 있습니다. 키 설정은 빠른 시작 가이드에서, 공급자별 추론 필드 처리 방식은 통합 추론 매개변수 페이지에서 확인하세요.
Chat Completions:
curl https://aihubmix.com/v1/chat/completions \
-H "Authorization: Bearer $AIHUBMIX_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "minimax-m3.1-flash",
"reasoning_effort": "low",
"max_tokens": 32768,
"messages": [{"role": "user", "content": "Write a function that merges overlapping date ranges."}]}'
Anthropic Messages(Python SDK, 사용 중인 SDK 버전에서 output_config 필드를 지원하지 않으면 extra_body에 넣으세요):
import os
import anthropic
client = anthropic.Anthropic(base_url="https://aihubmix.com", api_key=os.environ["AIHUBMIX_API_KEY"])
msg = client.messages.create(
model="minimax-m3.1-flash",
max_tokens=32768,
messages=[{"role": "user", "content": "Write a function that merges overlapping date ranges."}],
extra_body={"output_config": {"effort": "medium"}},
)
print(msg.usage)
Responses:
import os
from openai import OpenAI
client = OpenAI(base_url="https://aihubmix.com/v1", api_key=os.environ["AIHUBMIX_API_KEY"])
resp = client.responses.create(
model="minimax-m3.1-flash",
reasoning={"effort": "low"},
max_output_tokens=32768,
input="Write a function that merges overlapping date ranges.",
)
print(resp.usage)
처음 몇 차례 호출에서는 usage를 확인하세요. Chat Completions는 추론을 completion_tokens_details.reasoning_tokens로, Messages는 output_tokens_details.thinking_tokens로, Responses는 output_tokens_details.reasoning_tokens로 보고합니다. 수준을 바꿨는데도 이 수치가 달라지지 않으면 설정이 모델에 전달되지 않은 것입니다.
자주 묻는 질문
MiniMax M3.1 Flash의 기본 추론 노력 수준은 무엇인가요?
Max입니다. 요청에 추론 노력 필드가 없으면 모델은 가장 깊은 수준으로 추론합니다.
추론을 완전히 끌 수 있나요?
아니요. MiniMax API에서 추론을 비활성화하면 HTTP 400이 반환됩니다. 가장 낮은 수준은 low이며, 짧은 프롬프트에서는 low로 설정했을 때 추론 토큰을 전혀 사용하지 않는 경우가 많습니다.
코딩에는 어떤 추론 노력 수준을 사용해야 하나요?
단일 함수 수정과 소규모 코드 검토는 low, 여러 파일 변경은 medium에서 시작하고, 작업이 실패할 때만 수준을 높이세요. 테스트에서는 low가 버그 두 개가 있는 함수를 매번 올바르게 수정했습니다.
max 수준은 정확도가 더 높나요?
저희 테스트 작업에서는 그렇지 않았습니다. 모든 수준에서 215개 테스트를 전부 통과했습니다. max는 토큰과 시간을 훨씬 더 많이 사용했습니다. 더 어려운 작업에서는 높은 수준이 도움이 될 수 있지만, 어느 경우에 그런지는 보여 주는 공개 데이터가 없습니다.
같은 요청이 한 번은 10초, 다음에는 56초 걸린 이유가 무엇인가요?
같은 수준에서도 실행마다 추론 깊이가 달라집니다. Messages 엔드포인트에서 low로 실행한 사례 중 하나는 다른 사례보다 추론 토큰을 약 10배 더 사용했습니다.
AIHubMix에서 reasoning_effort none이 작동하나요?
오류 없이 받아들여지지만, 모델은 계속 추론합니다. 대신 low를 사용하세요.
호출에 사용된 추론 토큰 수는 어떻게 확인하나요?
usage 객체를 확인하세요. Chat Completions와 Responses에서는 reasoning_tokens, Messages API에서는 thinking_tokens를 확인하면 됩니다.
계속 읽기: MiniMax M3.1 Flash 시리즈
- Space Bunny 출시부터 M2.7 및 M3와 비교한 가격까지, 이 설정을 둘러싼 전반적인 내용을 알아보세요. MiniMax M3.1 Flash는 Space Bunny: M2.7 및 M3와 달라진 점과 비용
- M2.5/M2.7의 코드를 이전하면 추론 노력 수준 외에도 여러 가지가 달라집니다. 이 글에서 400 오류를 비롯한 나머지 내용을 다룹니다. 11월 18일 전에 MiniMax M2.5/M2.7에서 이전하기: M3.1 Flash의 "requires adaptive thinking" 400 오류 해결
- low 수준에서 Flash는 같은 수정 작업에 사용한 세 모델 중 가장 저렴했습니다. Flash의 기본값을 DeepSeek 및 Haiku의 기본값과 비교한 내용을 확인하세요. MiniMax M3.1 Flash vs DeepSeek V4.1 Flash vs Claude Haiku 5.5: 버그 수정 하나, 비용 세 가지



