遷移至 GPT-6.1 Terra:修正 temperature 400 錯誤、將工具移至 Responses,並設定 Codex

推理時代閱讀約 13 分鐘
遷移至 GPT-6.1 Terra:修正 temperature 400 錯誤、將工具移至 Responses,並設定 Codex

切換至 GPT-6.1 Terra 只需修改一行:將模型設為 gpt-6.1-terra。接下來會發生什麼,取決於請求走哪個 API 路由。在 Responses API 上,Terra 遵循 OpenAI 的規則:推理強度設定有效,而 temperature 或 top_p 會回傳 HTTP 400。在 AIHubMix 的 Chat Completions 路由上,相同的 temperature 則會被接受,不會出錯;而在 AIHubMix 於 2026 年 10 月 27 日進行的檢查中,reasoning_effort 對小型提示詞沒有可測量的影響。

因此,對大多數團隊來說,簡短的答案是:將 Terra 流量移至 Responses API、移除取樣參數,並讓每個工作負載固定使用一個路由。以下將說明你會遇到的錯誤、不會觸發錯誤的問題、容易忽略的計費規則、Agent 權限,以及 Codex 和 Claude Code 的設定方式。AIHubMix 的 GPT-6.1 Terra 模型頁面列出的價格與 OpenAI 官方定價相同:每百萬個輸入 token $1、快取輸入 token $0.05、30 分鐘快取寫入 $1.25,以及輸出 $5。AIHubMix 自家的頁面列出相同的輸入、輸出與快取讀取費率,但未列出快取寫入費率。

這些規則來自 OpenAI 的GPT-6 遷移指南和 Terra 的模型頁面。錯誤訊息和閘道行為則來自 AIHubMix 於 2026 年 10 月 27 日進行的檢查,使用小型提示詞測試主要模型 ID gpt-6.1-terra。AIHubMix 的模型指南指出,大多數 400 錯誤會由上游供應商原樣傳回,而這些錯誤訊息會附上 AIHubMix 的追蹤 ID tid。

你使用的是哪個路由?

在這些檢查中,AIHubMix 透過三種協定提供 Terra。它們的行為並不相同:

路由 推理強度控制 temperature 工具呼叫
Responses 有效 除非推理強度為 none,否則回傳 400 OpenAI 有文件說明
Chat Completions 沒有明顯效果 接受 沒有文件說明
Anthropic Messages 沒有明顯效果 未測試 回傳 tool_use

「沒有明顯效果」和「接受」是指 AIHubMix 在 10 月 27 日以小型提示詞測得的結果。Chat Completions 上的工具呼叫確實回傳了工具呼叫結果,但 OpenAI 文件指出,Terra 僅支援透過 Responses 呼叫工具。

如果你是從頭開始,請使用 Responses。如果目前的 Chat Completions 整合正常運作,請先了解這些不易察覺的失敗情況,再決定是否信任它。

明顯的錯誤

這些情況會回傳 HTTP 400,並中止請求。

「不支援的參數:此模型不支援 'temperature'。」

你會看到的結果。使用預設推理強度(medium)並設定 temperature 的 Responses API 呼叫會回傳:

Unsupported parameter: 'temperature' is not supported with this model.

傳送 top_p 會回傳相同錯誤,只是以 top_p 取代 temperature。推理強度預設為 medium,因此即使請求中完全沒有設定推理強度,也會遇到這個錯誤。

原因。OpenAI 的遷移指南指出,當推理強度不是 none 時,必須移除 temperature、top_p 和 top_logprobs。使用 Responses 時,也要從 include 中移除 message.output_text.logprobs。

重現方式。這段透過AIHubMix Responses API呼叫的 curl 指令,會傳送 AIHubMix 在 10 月 27 日使用的相同本文:

curl https://aihubmix.com/v1/responses \
  -H "Authorization: Bearer $AIHUBMIX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-6.1-terra",
    "input": "Reply with the single word: ready.",
    "temperature": 0.2
  }'

結果回傳 HTTP 400:

