Одна й та сама модель може виграти або програти через обв’язку
Команда бере модель із вершини рейтингу, підключає її до найближчої обв’язки для агентів і випускає продукт.

Команда бере модель із вершини рейтингу, підключає її до найближчої обв’язки для агентів і випускає продукт. Препринт, що з’явився на arXiv на початку жовтня, питає, що ховає такий шлях. На тих самих 63 термінальних завданнях одна модель випереджає іншу майже на 8 пунктів в одній обв’язці й поступається їй на 30 пунктів в іншій. Рейтинг ніколи не був властивістю самих лише моделей.
Коротко
Дослідження за даними авторів: "Finding the Right Fit" (arXiv 2610.00917) оцінює 66 конфігурацій моделі й обв’язки на трьох бенчмарках для агентів. Чотири настроюванні обв’язки (OpenHands, DeepSeek Harness, PI, openJiuwen) поєднано з п’ятьма моделями, плюс нативні пари Codex і Claude Code. Рейтинги моделей змінюються між обв’язками, найкраща обв’язка для моделі залежить від бенчмарка, а обв’язка самого вендора не завжди найкраща для його моделі. Автори публікують адаптери, код і 6 204 оцінені траєкторії. ↗

Що запускали дослідники
Сітка схрещує чотири обв’язки з п’ятьма моделями (Claude Opus 5, GPT-6 Astra, GLM-5.3, Kimi K3, DeepSeek V4 Pro) на трьох бенчмарках: TUA-Bench зі 120 завданнями, ALE-CLI з 99 і підмножина Terminal-Bench 4 без H100 із 63 завдань. Codex із GPT і Claude Code з Claude додають шість нативних еталонів, разом 66 конфігурацій. Кожна обв’язка просить високий рівень зусиль міркування й зберігає власні налаштування контексту, повторів і кількості ходів. Моделі викликаються через OpenRouter і закріплені за первинним провайдером. Вартість - це ціна API за завдання за цінами OpenRouter. Навичок, серверів MCP і пам’яті не додавали. ↗
Де таблиця лідерів перевертається
На Terminal-Bench 4 Claude випереджає GPT на 7,94 пункта в OpenHands. У DeepSeek Harness GPT попереду на 17,46, в openJiuwen на 12,70, у PI на 30,16. Claude падає з 57,14% в OpenHands до 30,16% у PI, а GPT зростає з 49,21% до 60,32%. Kimi - стійкий випадок: openJiuwen дає йому найкращий результат на всіх трьох бенчмарках, з відривом від 5,61 до 11,11 пункта. Нативні пари неоднозначні. Claude Code найкращий для Claude на TUA-Bench і ALE-CLI, але поступається OpenHands на Terminal-Bench, а Codex жодного разу не дає GPT найвищого результату. На Terminal-Bench 4 GPT у PI виграє в GPT у DeepSeek Harness за вартості завдання менш як чверть. ↗
Чому одна й та сама модель поводиться по-різному
Автори порівняли зіставлені траєкторії одного завдання й однієї моделі в різних обв’язках. Моделі починають майже всі виправлення самі, тож багато залежить від того, чи повертає обв’язка збій у вигляді, придатному для моделі. Оболонка без тайм-ауту перетворює завислу команду на тишу. Детектор застрягання може завершити запуск до виправлення хибного виклику інструмента. GPT ставить явні тайм-аути в більшості своїх викликів оболонки й найкраще працює з PI, легким каркасом. Kimi частіше робить хибні виклики й краще там, де обв’язка їх ловить. Багато решти збоїв стається наприкінці, коли агент сприймає власну перевірку як доказ завершення.
Що я не зміг перевірити
Мій аналіз: корисний висновок у тому, щоб оцінювати пару й завдання разом і вважати зміну обв’язки рівною зміні моделі. Обмеження названо в самій статті. Підмножина Terminal-Bench і локальні добірки завдань не відтворюють цифр офіційних рейтингів, "високий рівень зусиль міркування" може означати різний бюджет мислення в різних обв’язках, а кожне завдання враховано за останнім запуском. Це препринт з однією кампанією запусків. Я читав анотацію й HTML-текст. Код я не запускав і опублікованих траєкторій не відкривав, тому підтвердити цифри понад сказане в статті не можу.
Невелика перевірка, яку я запустив
Скрипт нижче - невелика перевірка, яку я написав і запустив локально. Він бере з таблиці статті нагороди Claude і GPT на Terminal-Bench 4 і перераховує розрив за обв’язками. За чотиризначними значеннями таблиці він показує відрив 7,93 пункта в OpenHands, тоді як стаття повідомляє 7,94 за неокругленими оцінками. Це різниця округлення, а не розбіжність. Перевірка підтверджує зміну знака й розмах 38,09 пункта між найкращою та найгіршою обв’язкою для Claude. Це не повторний запуск бенчмарка.
Перевірка в коді
# Recompute the Claude-minus-GPT gap on Terminal-Bench 4 from the reported table.
# Scores are mean rewards copied from Table 1 of arXiv 2610.00917 (63 tasks).
TB4 = {
"OpenHands": {"Claude Opus 5": 0.5714, "GPT-6 Astra": 0.4921},
"DSH": {"Claude Opus 5": 0.3492, "GPT-6 Astra": 0.5238},
"PI": {"Claude Opus 5": 0.3016, "GPT-6 Astra": 0.6032},
"openJiuwen": {"Claude Opus 5": 0.4127, "GPT-6 Astra": 0.5397},
}
def gaps(table):
for harness, row in table.items():
diff = (row["Claude Opus 5"] - row["GPT-6 Astra"]) * 100
leader = "Claude" if diff > 0 else "GPT"
yield harness, round(diff, 2), leader
results = list(gaps(TB4))
for harness, diff, leader in results:
print(f"{harness:<11} Claude minus GPT = {diff:+.2f} points, leader: {leader}")
leaders = {leader for _, _, leader in results}
print("ranking changes with the harness:", len(leaders) > 1)
spread = max(d for _, d, _ in results) - min(d for _, d, _ in results)
print(f"spread of the gap across harnesses: {spread:.2f} points")