Преминаване към GPT-6.1 Terra: отстранете грешките 400 за temperature, прехвърлете инструментите към Responses и настройте Codex

AIHubMix13 мин четене
Преминаване към GPT-6.1 Terra: отстранете грешките 400 за temperature, прехвърлете инструментите към Responses и настройте Codex

Преминаването към GPT-6.1 Terra изисква промяна само на един ред: задайте модела на gpt-6.1-terra. Какво ще се случи след това зависи от API маршрута, по който минава заявката. В Responses API Terra спазва правилата на OpenAI: контролът на усилието за разсъждение работи, а temperature или top_p връщат HTTP 400. В маршрута Chat Completions на AIHubMix същата стойност на temperature се приема без възражения, а при проверките на AIHubMix от 27 октомври 2026 г. reasoning_effort не оказа измеримо влияние върху кратките подкани.

Накратко, за повечето екипи: прехвърлете трафика на Terra към Responses API, премахнете параметрите за семплиране и използвайте един маршрут за всяко работно натоварване. По-долу: грешките, които ще видите; проблемите, които не пораждат грешка; правилата за таксуване, които често подвеждат; разрешенията на агентите; както и настройката на Codex и Claude Code. Terra е на страницата на модела GPT-6.1 Terra в AIHubMix, по официалните цени на OpenAI: $1 за милион входни токени, $0.05 за кеширани токени, $1.25 за запис в кеш с 30-минутен срок и $5 за изходни токени. На страницата на AIHubMix са посочени същите цени за вход, изход и четене от кеша, но няма цена за запис в кеша.

Правилата са изложени в ръководството на OpenAI за миграция към GPT-6 и на страницата на модела Terra. Текстовете на грешките и поведението на шлюза са установени при проверките на AIHubMix от 27 октомври 2026 г., в които са използвани кратки подкани срещу основния идентификатор gpt-6.1-terra. В ръководството за моделите на AIHubMix се посочва, че повечето грешки 400 се препращат от доставчика нагоре по веригата, а тези грешки включват в съобщението идентификатор за проследяване tid.

Кой маршрут използвате?

При тези проверки AIHubMix предоставяше Terra по три протокола. Те не се държат по един и същи начин:

Маршрут Контрол на усилието temperature Извикване на инструменти
Responses Работи 400, освен ако усилието не е none Документирано от OpenAI
Chat Completions Няма видим ефект Приема се Не е документирано
Anthropic Messages Няма видим ефект Не е тествано Върнат е tool_use

„Няма видим ефект“ и „Приема се“ описват резултатите от измерванията на AIHubMix на 27 октомври при кратки подкани. При Chat Completions бяха върнати извиквания на инструменти, но OpenAI документира извикването на инструменти за Terra само в Responses.

Ако започвате от нулата, използвайте Responses. Ако дадена интеграция с Chat Completions работи сега, прочетете за тихите грешки, преди да ѝ се доверите.

Очевидните грешки

Те връщат HTTP 400 и спират заявката.

„Неподдържан параметър: „temperature“ не се поддържа от този модел.“

Какво ще видите. Заявка към Responses API със зададено temperature и усилие по подразбиране (medium) връща:

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

При изпращане на top_p се връща същата грешка, но вместо top_p се посочва temperature. Усилието по подразбиране е medium, така че грешката ще възникне и при заявка, в която усилието изобщо не е зададено.

Причина. В ръководството на OpenAI за миграция се посочва, че когато усилието за разсъждение не е none, трябва да премахнете temperature, top_p и top_logprobs. В Responses премахнете и message.output_text.logprobs от include.

Как да възпроизведете грешката. Тази curl заявка през Responses API на AIHubMix изпраща същото тяло на заявката, което AIHubMix изпрати на 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“ не се поддържа от този модел.“

Какво ще видите. Извикване на Chat Completions с logprobs: true и reasoning_effort: "high" върна:

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

Причина. Това е същото правило на OpenAI. За Chat Completions ръководството добавя logprobs към списъка с параметри, които трябва да се премахнат, когато усилието не е none.