{"error":{"message":"Unsupported parameter: 'temperature' is not supported with this model. (tid: …)","type":"Aihubmix_api_error"},"type":"error"}

修正方式。從所有呼叫路徑中刪除 temperature 和 top_p,包括你可能忘記處理的摘要器和分類器等輔助呼叫。如果需要控制取樣,請將推理強度設為 none:Terra 支援此設定,而且 AIHubMix 的檢查中,推理強度設為 none 並使用 "temperature": 0.2 的請求回傳了 200。OpenAI 開發者論壇上的一篇貼文也提到相同規則,並指出 GPT-6.1 Sol 不允許這麼做,因為它沒有 none 這個推理強度等級。

{
  "model": "gpt-6.1-terra",
  "input": "Reply with the single word: ready.",
  "reasoning": {"effort": "none"},
  "temperature": 0.2
}

「不支援的參數:此模型不支援 'logprobs'。」

你會看到的結果。使用 logprobs: true 和 reasoning_effort: "high" 的 Chat Completions 呼叫會回傳:

Unsupported parameter: 'logprobs' is not supported with this model.

原因。這是相同的 OpenAI 規則。針對 Chat Completions,指南進一步指出,當推理強度不是 none 時,也必須從要移除的參數清單中刪除 logprobs。

修正方式。移除 logprobs 和 top_logprobs。如果你的流程依賴這些參數取得信賴分數,請在切換前規劃替代方案。AIHubMix 未測試 Chat Completions 在推理強度為 none 時使用 logprobs 的情況。

「不支援的值:不支援 'minimal'……」

你會看到的結果。為較舊 OpenAI 模型撰寫、會傳送 minimal 推理強度的程式碼會收到:

Unsupported value: 'minimal' is not supported with the 'gpt-6.1-terra' model. Supported values are: 'none', 'low', 'medium', 'high', 'xhigh', and 'max'.

原因。Terra 的推理強度等級為 none、low、medium、high、xhigh 和 max。其中沒有 minimal。

修正方式。OpenAI 的指南建議從 low 開始,並以具代表性的工作任務比較結果。如果舊設定的目的是關閉推理,none 是較接近的選擇。

不易察覺的失敗

這些情況會回傳 HTTP 200,因此記錄中不會出現任何警示。之後你可能會發現回答不符合設定、快取未命中,或 Agent 停下來詢問問題。

Chat Completions 接受 temperature,但似乎會忽略推理強度

在 AIHubMix 的 Chat Completions 路由上,temperature: 0.2 在未設定推理強度、推理強度設為 none,以及設為 high 時,皆回傳 200。top_p: 0.5 也回傳 200。這會帶來一個副作用:如果你的測試套件使用 Chat Completions,就無法抓出同一段程式碼移至 Responses 後會遇到的 400 錯誤。

更大的問題在於推理強度。AIHubMix 在 10 月 27 日的檢查中發現,Chat Completions 上的 reasoning_effort 沒有可測量的影響:

提示詞 路由 推理強度 none 推理強度 max
質數和清單 Chat Completions 181 和 258 293 和 234
質數和清單 Responses 0 1,078
球棒與球 Chat Completions 24 25

數字代表每個請求的推理 token 數量。Chat Completions 在質數和提示詞的每個設定下各執行兩次。

在簡短的球棒與球提示詞中,none、low、high、max 以及完全未設定推理強度時,產生的推理 token 數量都介於 24 到 27 之間。在質數和提示詞中,改為傳送物件形式的 reasoning: {effort: "none"},則產生了 327 個推理 token。在 Responses 上,相同的質數和提示詞於推理強度為 none 時產生 0 個推理 token 和 72 個輸出 token;推理強度為 max 時則產生 1,078 個推理 token 和 1,153 個輸出 token。

AIHubMix 對此的解讀是,目前 Chat Completions 路由以固定推理強度執行 Terra,因此這項設定並未傳到模型。這只是根據少數小型提示詞所做的推論,測試範圍僅限 AIHubMix,並非 Chat Completions 的通則。更大型或更困難的提示詞可能會呈現不同結果。如果推理強度會影響你的成本或品質,請在 Responses 上設定;該路由確實能讓這項設定生效。

