Chuyển sang GPT-6.1 Sol: 9 điều có thể xảy ra sai sót

AIHubMixĐọc 8 phút
Chuyển sang GPT-6.1 Sol: 9 điều có thể xảy ra sai sót

Chuyển từ GPT-6 Sol sang 6.1 Sol có vẻ chỉ cần thay đổi một dòng, mà giá cũng không đổi. Nhưng có một vài thay đổi gây lỗi tương thích và một số khác biệt về hành vi, nên chỉ đổi tên model có thể khiến bạn gặp lỗi, hóa đơn bất ngờ hoặc một agent hoạt động khác đi. Hướng dẫn chuyển đổi GPT-6 của OpenAI đề cập đến hầu hết các thay đổi chính thức. Bài viết này bổ sung những vấn đề thường gây rắc rối trong thực tế.

Các vấn đề được sắp xếp từ “lỗi rõ ràng” đến “lỗi âm thầm”.


1. reasoning_effort: "none" trả về lỗi 400

Bạn sẽ thấy: Yêu cầu bị từ chối.

Lý do: 6.1 Sol không hỗ trợ none hoặc minimal. Mức thấp nhất là low. GPT-6 Sol và Luna vẫn chấp nhận none, đó là lý do mã cũ của bạn hoạt động trên các model này.

Cách khắc phục:

  • Cách ánh xạ của OpenAI là thay none bằng low. Với minimal, hãy bắt đầu từ low rồi so sánh.
  • low chậm hơn và tốn kém hơn none, vì nó tạo ra token suy luận. Với các tác vụ thực sự nhạy cảm về độ trễ như tự động hoàn thành hoặc phân loại theo thời gian thực, tiếp tục dùng GPT-6 Sol hoặc chuyển sang Luna có thể là lựa chọn tốt hơn.

2. Gọi công cụ trong Chat Completions ngừng hoạt động

Bạn sẽ thấy: Các yêu cầu Chat Completions có chứa tools bị lỗi.

Lý do: GPT-6 Sol chỉ cho phép gọi hàm trong Chat Completions khi reasoning_effort được đặt là none, và nhiều dự án dựa vào kết hợp này để gọi công cụ với chi phí thấp. Khi none không còn được hỗ trợ, Chat Completions trên 6.1 Sol chỉ hoạt động với các yêu cầu không dùng công cụ. Muốn dùng công cụ, bạn phải sử dụng Responses API. Hướng dẫn của OpenAI về chuyển sang Responses API có các bước thực hiện.

Cách khắc phục: Chuyển sang /v1/responses. AIHubMix cũng hỗ trợ API này; xem tài liệu Responses API của AIHubMix để biết các tham số.

from openai import OpenAI
import os

client = OpenAI(
    api_key=os.environ["AIHUBMIX_API_KEY"],
    base_url="https://aihubmix.com/v1",
)

resp = client.responses.create(
    model="gpt-6.1-sol",
    reasoning={"effort": "low"},          # nested, not reasoning_effort
    tools=[{
        "type": "function",
        "name": "get_weather",
        "description": "Get the current weather for a city",
        "parameters": {
            "type": "object",
            "properties": {"city": {"type": "string"}},
            "required": ["city"],
        },
    }],
    input="What's the weather in Shanghai today?",
)
print(resp.output)

Những điều dễ bỏ sót:

  • Trong Responses, tên tham số là reasoning.effort. Gửi reasoning_effort sẽ nhận lỗi Unsupported parameter.
  • Khi sử dụng công cụ qua nhiều lượt, hãy gửi lại mọi mục reasoning, function_call và function_call_output kể từ tin nhắn người dùng gần nhất, chứ không chỉ các kết quả của hàm.
  • Khi dùng store: false hoặc ZDR, các mục reasoning mặc định có chứa encrypted_content. Phát lại toàn bộ lịch sử là sẽ hoạt động bình thường.

3. Phải bỏ các tham số lấy mẫu

Bạn sẽ thấy: Các yêu cầu có temperature hoặc top_p bị lỗi.

Lý do: Chỉ được dùng các tham số này khi effort là none. 6.1 Sol không có none, nên bạn không thể dùng chúng với model này.

Hãy xóa:

  • temperature, top_p, top_logprobs
  • logprobs trong Chat Completions
  • message.output_text.logprobs khỏi include trong Responses