Решение. Премахнете logprobs и top_logprobs. Ако оценката за увереност във вашия процес зависи от тях, планирайте заместител, преди да преминете към новия модел. AIHubMix не е тествал logprobs с усилие none в Chat Completions.

„Неподдържана стойност: „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, така че в логовете ви нищо не ги маркира. Разбирате за тях по-късно, когато отговорите не съответстват на настройките ви, кешът не се уцелва или агентът спира, за да задава въпроси.

Chat Completions приема temperature и сякаш игнорира усилието

В маршрута Chat Completions на AIHubMix temperature: 0.2 върна 200 без зададено усилие, както и с усилие none и с усилие high. top_p: 0.5 също върна 200. Това има един страничен ефект: ако тестовият ви набор използва Chat Completions, той няма да засече грешката 400, с която същият код ще се сблъска, след като го прехвърлите към Responses.

По-големият проблем е усилието. При проверките на AIHubMix от 27 октомври reasoning_effort в Chat Completions не оказа измеримо влияние:

Подкана Маршрут Усилие none Усилие max
Списък със суми на прости числа Chat Completions 181 и 258 293 и 234
Списък със суми на прости числа Responses 0 1,078
Задача с бухалка и топка Chat Completions 24 25

Стойностите показват броя токени за разсъждение на заявка. За подканата със сумите на прости числа Chat Completions беше изпълнен по два пъти за всяка настройка.

При кратката подкана със задачата за бухалката и топката стойностите за none, low, high, max и изцяло незададено усилие бяха от 24 до 27 токена за разсъждение. Изпращането на reasoning: {effort: "none"} като обект вместо това даде 327 токена за подканата със сумите на прости числа. В Responses същата подкана със сумите на прости числа произведе 0 токена за разсъждение и 72 изходни токена при none, както и 1,078 токена за разсъждение и 1,153 изходни токена при max.

Според тълкуването на 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 предоставя Terra и чрез Anthropic Messages API — протокола, който използва Claude Code. Текстът, tool_use и изображенията в base64 върнаха 200. Контролът върху разсъждението не се пренесе: при активирано thinking и бюджет от 4,000 токена бяха получени 24 токена за разсъждение, output_config.effort: "high" даде 26, а заявката без нито една от тези настройки даде 25. В отговора няма блокове thinking — само текстови блокове или блокове tool_use.

Responses и Chat Completions използват отделни кешове

AIHubMix изпрати стабилен префикс за разработчика от около 9,600 токена през Responses. При първото извикване 9,623 токена бяха записани в кеша, а при второто и третото бяха прочетени 9,623 кеширани токена. Непосредствено след това извикване към Chat Completions със същия префикс не получи попадение в кеша и записа отново всичките 9,623 токена. Втори опит с друг префикс показа същия модел: извикването през Responses записа 9,020 токена, извикването през Chat Completions със същия префикс записа 9,020 токена без попадение в кеша, а повторното извикване през Chat Completions прочете 9,007 токена от записа, създаден от маршрута Chat.

Така едно работно натоварване, което се редува между маршрутите, плаща два пъти за всеки запис в кеша. Използвайте един маршрут за всяко работно натоварване.

Настройки на кеша от по-стари модели

Ако преминавате от GPT-5.5 или по-стара версия, в ръководството на OpenAI се посочва, че трябва да замените prompt_cache_retention с prompt_cache_options.ttl. Стойността по подразбиране е "30m". В Responses е наличен срок от "12h", който AIHubMix прие: обектът usage отчете записите в cache_write_tokens_details.ttl_12h_tokens. При изричен режим без точка на прекъсване нищо не беше записано, в съответствие с документацията на OpenAI.

Промяна на усилието по средата на разговора

Промяната на reasoning.effort на ниво заявка променя префикса на подканата и ви струва попадението в кеша. OpenAI добави входен елемент configuration_update за тази цел. Той повишава или понижава усилието от този момент нататък, като запазва първоначалния префикс непроменен. Заявка с такъв елемент върна 200 през AIHubMix. Ръководството на OpenAI го препоръчва за стандартни заявки с един агент.

Моделът пита, преди да действа