Chat Completions 上的工具呼叫有效,但沒有文件說明

OpenAI 的指南指出,GPT-6.1 Terra 支援 Chat Completions,但工具呼叫必須使用 Responses。在 AIHubMix 上,帶有函式工具的 Chat Completions 請求確實回傳了 finish_reason: tool_calls。不要仰賴這種行為:這是沒有文件說明的行為,可能在未通知的情況下變更。在 Responses 上,函式工具回傳了 function_call 項目,web_search 回傳了搜尋呼叫和訊息,而帶有 async: true 的函式工具也回傳了 200。請將工具流量移至 Responses。

Claude Code 在 Messages 路由上的思考設定不會生效

AIHubMix 也透過 Claude Code 使用的 Anthropic Messages API 提供 Terra。文字、tool_use 和 base64 圖片都回傳了 200。推理控制設定則沒有生效:啟用 thinking 並設定 4,000-token 預算時產生 24 個思考 token,設定 output_config.effort: "high" 時產生 26 個,而兩者都不設定的請求產生 25 個。回應中沒有思考區塊,只有文字或 tool_use 區塊。

Responses 和 Chat Completions 使用彼此獨立的快取

AIHubMix 透過 Responses 傳送了約 9,600 個 token 的固定 developer 前綴。第 1 次呼叫將 9,623 個 token 寫入快取,第 2 次和第 3 次呼叫則讀取 9,623 個快取 token。緊接著,使用相同前綴的 Chat Completions 呼叫沒有命中快取,並再次寫入全部 9,623 個 token。使用不同前綴進行的第二輪測試也重現了相同情況:Responses 呼叫寫入 9,020 個 token,使用相同前綴的 Chat Completions 呼叫未命中快取,並寫入 9,020 個 token;接著再次呼叫 Chat Completions,則從該路由寫入的快取項目讀取 9,007 個 token。

因此,若工作負載在不同路由間交替使用,每次快取寫入都會重複計費。請為每個工作負載選定一個路由。

舊模型的快取設定

如果你是從 GPT-5.5 或更早的模型轉換而來,OpenAI 的指南建議以 prompt_cache_options.ttl 取代 prompt_cache_retention。預設值為 "30m"。Responses 支援設定 "12h" 的有效期限,AIHubMix 也接受此設定:usage 物件會在 cache_write_tokens_details.ttl_12h_tokens 下回報寫入的 token 數量。在未設定斷點的明確模式下,不會寫入任何內容,這與 OpenAI 的文件說明一致。

在對話中途變更推理強度

在請求層級變更 reasoning.effort 會改變提示詞前綴,導致快取失效。OpenAI 新增了 configuration_update 輸入項目來處理這種情況。它會從對話中的該處起調高或調低推理強度,同時保留原始前綴。透過 AIHubMix 傳送包含此項目的請求,結果回傳了 200。OpenAI 的指南建議在標準的單一 Agent 請求中使用此設定。

模型會先詢問,再採取行動

OpenAI 的 GPT-6 提示詞指南指出,如果更多輸入可能改變結果,該系列模型更可能停下來向使用者提問,也更容易受到 skills 和 AGENTS.md 等檔案中的指示影響。這些說明是針對 GPT-6 Astra 撰寫,因此建議在 Terra 上驗證,而不是直接視為既定事實。如果原本在 GPT-5.6 Terra 上能無人值守執行的 Agent 現在會停下來請求核准,指南建議在提示詞中明確說明使用者的請求已授權哪些行動。指南也建議稽核模型可讀取的所有 skill 和指示檔案。

推理強度預設為 medium,而 max 的成本高出許多

