MiniMax sẽ ngừng cung cấp M2.5 và M2.7 vào ngày 18 tháng 11 năm 2026, và quá trình chuyển đổi đã bắt đầu. Kể từ ngày 19 tháng 10, hai dòng model cũ này đã không còn mở cho người dùng mới; các yêu cầu trong gói đăng ký gọi tên chúng sẽ được xử lý bằng M3.1 Flash. Nếu bạn dùng dịch vụ trả theo mức sử dụng, bạn có bốn tuần để tự thay đổi ID model.
Phần lớn mã M2.7 vẫn chạy trên M3.1 Flash mà không cần chỉnh sửa. Vấn đề nằm ở một lựa chọn thiết kế: M3.1 Flash luôn suy nghĩ, và mặc định suy nghĩ ở mức sâu nhất nếu bạn không chỉ định khác. Điều này gây ra một lỗi rõ ràng, một số khoản tăng chi phí âm thầm và vài thiết lập giờ không còn tác dụng.
AIHubMix đã gửi mọi yêu cầu trong bài viết này qua cổng API của mình vào ngày 19 tháng 10 năm 2026, sử dụng minimax-m3.1-flash. Nội dung lỗi được sao chép từ các phản hồi đó. Quy định của MiniMax được trích từ tài liệu API.
Đối tượng bị ảnh hưởng và cách thức
| Bạn dùng M2.5/M2.7 thông qua | Điều gì xảy ra | Hạn chót |
|---|---|---|
| MiniMax M Plan / Token Plan | Các yêu cầu được xử lý bằng M3.1 Flash dưới tên cũ | Đã xảy ra (19 tháng 10) |
| MiniMax trả theo mức sử dụng | ID cũ tiếp tục hoạt động, sau đó ngừng | 18 tháng 11 năm 2026 |
| Tài khoản MiniMax mới | Không có M2.5/M2.7 | 19 tháng 10 năm 2026 |
Trang models page của MiniMax thông báo với người dùng gói đăng ký như sau: “mọi yêu cầu tới các model M2.5 và M2.7 trong những gói này sẽ tự động được chuyển đến M3.1 Flash Preview” và “tên model hiện có sẽ tiếp tục hoạt động”. Với người dùng trả theo mức sử dụng: “Sau khi ngừng cung cấp, các yêu cầu API tới những model này sẽ không còn hoạt động.” Thông báo không đề cập đến việc tự động chuyển hướng đối với người dùng trả theo mức sử dụng, vì vậy hãy dự kiến sẽ gặp lỗi thay vì được chuyển sang model khác.
Người dùng gói đăng ký cần lưu ý ý nghĩa của từ “chuyển hướng”. Nhật ký của bạn vẫn ghi M2.7, nhưng trọng số đã khác, cửa sổ ngữ cảnh lớn hơn 5× và độ sâu suy luận mặc định là max. Hãy xem đây là một lần đổi model và chạy lại các bài đánh giá của bạn.
Những lỗi dễ nhận biết
400: “requires adaptive thinking”
Điều bạn sẽ thấy. Yêu cầu tắt suy luận sẽ bị từ chối:
{"error": {"message": "invalid params, model \"MiniMax-M3.1-Flash\" requires adaptive thinking; thinking.type=\"disabled\" (including reasoning.effort=none) is not allowed (2013) (tid: …)", "type": "bad_request_error", "param": "", "code": null}}
Nguyên nhân. Tài liệu Messages API reference của MiniMax cho biết model “luôn suy nghĩ”: nếu gửi thinking.type, giá trị phải là adaptive; còn disabled sẽ trả về HTTP 400. Mã viết cho M3 có thể gặp lỗi này vì M3 cho phép tắt suy luận. Các framework đánh dấu model là không suy luận và mặc định gửi “thinking off” sẽ gặp lỗi này trong mọi lần gọi; cả dự án kodus-ai và 9router-go đều đã báo cáo những trường hợp tương tự.
Yêu cầu tối thiểu gây ra lỗi (Chat Completions trên AIHubMix):
curl https://aihubmix.com/v1/chat/completions \
-H "Authorization: Bearer $AIHUBMIX_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "minimax-m3.1-flash",
"messages": [{"role": "user", "content": "hi"}],
"thinking": {"type": "disabled"}}'
Cách khắc phục. Xóa trường thinking hoặc đặt thành {"type": "adaptive"}. Nếu bạn tắt suy luận để tiết kiệm thời gian, hãy dùng "reasoning_effort": "low" thay thế.
Lỗi 400 với cùng mã 2013 khi dùng URL hình ảnh
Điều bạn sẽ thấy. invalid param: remote returned status 400 (2013). Chúng tôi gặp lỗi này với một URL hình ảnh được lưu trữ trên upload.wikimedia.org. Cùng yêu cầu đó nhưng dùng hình ảnh base64 hoặc URL hình ảnh từ máy chủ khác thì trả về 200.
Nguyên nhân. Mã 2013 là mã “tham số không hợp lệ” chung của MiniMax, không dành riêng cho suy luận. Trong trường hợp này, có vẻ như hệ thống phía máy chủ không thể tải hình ảnh từ xa. Đây là cách chúng tôi diễn giải thông báo; MiniMax không ghi lại trường hợp này trong tài liệu.
Cách khắc phục. Gửi hình ảnh dưới dạng base64 (data:image/png;base64,…) hoặc lưu trữ chúng ở nơi chấp nhận các yêu cầu HTTP thông thường. Khi tìm lỗi 2013 trong nhật ký, hãy đọc toàn bộ thông báo trước khi cho rằng đó là lỗi suy luận.
Sau ngày 18 tháng 11: ID model đã ngừng cung cấp
Các lệnh gọi trả theo mức sử dụng tới MiniMax-M2.5, MiniMax-M2.5-highspeed, MiniMax-M2.7 và MiniMax-M2.7-highspeed trên API của MiniMax sẽ ngừng hoạt động vào ngày đó. Thông báo không đề cập M2.1 và M2. Hãy đổi ID model trước thời điểm này. Trên AIHubMix, ID mới là minimax-m3.1-flash.
Những vấn đề xảy ra âm thầm
Các yêu cầu này đều trả về 200. Khác biệt thể hiện qua hóa đơn, độ trễ hoặc kết quả đầu ra.
1. Các tùy chọn “tắt suy luận” giờ không còn tác dụng
Qua AIHubMix, có thể gửi ba cách yêu cầu không suy luận mà không gặp lỗi, nhưng model vẫn suy luận:
| Yêu cầu | Kết quả trên AIHubMix |
|---|---|
| Messages API, tắt suy luận | 200; 469–622 token suy luận cho một câu đố ngắn |
| Chat, reasoning_effort none | 200; 265–372 token suy luận cho cùng câu đố |
| Chat, reasoning_effort minimal | 200; model vẫn suy luận |
Hai hàng đầu là kết quả của ba lần chạy mỗi cấu hình trên cùng một câu đố logic gồm ba chiếc hộp; với low, model dùng 173–251 token suy luận. Thử nghiệm với minimal được chạy một lần trên một câu hỏi số học chỉ có một dòng.
Chỉ Chat Completions với thinking: {"type": "disabled"} mới gây ra lỗi 400 nêu trên. Nếu mã M2.x hoặc M3 của bạn dựa vào bất kỳ tùy chọn nào trong số này để giữ cho các lệnh gọi nhanh, giờ đây chúng sẽ âm thầm suy luận. Cách duy nhất thực sự để điều chỉnh là mức độ suy luận; mức thấp nhất là low.
2. Mức suy luận mặc định là max
M2.7 không có các mức suy luận. M3.1 Flash có năm mức, và tài liệu của MiniMax cho biết nếu bỏ qua trường này thì mặc định là max. Trong một tác vụ sửa hai lỗi nhỏ trong cùng một hàm Python, AIHubMix đo được:
| Thiết lập | Token suy luận trung bình | Thời gian trung bình | Chi phí trung bình cho mỗi lần sửa |
|---|---|---|---|
| Không chỉ định mức suy luận | 6,364 | 56 s | $0.0045 |
| Mức suy luận low | 591 | 9.5 s | $0.0006 |
Mọi lần chạy ở cả hai thiết lập đều vượt qua toàn bộ 215 bài kiểm thử ẩn. Chi phí được tính theo giá của AIHubMix: $0.165 cho đầu vào và $0.66 cho đầu ra trên mỗi triệu token; mỗi thiết lập chạy ba lần. Nếu chuyển đổi mà không thêm thiết lập mức suy luận, cùng một tác vụ sẽ mất nhiều thời gian hơn khoảng 6×. Bài viết về mức suy luận trong loạt bài này có đầy đủ phép đo cho cả năm mức.
3. Token suy luận chiếm vào max_tokens
Token suy luận được tính vào max_tokens. Mã M2.x thường đặt giới hạn thấp cho câu trả lời ngắn. Với max_tokens: 64 và một câu hỏi gồm hai câu, model đã dùng hết ngân sách cho việc suy luận, rồi trả về finish_reason: "length" cùng câu trả lời “Ánh sáng mặt trời chứa nhiều màu sắc,” bị cắt giữa chừng. MiniMax khuyến nghị 131,072 và cho phép tối đa 524,288. Hãy tăng các giới hạn thấp hoặc kiểm tra finish_reason trước khi tin vào câu trả lời.
4. Bộ nhớ đệm và các cấp dịch vụ đã thay đổi
cache_controlkhông được hỗ trợ trên M3.1 Flash (hoặc M3), theo tài liệu API của MiniMax. M2.7 tính phí ghi vào bộ nhớ đệm rõ ràng ở mức $0.375 mỗi triệu token. Trên M3.1 Flash, bộ nhớ đệm hoạt động tự động. AIHubMix tính phí đọc bộ nhớ đệm ở mức $0.0165 mỗi triệu token; mọi yêu cầu chúng tôi gửi đều có khoảng 175–195 token prompt được phục vụ từ bộ nhớ đệm, kể cả yêu cầu đầu tiên. Có vẻ đây là phần mở đầu cố định ở phía MiniMax; với mức giá đó, chi phí vào khoảng một phần ba xu cho mỗi nghìn yêu cầu. Hãy xóa các khốicache_control; chúng không có tác dụng ở đây.service_tierkhông được hỗ trợ. Nếu bạn dùng cấp Priority của M3 để giảm độ trễ, Flash không có lựa chọn tương đương.
5. Cùng tên, cách lấy mẫu khác
Giá trị mặc định của MiniMax đã thay đổi từ top_p 0.9 trên M2.x thành 0.95 trên M3.1 Flash; cửa sổ ngữ cảnh cũng tăng từ 204,800 lên 1,000,000 token. Prompt được tinh chỉnh cho M2.7 có thể tạo ra đầu ra dài hơn hoặc kém chặt chẽ hơn. Model mang tên không đổi vẫn là một model mới: hãy chạy lại các bài đánh giá của bạn.
Các quy tắc tính phí dễ bỏ sót
- Token suy luận được tính phí như đầu ra. Trên AIHubMix, mức giá là $0.66 mỗi triệu token. Ở mức suy luận mặc định, token suy luận chiếm 95% đầu ra trong tác vụ sửa lỗi của chúng tôi (6,364 trên tổng số 6,673 token).
- MiniMax vẫn chưa công bố giá chính thức trên mỗi token. Trang giá của hãng liệt kê M3 và M2.x, nhưng không có M3.1 Flash. AIHubMix tính phí $0.165 / $0.66 / $0.0165 (đầu vào / đầu ra / đọc bộ nhớ đệm).
- Giá chính thức của M3 tăng gấp đôi khi số token đầu vào vượt quá 512K. AIHubMix niêm yết một mức giá duy nhất cho M3.1 Flash. Nếu gửi prompt rất dài, hãy đối chiếu hóa đơn đầu tiên với ước tính của bạn.
Các bước giúp giảm hóa đơn:
- Đặt
reasoning_effort: "low"(Chat),output_config.effort: "low"(Messages) hoặcreasoning.effort: "low"(Responses) làm mặc định, rồi tăng mức theo từng tác vụ. - Đặt các chỉ dẫn ổn định ở đầu prompt để bộ nhớ đệm tự động có thể phục vụ chúng.
- Đặt
max_tokensđủ lớn để suy luận không làm câu trả lời bị cắt, vì phải thử lại do câu trả lời bị cắt sẽ tốn kém hơn phần dung lượng dự phòng bổ sung.
Các tác nhân có quyền thực thi thực sự
Có ba hành vi cần lưu ý khi model có thể chạy lệnh hoặc chỉnh sửa tệp:
- Model luôn suy luận trước khi hành động, kể cả ở mức
low. Điều này giúp chọn công cụ phù hợp. Nhưng cũng có nghĩa là mỗi bước dùng công cụ đều có độ trễ do suy luận; trong các lần gọi công cụ ngắn của chúng tôi, một bước mất khoảng 2 đến 7 giây ở mứclow. - Model làm đúng những gì bạn yêu cầu, nhưng chỉ trong phạm vi hẹp. Một người thử nghiệm ban đầu nhận xét: “nhanh khủng khiếp, nhưng cần chỉ dẫn rõ ràng và cụ thể, nếu không thì lười quá.” Hãy đưa cho các tác nhân điều kiện dừng và bước xác minh cụ thể (“chạy các bài kiểm thử rồi dán kết quả”) thay vì mục tiêu mở.
tool_choicetheo tài liệu chính thức chỉ hỗ trợauto. AIHubMix chấp nhận"required"(Chat) và{"type": "any"}(Messages), và model đã gọi công cụ, nhưng MiniMax không ghi rõ rằng việc ép gọi sẽ hoạt động. Đừng dựa vào tùy chọn này để xây dựng cơ chế kiểm tra an toàn.
MiniMax yêu cầu giữ nguyên các khối suy luận khi gửi lại ở những lượt sau (Messages) và giữ nguyên reasoning_content (Chat). Trong thử nghiệm của chúng tôi, một vòng gọi công cụ ngắn vẫn hoạt động dù đã bỏ khối suy luận, nhưng hãy tuân theo quy tắc trong tài liệu khi chạy vòng lặp tác nhân dài.
Công cụ lập trình
AIHubMix cung cấp minimax-m3.1-flash qua cả ba giao thức mà các công cụ lập trình phổ biến cần. Mỗi công cụ được thử nghiệm vào ngày 19 tháng 10 với văn bản, một lần gọi công cụ và một lượt trao đổi kết quả từ công cụ.
| Công cụ | Giao thức cần dùng | Hoạt động qua AIHubMix | Trường mức suy luận |
|---|---|---|---|
| Claude Code | Anthropic Messages | Có | output_config.effort |
| Codex CLI | OpenAI Responses | Có | reasoning.effort |
| OpenCode | Tương thích với OpenAI | Có | reasoning_effort |
Cửa sổ ngữ cảnh trên API của MiniMax là 1,000,000. Theo lời trích dẫn tài liệu MiniMax của một người duy trì dự án magpie, MiniMax Code mặc định cấu hình máy khách ở mức 512K “để cân bằng trải nghiệm và chi phí”; API không có tham số cửa sổ.
Claude Code. Kết nối công cụ với AIHubMix theo hướng dẫn AIHubMix Claude Code guide và đặt model là minimax-m3.1-flash:
export ANTHROPIC_BASE_URL="https://aihubmix.com"
export ANTHROPIC_AUTH_TOKEN="$AIHUBMIX_API_KEY"
export ANTHROPIC_MODEL="minimax-m3.1-flash"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="minimax-m3.1-flash" # background tasks too
Hai dạng thinking mà các client kiểu Anthropic gửi, enabled kèm ngân sách và adaptive, đều trả về mã 200 trong các bài kiểm thử của chúng tôi, vì vậy bạn sẽ không gặp lỗi 400. Vấn đề đã biết: tài liệu chưa nêu rõ liệu thiết lập effort của Claude Code có được truyền tới một model không phải Claude dưới dạng output_config.effort hay không. Nếu không, model sẽ chạy ở mức mặc định max và mỗi lượt sẽ chậm hơn so với M2.7. Bài kiểm tra nhanh bên dưới sẽ chỉ cho bạn cách nhận biết.
Codex CLI. Codex giao tiếp với Responses API, API này hoạt động với model này: các lệnh gọi hàm được trả về dưới dạng các mục function_call. Hãy cấu hình một provider tùy chỉnh như trong hướng dẫn Codex của AIHubMix, với wire_api = "responses", sau đó đặt model = "minimax-m3.1-flash" và model_reasoning_effort. Cả xhigh lẫn minimal đều được chấp nhận; minimal không phải một trong các mức của MiniMax, nhưng model vẫn suy luận.
OpenCode. Vấn đề OpenCode #54801 (đã tái hiện trên v2.0.27) cho biết OpenCode không tìm thấy biến thể effort nào cho model này, nên ctrl+t không có tác dụng. Cách khắc phục trong issue là tự khai báo năm biến thể trong opencode.json. Với provider tương thích OpenAI của AIHubMix, trường request mà mỗi biến thể cần thiết lập là reasoning_effort (low … max) thay vì output_config.effort như trong issue. Đừng thêm biến thể none.
Bài kiểm tra nhanh trong 15 phút cho cả ba công cụ:
- Tạo một thư mục thử nghiệm với một hàm có một lỗi đã biết và một tệp kiểm thử thất bại do lỗi đó.
- Yêu cầu agent: "Chạy kiểm thử, sửa lỗi, chạy lại kiểm thử và cho tôi xem kết quả."
- Kết quả đạt yêu cầu trông như sau: agent chạy kiểm thử trước và sau khi sửa, lần chạy cuối cùng thành công, hoàn tất chỉ sau vài lượt và không lượt nào trả về lỗi 400.
- Kiểm tra nhật ký sử dụng AIHubMix. Bạn sẽ thấy các request
minimax-m3.1-flashcó reasoning token. Nếu mỗi lượt mất gần một phút, thiết lập effort của bạn chưa được truyền tới model và model đang chạy ở mứcmax.
Danh sách kiểm tra khi chuyển đổi
- Thay ID MiniMax-M2.5 / M2.7 bằng minimax-m3.1-flash (trên AIHubMix) trước ngày 18 tháng 11.
- Xóa thinking disabled, effort none và effort minimal khỏi các request.
- Chỉ định rõ một mức effort cho mọi request; bắt đầu với low.
- Tăng max_tokens để thinking không làm câu trả lời bị cắt ngắn; kiểm tra finish_reason.
- Xóa các trường cache_control và service_tier.
- Gửi hình ảnh dưới dạng base64 hoặc qua máy chủ lưu trữ mà hệ thống upstream có thể truy cập.
- Giữ nguyên các khối thinking và reasoning_content qua các lượt dùng công cụ.
- Chạy lại các bài đánh giá: cùng tên, model mới, giá trị mặc định mới cho sampling.
- Trong các công cụ lập trình, xác nhận thiết lập effort được truyền tới model (thời gian mỗi lượt là dấu hiệu dễ nhận biết).
Câu hỏi thường gặp
Tại sao tôi gặp lỗi "requires adaptive thinking"?
Request của bạn đã tắt thinking, thường là bằng cách đặt thinking type thành disabled trên endpoint Chat Completions. M3.1 Flash luôn suy luận. Hãy xóa trường này hoặc đặt thành adaptive, và dùng effort low nếu bạn muốn tốc độ nhanh.
Request M2.7 của tôi không thay đổi nhưng câu trả lời lại khác. Tại sao?
Nếu bạn dùng MiniMax M Plan hoặc Token Plan, các request chỉ định M2.5 hoặc M2.7 đã được xử lý bằng M3.1 Flash kể từ ngày 19 October 2026, nhưng vẫn giữ tên cũ.
Hạn chót dành cho người dùng trả phí theo mức sử dụng là khi nào?
Ngày 18 November 2026. Sau thời điểm đó, các request MiniMax API tới M2.5 và M2.7 sẽ ngừng hoạt động.
reasoning_effort none có hoạt động trên AIHubMix không?
Request trả về mã 200, nhưng model vẫn suy luận. Mức thấp nhất có hiệu lực là low.
Tôi còn cần cache_control không?
Không. MiniMax không hỗ trợ trường này trên M3.1 Flash. Bộ nhớ đệm được tự động hóa, và AIHubMix tính phí đầu vào đã lưu trong bộ nhớ đệm ở mức $0.0165 cho mỗi triệu token.
Tôi có thể dùng M3.1 Flash trong Claude Code và Codex không?
Có. AIHubMix cung cấp model này qua Anthropic Messages API cho Claude Code và qua Responses API cho Codex. Cả hai đều vượt qua các bài kiểm tra văn bản, lệnh gọi công cụ và kết quả công cụ vào ngày 19 October 2026.
Tại sao câu trả lời của tôi bị cắt ngắn?
Thinking token được tính vào max_tokens. Nếu finish_reason là length, hãy tăng max_tokens. MiniMax khuyến nghị 131,072.
Đọc tiếp: dòng MiniMax M3.1 Flash
- Trước khi quyết định chuyển đổi, hãy tìm hiểu về model bạn sẽ chuyển sang, từ màn ra mắt Space Bunny đến mức giá so với M2.7 và M3: MiniMax M3.1 Flash là Space Bunny: Những thay đổi so với M2.7 và M3, cùng mức giá
- Sau khi chuyển đổi, thiết lập quan trọng nhất là effort. Bài viết này đo lường cả năm mức trên cùng một tác vụ sửa lỗi: Các mức effort của MiniMax M3.1 Flash: Vì sao mức mặc định tốn gấp 7 lần mức Low khi sửa cùng một lỗi
- Nếu việc chuyển đổi khiến bạn cân nhắc lại việc dùng MiniMax, đây là kết quả và hóa đơn cho cùng một tác vụ trên hai đối thủ gần nhất: MiniMax M3.1 Flash so với DeepSeek V4.1 Flash và Claude Haiku 5.5: Một lỗi cần sửa, ba hóa đơn