В указанията на OpenAI за GPT-6 се посочва, че семейството модели е по-склонно да спре и да зададе въпрос на потребителя, когато допълнителна информация може да промени резултата, и реагира по-чувствително на инструкциите в умения и файлове като AGENTS.md. Тези указания са написани за GPT-6 Astra, затова е добре да ги проверите спрямо Terra, вместо да ги приемате за даденост. Ако агент, който работеше без надзор на GPT-5.6 Terra, сега спира и иска одобрение, предложеното в ръководството решение е изрично да се посочи в подкана какво вече разрешава потребителската заявка. Препоръчва се също да прегледате всички умения и файлове с инструкции, до които моделът има достъп.

Усилието по подразбиране е medium, а max струва значително повече

У Terra усилието по подразбиране е medium. Artificial Analysis измерва около 6,000 изходни токена за задача при ниво medium и около 35,000 при max (25,000 от тях са за разсъждение) в своя Intelligence Index, на цена съответно $0.10 и $0.40 за задача. Ако увеличите усилието, за да отстраните проблем с качеството, първо проверете как това ще се отрази на сметката. Потребители на Codex с планове ChatGPT съобщават в Reddit, че при високо усилие Terra изразходва бързо лимитите на плана — в един случай са били използвани 40% от лимита за пет часа само за 20 минути. Това са отделни случаи, но сочат в една и съща посока.

Капани при таксуването

Цените на Terra за входни, изходни и кеширани токени при четене са еднакви в AIHubMix и OpenAI. Ето кои правила могат да направят сметката по-висока от очакваното според обявената цена.

Елемент Цена за 1M токена Прилага се, когато
Входни токени $1 До 272K входни токена
Кеширани входни токени $0.05 Четене от кеша
Запис в кеша, 30 min $1.25 Срок по подразбиране
Запис в кеша, 12 h $2.50 ttl е зададено на 12h
Изходни токени $5 До 272K входни токена
Входни токени, дълга заявка $2 Над 272K входни токена
Изходни токени, дълга заявка $7.50 Над 272K входни токена

Цената за запис за 12 часа е на OpenAI. Ценовият запис на AIHubMix за Terra включва само цени за входни, изходни и кеширани токени при четене: няма цена за запис в кеша, тарифа за дълъг контекст или надценка за 12 часа. Затова приемайте горните цени за запис и за над 272K токена като публикувани от OpenAI, а не като потвърдени такси на AIHubMix.

Прагът от 272K важи за цялата заявка. Страницата на модела Terra посочва контекстен прозорец от 1,050,000 токена, но щом входът надхвърли 272,000 токена, цялата заявка се таксува по 2x цената за входни токени и четене от кеша и по 1.5x цената за изходни токени. Заявка с 270,000 входни и 20,000 изходни токена струва $0.27 + $0.10 = $0.37. Заявка с 300,000 входни и 20,000 изходни токена струва $0.60 + $0.15 = $0.75. Около 11% повече входни токена струват приблизително двойно повече (и в двата примера няма кеширане).

Токените за разсъждение се таксуват като изходни. Токените за разсъждение се броят като изходни токени и струват $5 за милион, въпреки че никога не ги виждате. При проверката на AIHubMix по-горе една и съща подкана генерира 72 изходни токена при none и 1,153 при max. Записвайте reasoning_tokens от обекта за използване, вместо да оценявате разходите според дължината на отговора.

Записите в кеша се таксуват. Според правилата за кеширане на подкани на OpenAI за GPT-5.6 и по-нови модели записът струва 1.25x цената за входни токени при срок от 30 минути и 2.5x при 12 часа. Четенето в Terra струва 0.05x. Минималният префикс, който може да се кешира, е 1,024 токена. Ако префиксът се променя на всеки ход или трафикът се разпределя между два маршрута, ще плащате цената за запис отново и отново.

Уеб търсенето се таксува за всяко извикване. В страниците си за модели OpenAI AIHubMix таксува web_search по $0.01 на заявка, в допълнение към токените; страницата на Terra все още не посочва отделно таксата за инструмента, затова предвидете я в бюджета. При една проверка един въпрос задейства две търсения.