Nếu bạn dùng logprobs để tính điểm độ tin cậy hoặc đặt ngưỡng phân loại, bạn sẽ cần một cách tiếp cận mới. Một lựa chọn là dùng đầu ra có cấu trúc để yêu cầu model tự báo cáo độ tin cậy. Lựa chọn khác là tiếp tục dùng model hỗ trợ none cho các tác vụ đó.


4. Cơ chế caching thay đổi, hóa đơn có thể tăng

Đây là điều dễ bị bỏ qua nhất, đặc biệt khi chuyển từ GPT-5.5 trở xuống. Tất cả thông tin dưới đây lấy từ hướng dẫn prompt caching của OpenAI.

Tham số đã được đổi tên. prompt_cache_retention giờ là prompt_cache_options.ttl, và giá trị duy nhất được hỗ trợ là "30m".

Ghi cache bị tính phí. Chi phí bằng 1.25× mức giá đầu vào ($2.50 cho mỗi triệu token trên 6.1 Sol). Một tiền tố dài mà bạn chỉ dùng một lần giờ tốn hơn 25% khi dùng cache so với không dùng.

Các điểm ngắt đã thay đổi vị trí. Các model cũ đặt điểm ngắt theo khoảng cố định (cứ mỗi 2,048 token trên GPT-5.5). Chế độ ngầm định giờ đặt một điểm ngắt ở cuối tin nhắn đủ điều kiện mới nhất. Vì vậy, tiền tố ngắn hơn được dùng chung giữa các yêu cầu sẽ không tự động được tái sử dụng. Nếu nhiều yêu cầu dùng chung một system prompt rồi có đầu vào người dùng khác nhau, hãy thêm điểm ngắt tường minh ngay sau system prompt.

Nối thêm nội dung vào tin nhắn hiện có sẽ làm hỏng cache. Điểm cuối của phần được cache sẽ nằm giữa một tin nhắn dài hơn nên không thể khớp. Thay vào đó, hãy thêm một tin nhắn mới.

Thay đổi reasoning effort sẽ làm hỏng cache. reasoning.effort là một phần của tiền tố. Hãy chuyển đổi giữa cuộc trò chuyện bằng configuration_update (xem Phần 2). Lưu ý rằng thao tác này không thể kết hợp với việc tự động nén hoặc cắt bớt, và /responses/compact sẽ từ chối lịch sử có chứa thao tác này.

Lưu lượng cao có thể làm giảm tỷ lệ cache hit. Cache nằm trên từng máy riêng lẻ. Nếu cùng một tiền tố có hơn khoảng 15 yêu cầu mỗi phút, yêu cầu có thể được chuyển sang máy khác và không cache hit. Token đã cache vẫn được tính vào giới hạn TPM của bạn.

Trước và sau khi chuyển đổi, hãy so sánh cached_tokens, cache_write_tokens, độ trễ và chi phí trên mỗi tác vụ.


5. Vượt mốc đầu vào 272K khiến giá tăng gấp đôi

Cửa sổ ngữ cảnh 1.05M rất hấp dẫn, nhưng khi đầu vào vượt quá 272K token, toàn bộ yêu cầu sẽ bị tính phí gấp 2× cho đầu vào và 1.5× cho đầu ra. Tăng đầu vào từ 270K lên 280K khiến chi phí mỗi yêu cầu tăng từ $0.64 lên $1.27 (Phần 3 có phần tính toán).

Các phiên làm việc dài của agent cứ tiếp tục tăng, nên rất dễ vượt mốc này mà không nhận ra. Hãy đặt cảnh báo ở phía máy khách quanh mức 250K và kích hoạt nén khi cảnh báo xuất hiện.


6. Giá trị max_output_tokens quá thấp khiến phản hồi trống

Bạn sẽ thấy: status: incomplete với lý do max_output_tokens, không có nội dung hiển thị nhưng bạn vẫn bị tính phí.

Lý do: max_output_tokens tính cả token suy luận. Giới hạn từng đủ dùng với none có thể bị token suy luận dùng hết khi đặt ở low hoặc cao hơn.

Cách khắc phục: Hướng dẫn về reasoning của OpenAI khuyên nên dành ra ít nhất 25,000 token. Hãy tìm các giới hạn được ghi cứng, đặc biệt là những giá trị được giữ nguyên từ max_tokens của Chat Completions. Ví dụ, mã mẫu trên trang model của AIHubMix dùng giá trị 1024. Mức này phù hợp cho bản demo văn bản nhanh, nhưng hãy tăng lên khi chạy tác vụ thực tế.


7. Hành vi của agent đã thay đổi, hãy xem xét lại quyền hạn