Terra 的預設推理強度是 medium。Artificial Analysis 在 Intelligence Index 上測得,使用 medium 時每項任務約產生 6,000 個輸出 token,使用 max 時約產生 35,000 個(其中 25,000 個是推理 token),每項任務的費用分別為 $0.10 和 $0.40。如果你提高推理強度來解決品質問題,請先確認對帳單的影響。使用 ChatGPT 方案的 Codex 使用者在 Reddit 上回報,Terra 使用 high 推理強度時很快就會耗盡方案額度,其中一個案例是在 20 分鐘內用掉五小時額度的 40%。這些只是個人經驗,但都指向同一件事。

帳單陷阱

在 AIHubMix 上,Terra 的輸入、輸出和快取讀取費率與 OpenAI 相同。以下規則可能讓帳單高於標價所顯示的金額。

項目 每 1M token 費率 適用情況
輸入 $1 輸入最多 272K
快取輸入 $0.05 快取讀取
快取寫入,30 分鐘 $1.25 預設有效期限
快取寫入,12 小時 $2.50 ttl 設為 12h
輸出 $5 輸入最多 272K
輸入,長請求 $2 輸入超過 272K
輸出,長請求 $7.50 輸入超過 272K

12 小時的寫入費率是 OpenAI 的費率。AIHubMix 的 Terra 價格項目只列出輸入、輸出和快取讀取費率,沒有快取寫入費率、長上下文級距或 12 小時加價。因此,請將上述寫入費用及超過 272K 的費率視為 OpenAI 公布的費率,而非已確認的 AIHubMix 費用。

272K 的門檻適用於整個請求。Terra 的模型頁面列出 1,050,000-token 的上下文視窗,但輸入超過 272,000 token 後,整個請求的輸入和快取費率都會按 2 倍計費,輸出費率則按 1.5 倍計費。輸入 270,000 token、輸出 20,000 token 的請求,費用為 $0.27 + $0.10 = $0.37。輸入 300,000 token、輸出 20,000 token 的請求,費用則為 $0.60 + $0.15 = $0.75。輸入只多約 11%,費用卻約為兩倍(兩個範例都未使用快取)。

推理會以輸出計費。推理 token 會以每百萬個 $5 的輸出 token 費率計費,即使你看不到這些 token。在上述 AIHubMix 測試中,同一個提示詞在 none 下產生 72 個輸出 token,在 max 下則產生 1,153 個。請記錄 usage 物件中的 reasoning_tokens,不要只根據回答長度估算費用。

快取寫入會計費。根據 OpenAI 對 GPT-5.6 及更新版本的提示詞快取規則,有效期限為 30 分鐘的寫入費用是輸入費率的 1.25 倍,12 小時則是 2.5 倍。Terra 的讀取費用為 0.05 倍。可快取前綴至少須有 1,024 個 token。如果前綴每輪都會變動,或流量分散到兩個路由,就代表你會一再支付寫入費用。

網頁搜尋按呼叫次數收費。AIHubMix 在其 OpenAI 模型頁面上將 web_search 設為每次請求 $0.01,費用另計於 token 之外;Terra 的頁面尚未單獨列出工具費用,因此請將這筆費用納入預算。有一次測試中,單一問題觸發了兩次搜尋呼叫。

Batch 和 Flex 折扣是 OpenAI 提供的。OpenAI 透過 Batch 和 Flex 提供 50% 折扣,Fast 模式則按 2 倍計費。AIHubMix 對 GET /v1/batches 回傳 404(「The requested API endpoint does not exist.」),因此無法透過該平台使用 Batch 路由。設定 service_tier 為 flex 或 priority 時雖然回傳 200,但 AIHubMix 的 Terra 價格表只列出標準費率,因此別把折扣納入規劃。如果你傳送這兩種設定,請檢查用量記錄。

具備實際權限的 Agent

OpenAI 主打 Terra 的視覺推理與電腦操作功能,而內建的電腦工具也能透過 AIHubMix 使用:一個包含 {"type": "computer"} 和螢幕截圖的 Responses 請求,回傳了 computer_call,其第一個動作就是擷取螢幕截圖。在授予 Agent 寫入權限之前,請先閱讀 OpenAI 的GPT-6.1 Terra 系統卡中的 Agent 測試結果。這些是 OpenAI 自行進行的評估,且大多是在低風險模擬情境中完成:

評估項目 Terra GPT-6.1 Sol
繞過明確說明的限制 29.6% 較低
收到同儕 Agent 訊息後採取未授權行動 13.75% 1.25%
展現出察覺自己正在接受評估的跡象 9.88% 4.35%

Terra 繞過限制的比例是在 max 推理強度下測得;系統卡顯示 GPT-6.1 Sol 的排名低於 Terra。同儕 Agent 的數據為 80 個樣本中有 11 個。

在間接提示詞注入方面,Terra 的防禦率為 98.8%,高於 GPT-5.6 Terra 的 96.2%。這表現不錯,但仍未達到 100%。遷移時有兩項結果尤其重要:與 Sol 相比,Terra 更可能遵循來自其他 Agent 的指示,而且有時會想辦法繞過指示中明確說明的限制。因此:

  • 工具權限應預設拒絕,只開放任務所需的權限。
  • 寫入、購買、傳輸資料,以及任何難以復原的操作,都必須經過核准。
  • 請將來自其他 Agent 的訊息、畫面內容和工具結果視為不受信任的輸入,不能據此授予權限。
  • 請在隔離的瀏覽器或 VM 中執行電腦操作,設定允許清單、步數與費用上限,並確認實際結果,而不是只相信模型的最終訊息。這些是 OpenAI 對電腦操作的建議。

程式開發工具:Codex 和 Claude Code

Codex 透過 Responses API 連線;Terra 的推理強度設定可透過 AIHubMix 在此路由生效。AIHubMix 的Codex config.toml 設定指南說明一般設定方式。Terra 的 ~/.codex/config.toml 可設定如下:

model = "gpt-6.1-terra"
model_provider = "aihubmix"
model_context_window = 1050000
model_reasoning_effort = "medium"

[model_providers.aihubmix]
name = "AIHubMix"
base_url = "https://aihubmix.com/v1"
env_key = "AIHUBMIX_API_KEY"
wire_api = "responses"
  • 將 wire_api 保持為 responses。這是能套用推理強度設定的路由,也是 OpenAI 文件中說明支援工具的路由。
  • 指定上下文視窗。將 model_context_window 設為 Terra 的 1,050,000 tokens。
  • 從 medium 開始。這是 Terra 的預設值。考量到上述額度使用者的回報,遇到困難任務時再提高推理強度,而不是全域提高。
  • 編輯後重新啟動。變更 config.toml 後,請重新啟動 Codex。

Claude Code

Claude Code 可透過 AIHubMix 的 Messages 路由搭配 Terra 使用。請參照Claude Code settings.json 設定指南進行設定,並將 gpt-6.1-terra 設為模型。AIHubMix 的測試中,工具使用和圖片都能正常運作。不過,Claude Code 的思考與推理強度設定不會影響 Terra 在該路由上的推理結果,也不會回傳思考區塊。你無法透過 Claude Code 調整 Terra 的思考強度,因此 Codex 更適合搭配 Terra 使用。

10-15 分鐘的冒煙測試

請在小型程式碼儲存庫中,針對每個工具各執行一次測試,並確認其中有測試套件:

  1. 在 gpt-6.1-terra 上啟動新的工作階段。不要接續使用其他模型執行過的工作階段。
  2. 提出要求:「為此儲存庫中的一個函式新增單元測試、執行測試,並修正任何失敗項目。」
  3. 成功的標準如下:模型會讀取檔案並執行測試,表示工具呼叫正常運作。看到結果後會繼續處理,表示工具輸出已傳回給模型。最後測試全部通過,而且整個工作階段中完全沒有 400 錯誤。
  4. 請在 AIHubMix 用量記錄中確認模型為 gpt-6.1-terra,並確認後續請求的穩定前綴有顯示快取輸入 token。如果一直沒有,表示前綴中有內容每一輪都在變動。
  5. 在 Codex 中以 low 和 medium 重複執行任務,並比較每輪的輸出 token 數量。對需要一些思考的任務而言,medium 應會使用更多 token。如果各級推理強度下的數字看起來都一樣,請確認請求是否透過 Responses 傳送。
  6. 記錄每輪所需時間和輸出 token 數量,做為選擇推理強度的基準。