Отстъпките за Batch и Flex са на OpenAI. OpenAI предлага 50% отстъпка чрез Batch и Flex, а режимът Fast е 2x. AIHubMix върна 404 за GET /v1/batches („The requested API endpoint does not exist.“), така че там няма маршрут за Batch. Заявка с service_tier със стойност flex или priority върна 200, но в ценовия списък на AIHubMix за Terra са показани само стандартните тарифи, затова не разчитайте на отстъпка. Проверете дневника си за използване, ако изпращате някоя от тях.

Агенти с реални разрешения

OpenAI представя Terra като модел за визуално разсъждение и работа с компютър, а вграденият компютърен инструмент работи през AIHubMix: заявка към Responses с {"type": "computer"} и екранна снимка върна computer_call, чието първо действие беше да направи екранна снимка. Преди да дадете на агент достъп с права за запис, прочетете резултатите от оценките на агентите в системната карта на GPT-6.1 Terra на OpenAI. Това са собствени оценки на OpenAI, предимно в симулации с нисък залог:

Оценка Terra GPT-6.1 Sol
Заобикаляне на изрично посочено ограничение 29.6% По-ниско
Неоторизирано действие след съобщения от агент от екипа 13.75% 1.25%
Признаци за разпознаване на оценяването 9.88% 4.35%

Честотата на заобикаляне на ограниченията от Terra е измерена при максимално усилие; в системната карта GPT-6.1 Sol е оценен по-ниско от него. Данните за агенти от екипа са от 11 от 80 извадки.

При индиректно инжектиране на подкани защитата на Terra е била 98.8%, спрямо 96.2% при GPT-5.6 Terra. Това е добър резултат, но все пак не е 100%. За миграцията са най-важни два резултата: Terra е по-склонен от Sol да изпълнява инструкции, получени от друг агент, и понякога намира начин да заобиколи ограничение, посочено в инструкциите му. Затова:

  • Задавайте на инструментите разрешения „забранено по подразбиране“ и предоставяйте само необходимото за задачата.
  • Изисквайте одобрение за запис, покупки, предаване на данни и всичко, което е трудно да се отмени.
  • Третирайте съобщенията от други агенти, както и съдържанието на екрана и резултатите от инструментите, като недоверен вход, който не може да предоставя разрешения.
  • Изпълнявайте работа с компютър в изолиран браузър или виртуална машина със списък с разрешени елементи, задайте ограничения за броя стъпки и разходите и проверявайте действителния резултат, а не финалното съобщение на модела. Това са препоръките на 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 на 1,050,000 токена — размера на контекстния прозорец на Terra.
  • Започнете от medium. Това е стойността по подразбиране за Terra. Предвид горните съобщения за квотите, увеличавайте усилието за трудна задача, а не глобално.
  • Рестартирайте след промените. Рестартирайте Codex, след като промените config.toml.

Claude Code

Claude Code работи с Terra чрез маршрута Messages на AIHubMix. Настройте го с ръководството за settings.json на Claude Code, като използвате gpt-6.1-terra за модел. При проверките на AIHubMix работиха използването на инструменти и изображения. Но настройките за мислене и усилие на Claude Code не повлияха на разсъжденията на Terra, а блокове за мислене не се връщат. Не можете да настройвате колко задълбочено да мисли Terra през Claude Code, затова Codex е по-подходящият избор за Terra.

Бърз тест за 10-15 минути

Изпълнете го веднъж за всеки инструмент, в малко хранилище с тестов набор:

  1. Започнете нова сесия с gpt-6.1-terra. Не продължавайте сесия, започната с друг модел.
  2. Попитайте: „Добави модулен тест за една функция в това хранилище, изпълни тестовете и поправи всичко, което не минава.“
  3. Ето как изглежда успешният резултат: моделът чете файлове и изпълнява тестовете, което означава, че извикванията на инструменти работят. Продължава след като види резултатите, което означава, че изходът от инструментите му се предава обратно. Завършва с успешно преминали тестове и без грешки 400 в цялата сесия.
  4. В дневника за използване на AIHubMix проверете дали моделът е gpt-6.1-terra и дали при по-късните заявки се показват кеширани входни токени за стабилния префикс. Ако никога не се показват, значи нещо в префикса се променя на всеки ход.
  5. В Codex повторете задачата с low и medium и сравнете броя изходни токени за всеки ход. При задача, която изисква известно обмисляне, medium би трябвало да използва повече. Ако числата са еднакви при всяко ниво, проверете дали заявките минават през Responses.
  6. Отбележете времето за ход и броя изходни токени. Това е базовата линия, с която да изберете ниво на усилие.

