Сравнили три оболочки для пяти моделей

Исследователи Лю и Хан сравнили Claude Code, OpenCode и mini-SWE-agent — программы, которые задают ИИ-агенту инструменты и управляют его работой. В опубликованной на arXiv статье описаны тесты пяти моделей на 45 сложных задачах SWE-bench Verified и на дополнительной выборке из 447 задач. Несколько вариантов запускали повторно, чтобы оценить разброс результатов.

mini-SWE-agent предоставляет модели только Bash и не управляет контекстом. Claude Code и OpenCode предлагают специализированные инструменты для работы с файлами и поиска, длинные системные инструкции и автоматическое сжатие истории. Все основные тесты проводились без доступа к интернету: в ранних пробах 71% попыток моделей DeepSeek и Qwen получали готовое исправление с GitHub, а не решали задачу самостоятельно. Авторы отбросили эти результаты и отключили сеть.

Разница между оболочками сопоставима с шумом повторного запуска

На выборке из 447 задач Claude Code и mini-SWE-agent — наиболее и наименее оснащённые варианты — различались менее чем на два процентных пункта для обеих проверенных моделей. Авторы считают результаты этих оболочек статистически эквивалентными в пределах пяти пунктов. На 45 сложных задачах разница составляла от двух до пяти решённых задач на модель, тогда как повторный запуск того же варианта менял число решённых задач максимум на три.

Медианная доля задач, на которых менялся исход, составила 13% как при повторном запуске с той же оболочкой, так и при её замене. При смене модели показатель достигал 22%. По оценке авторов, на 45 задачах даже разница в 13 пунктов проявляется лишь в половине случаев; на выборке из 447 задач надёжно обнаруживаются различия примерно от пяти пунктов. Поэтому рекламируемое преимущество Zhipu AI в 2,4 пункта над Claude Code ниже порогов, которые тест способен уверенно выявить.

По расходу токенов оболочки различались сильнее, чем по успешности. Системные инструкции и описания инструментов, которые отправляются модели на каждом шаге, занимали около 16 600 токенов у Claude Code, примерно 7 000 у OpenCode и менее 1 000 у mini-SWE-agent. При этом после первого вызова контекст рос примерно одинаково.

OpenCode отставал, а стоимость зависела от модели и числа шагов

Единственное устойчивое различие в результатах авторы обнаружили у OpenCode: на большой выборке он отставал от двух других оболочек максимум на девять пунктов. Примерно половину разрыва исследователи связывают с ограничением на длину ответа. Если модель превышала лимит в середине шага рассуждения, Claude Code просил продолжить, а OpenCode завершал шаг, после чего попытка обычно проваливалась. У локально запущенных моделей у OpenCode также было более жёсткое ограничение времени — авторы отмечают его как неконтролируемый фактор.

Для одинаковых модели, задач и ценника стоимость одной задачи могла различаться до трёх раз. В тесте с GLM-5.3-Flash одна попытка в Claude Code стоила 1,81 юаня, а в OpenCode — 0,56 юаня. Однако соотношение зависело от модели: с GLM-5.3-Flash Claude Code обходился почти вдвое дороже mini-SWE-agent, тогда как с DeepSeek-V4-Flash более длинная работа mini-SWE-agent уравнивала итоговую стоимость. Более низкая цена кешированных токенов уменьшала разрыв, но не меняла порядок.

Выводы ограничены набором тестов

Авторы также проверили модели на Terminal-Bench 2.1 на небольшой выборке и увидели ту же общую картину. При этом Claude Opus 5 тестировали только в Claude Code, поэтому сравнение этой модели между оболочками провести не удалось. В отдельных проверках отключение режима рассуждений меняло результаты: например, mini-SWE-agent с Qwen3.6 терял 11 пунктов, а HY4-Preview — 11 пунктов в Claude Code. Исследователи подчёркивают, что проверенных сочетаний моделей и оболочек недостаточно, чтобы объяснить причины.

В целом исследование не показывает, что любая оболочка бесполезна: оно указывает, что в проведённых тестах более сложная настройка обычно не давала измеримого прироста успешности, хотя могла повышать расходы. Авторы рекомендуют публиковать повторный запуск тех же условий вместе со сравнением оболочек — это помогает отличить устойчивый эффект от случайного разброса.