遷移檢查清單

  • 將模型設為 gpt-6.1-terra。
  • 將工具呼叫及任何依賴推理強度的功能移至 Responses API。
  • 從所有呼叫路徑移除 temperature、top_p、top_logprobs 和 logprobs,或將推理強度設為 none。
  • 將 minimal 推理強度改為 low。
  • 讓每個工作負載固定使用單一路由,避免快取被寫入兩次。
  • 將 prompt_cache_retention 替換為 prompt_cache_options.ttl。
  • 使用 configuration_update 在對話中途變更推理強度。
  • 盡可能將請求的輸入 token 數維持在 272K 以下。
  • 記錄推理 token、快取 token 和快取寫入 token。
  • 請將網頁搜尋費用按每次呼叫 $0.01 納入預算,並且不要預期能透過 AIHubMix 使用 Batch。
  • 稽核 AGENTS.md 和技能檔案,並明確說明 Agent 獲授權執行哪些操作。
  • 寫入操作須經過核准,並將同儕 Agent 的訊息視為不受信任內容。
  • 在每個程式開發工具中執行冒煙測試。

常見問題

為什麼 GPT-6.1 Terra 會回傳「Unsupported parameter: 'temperature'」?
因為推理強度不是 none。OpenAI 對 GPT-6 系列的規則是,只要推理強度不是 none,就必須移除 temperature、top_p 和 top_logprobs,而 Terra 的預設值是 medium。請移除這些參數;如果需要控制取樣,則將推理強度設為 none。

為什麼相同的程式碼在 Chat Completions 上可以運作?
在 2026 年 10 月 27 日的測試中,AIHubMix 的 Chat Completions 路由接受 temperature 0.2 和 top_p 0.5,並回傳 200。這表示在 Chat Completions 上進行的測試,無法發現 Responses API 會回傳的 400 錯誤。

透過 AIHubMix 使用 Chat Completions 時,reasoning_effort 會生效嗎?
在 2026 年 10 月 27 日,AIHubMix 以幾個小型提示詞進行的測試中,這項設定沒有造成可測量的差異:none 和 max 產生的推理 token 數量相近。這不代表普遍情況,但如果推理強度對你很重要,請在 Responses API 上設定,因為它確實能正常運作。

我必須將工具呼叫移至 Responses API 嗎?
是。OpenAI 文件指出,Terra 的工具呼叫必須使用 Responses。透過 AIHubMix 傳送含有函式工具的 Chat Completions 請求,確實曾回傳工具呼叫,但這是未記載的行為,不應依賴。

minimal 推理強度要改用什麼?
Terra 支援 none、low、medium、high、xhigh 和 max。OpenAI 建議從 low 開始,並在具代表性的任務上比較結果。

AIHubMix 上的 Terra 能使用 Batch 嗎?
不能。AIHubMix 上呼叫 GET /v1/batches 會回傳 404,因此沒有可用的 Batch 路由;50% 的 Batch 和 Flex 折扣是 OpenAI 提供的。AIHubMix 的 Terra 價格表列出標準的輸入、輸出和快取讀取費率,與 OpenAI 的標價相同。

搭配 Terra 使用 Codex 還是 Claude Code 比較好?
Codex。它使用 Responses API,而 Terra 的推理強度設定可透過 AIHubMix 在此生效。Claude Code 可透過 Messages 路由運作,但在 AIHubMix 的測試中,其思考和推理強度設定對 Terra 沒有影響。

繼續閱讀:GPT-6.1 Terra 系列

資料來源

一個閘道接入多家 AI 服務商, 為正式環境而生。

前往推理時代官網