Контролен списък за миграция

  • Задайте модела на gpt-6.1-terra.
  • Прехвърлете извикванията на инструменти и всичко, което зависи от усилието, към Responses API.
  • Премахнете temperature, top_p, top_logprobs и logprobs от всички пътища за извикване или задайте effort на none.
  • Заменете minimal effort с low.
  • Използвайте един и същ маршрут за всяко натоварване, за да не се записва кешът му два пъти.
  • Заменете prompt_cache_retention с prompt_cache_options.ttl.
  • Използвайте configuration_update, за да променяте усилието по време на разговор.
  • По възможност дръжте заявките под 272K входни токена.
  • Записвайте броя токени за разсъждение, кеширани токени и токени за запис в кеша.
  • Предвидете $0.01 за всяко извикване на уеб търсене и не разчитайте, че Batch е наличен през AIHubMix.
  • Проверете AGENTS.md и файловете за умения и посочете какво е упълномощен да прави агентът.
  • Изисквайте одобрение за запис и третирайте съобщенията от други агенти като недоверени.
  • Изпълнете бързия тест във всеки инструмент за програмиране.

Често задавани въпроси

Защо GPT-6.1 Terra връща „Unsupported parameter: 'temperature'“?
Защото усилието за разсъждение не е none. Правилото на OpenAI за семейството GPT-6 гласи, че temperature, top_p и top_logprobs трябва да бъдат премахнати, когато усилието е различно от none, а по подразбиране Terra използва medium. Премахнете ги или задайте усилието на none, ако ви е нужен контрол върху семплирането.

Защо същият код работи с Chat Completions?
При проверките на 27 октомври 2026 г. маршрутът Chat Completions на AIHubMix прие temperature 0.2 и top_p 0.5 и върна 200. Това означава, че тестовете с Chat Completions няма да открият грешката 400, която връща Responses API.

Работи ли reasoning_effort с Chat Completions през AIHubMix?
При проверките на AIHubMix от 27 октомври 2026 г. настройката не доведе до измерима разлика при няколко малки подкани: none и max дадоха сходен брой токени за разсъждение. Това не е общовалидно правило, но ако усилието е важно за вас, задавайте го в Responses API, където работи безспорно.

Трябва ли да прехвърля извикванията на инструменти към Responses API?
Да. Според документацията на OpenAI извикването на инструменти в Terra изисква Responses. Заявка към Chat Completions с функционален инструмент върна извиквания на инструменти през AIHubMix, но това поведение не е документирано и не бива да разчитате на него.

Какво заменя minimal effort?
Terra поддържа none, low, medium, high, xhigh и max. OpenAI препоръчва да започнете с low и да сравните резултатите при представителни задачи.

Наличен ли е Batch за Terra в AIHubMix?
Не. Извикване на GET /v1/batches връща 404 в AIHubMix, така че няма маршрут за Batch; отстъпките от 50% за Batch и Flex са на OpenAI. В ценовия списък на AIHubMix за Terra са посочени стандартните цени за входни, изходни и кеширани токени при четене, които съвпадат с обявените цени на OpenAI.

Да използвам Codex или Claude Code с Terra?
Codex. Той използва Responses API, където настройката за усилие на Terra работи през AIHubMix. Claude Code работи през маршрута Messages, но при проверките на AIHubMix настройките му за мислене и усилие не повлияха на Terra.

Прочетете още: поредицата за GPT-6.1 Terra

Източници

Един шлюз към множество AI доставчици. Създаден за продукционна среда.

Посетете AIHubMix