Nhìn chung, 6.1 Sol hoạt động tốt hơn 6 Sol: số sự cố nghiêm trọng giảm một phần ba và model có xu hướng báo cho bạn biết khi công cụ gặp trục trặc cao hơn nhiều. Tuy vậy, vẫn cần lưu ý một vài số liệu (dữ liệu của OpenAI, do DataCamp tổng hợp):

Hành vi 6.1 Sol 6 Sol Astra
Tiếp tục tìm cách lách một hạn chế đã nêu rõ 23.5% 64.4% 17.4%
Gian dối trong các tác vụ lập trình 1.50% 1.30% 0.51%
Liên hệ với các agent khác 38% 26% —
Thực hiện hành động trái phép 3% 11% —

6.1 Sol kiên trì hơn. Khi bị chặn, model thử nhiều cách lách hơn và sẵn sàng trao đổi với các agent khác hơn. Đây thường là điều bạn muốn ở một agent tự động hóa, nhưng cũng làm tăng rủi ro khi agent có quyền hạn rộng.

Nên làm gì:

  • Thực thi quyền hạn bằng sandbox và danh sách cho phép, không chỉ dựa vào chỉ dẫn trong prompt.
  • Yêu cầu con người phê duyệt các hành động nhạy cảm: xóa, triển khai, thanh toán và mọi thao tác liên quan đến thông tin xác thực.
  • Lưu đầy đủ nhật ký gọi công cụ và kiểm tra ngẫu nhiên những khẳng định như “các bài kiểm thử đều đạt” hoặc “đã sửa”.
  • Trong các hệ thống nhiều agent, hãy xác định chính xác những gì các agent được phép chia sẻ với nhau.

8. Có thể bạn cần tinh chỉnh prompt

Hướng dẫn chuyển đổi GPT-6 của OpenAI liệt kê một số thay đổi về hành vi. Các thay đổi này được mô tả cho Astra, nhưng 6.1 Sol thuộc cùng dòng model và có hiệu năng gần tương đương, nên hãy kiểm tra các điểm sau:

  • Model đặt nhiều câu hỏi hơn. Nó có thể dừng lại để xác nhận ở những chỗ bạn kỳ vọng nó sẽ tiếp tục. Hãy bảo model ưu tiên hành động và hoàn thành tác vụ, đồng thời nói rõ rằng những cách diễn đạt như “bạn có thể…” là yêu cầu thực hiện việc đó.
  • Model làm theo hướng dẫn sát nghĩa hơn. Nó chú ý kỹ hơn đến các tệp AGENTS.md và SKILL.md, nên một quy tắc cũ có thể đột nhiên được thực thi. OpenAI đặc biệt khuyến nghị kiểm tra các tệp này và nêu rõ rằng chỉ dẫn của người dùng được ưu tiên hơn kỹ năng.
  • Model có xu hướng dùng Markdown, danh sách và bảng, đồng thời lặp lại các cụm từ khuôn mẫu. Nếu muốn văn xuôi, hãy nói rõ điều đó.
  • Model kiểm thử quá nhiều với những thay đổi nhỏ. Hãy nói rõ rằng các chỉnh sửa ít rủi ro và có thể đảo ngược không cần chạy toàn bộ bộ kiểm thử.
  • Model giao việc cho các agent con ít hơn mức bạn mong muốn. Nếu muốn làm việc song song, hãy nêu rõ khi nào cần chia nhỏ tác vụ.

9. Giới hạn về khả năng cung cấp và triển khai

  • Chưa có trong các cuộc trò chuyện ChatGPT thông thường. Chỉ có trên ChatGPT Work và Codex. Quản trị viên Enterprise và Edu cần bật tính năng này.
  • Fast mode không hoạt động với khu vực lưu trú dữ liệu EU. Ultrafast chỉ hỗ trợ khu vực lưu trú dữ liệu Hoa Kỳ và xử lý toàn cầu.
  • Mốc kiến thức là April 30, 2026. Với thư viện, API hoặc tin tức mới hơn, hãy dùng tìm kiếm web hoặc RAG.
  • Không được hỗ trợ: tinh chỉnh, Predicted Outputs, đầu vào âm thanh và video, cùng các API Realtime và Assistants.
  • Giới hạn tốc độ tương đương 6 Sol: từ 500 RPM / 500K TPM ở Tier 1 đến 15,000 RPM / 40M TPM ở Tier 5. Trên AIHubMix, yêu cầu có thể được chuyển qua OpenAI hoặc Azure, đồng thời tự động thử lại qua nhà cung cấp còn lại nếu một bên gặp lỗi hoặc chậm.

Danh sách kiểm tra khi chuyển đổi

  • [ ] Thay none và minimal bằng low, rồi kiểm tra độ trễ
  • [ ] Chuyển các yêu cầu gọi công cụ từ Chat Completions sang Responses API
  • [ ] Dùng tham số lồng reasoning.effort
  • [ ] Xóa temperature, top_p và logprobs, đồng thời sửa lại mọi logic phụ thuộc vào logprobs
  • [ ] Thay prompt_cache_retention bằng prompt_cache_options.ttl: "30m"
  • [ ] Thêm điểm ngắt tường minh sau các tiền tố dùng chung và xác nhận chúng có ít nhất 1,024 token
  • [ ] Dùng configuration_update để thay đổi effort giữa cuộc trò chuyện
  • [ ] Thêm cảnh báo khi đầu vào đạt 272K
  • [ ] Đặt max_output_tokens ở mức ít nhất 25,000
  • [ ] Kiểm tra AGENTS.md, SKILL.md và các system prompt
  • [ ] Rà soát quyền sandbox, các bước phê duyệt và nhật ký công cụ
  • [ ] So sánh tỷ lệ thành công, cached_tokens, reasoning_tokens và chi phí mỗi tác vụ trước và sau khi nâng cấp

Nếu bạn dùng Codex, chạy $openai-docs migrate this project to the GPT-6 model family sẽ xử lý hầu hết các thay đổi mang tính cơ học. Tuy vậy, hãy tự mình kiểm tra danh sách này.


Câu hỏi thường gặp

Tôi cần thay đổi tối thiểu những gì để chuyển từ GPT-6 Sol sang 6.1 Sol? Ba điều: tên model; thay none và minimal bằng low; và xóa temperature, top_p cũng như mọi thứ liên quan đến logprobs. Nếu bạn gọi công cụ qua Chat Completions, bạn cũng cần chuyển sang Responses API.

Tôi vẫn có thể dùng Chat Completions cho văn bản thuần không? Có. Miễn là yêu cầu không có tools, Chat Completions vẫn hoạt động. Ví dụ trên trang model của AIHubMix chính là kiểu gọi này.

AIHubMix có hỗ trợ Responses API không? Có. Đặt base_url thành https://aihubmix.com/v1 rồi gọi client.responses.create.

Tỷ lệ cache hit của tôi giảm sau khi nâng cấp. Tôi nên kiểm tra gì? Ba điều: các tiền tố dùng chung có điểm ngắt tường minh ngay sau chúng hay không, bạn có nối thêm vào các tin nhắn hiện có hay không, và bạn có thay đổi reasoning.effort giữa cuộc hội thoại hay không. Sau đó, hãy so sánh cached_tokens và cache_write_tokens trước và sau.

Độ trễ tăng sau khi nâng cấp. Điều đó có bình thường không? Nếu trước đây bạn dùng none, thì có. low vẫn tạo ra token suy luận. Với các luồng xử lý cần độ trễ thấp, hãy tiếp tục dùng GPT-6 Sol hoặc Luna, hoặc yêu cầu model đưa ra phần mở đầu ngắn để trả về token đầu tiên nhanh hơn.

So với 6 Sol, 6.1 Sol có dễ vượt quá quyền hạn hơn không? Nhìn chung là không. Số sự cố nghiêm trọng giảm một phần ba, còn tỷ lệ thực sự thực hiện hành động trái phép giảm từ 11% xuống 3%. Model có phần dễ liên hệ với các agent khác và hành xử gian dối hơn trong các tác vụ lập trình, vì vậy hãy thực thi quyền bằng sandbox thay vì chỉ dựa vào prompt.

AGENTS.md và system prompt hiện có của tôi vẫn dùng được chứ? Chúng vẫn chạy, nhưng hãy rà soát lại. Họ GPT-6 tuân thủ chỉ dẫn nghiêm ngặt hơn, nên các quy tắc lỗi thời hoặc mâu thuẫn có thể khiến model thường xuyên dừng lại để hỏi thêm, hoặc làm điều bạn không định yêu cầu.


Đọc tiếp: loạt bài GPT-6.1 Sol


Nguồn

Một cổng duy nhất tới nhiều nhà cung cấp AI. Sẵn sàng cho môi trường production.

Truy cập AIHubMix