Исследование: обвязки Claude Code и OpenCode не повышают качество кодинг-агентов, но удорожают их

Исследование: обвязки Claude Code и OpenCode не повышают качество кодинг-агентов, но удорожают их

Кодинг-агент состоит из языковой модели и обвязки (harness): системного промпта, инструментов и управления контекстом, с помощью которых модель работает в репозитории. Новые обвязки выходят постоянно, а их создатели хвалятся приростом баллов. Двое исследователей из Шаньдунского университета, Лю и Хань, проверили, насколько обвязка вообще важна при неизменной модели. Название их статьи уже содержит ответ: «Что покупает обвязка? В основном токены».

По словам авторов, прежние работы сообщали о разрыве между обвязками более 20 пунктов, но почти всегда это были результаты одного прогона. Между тем простые повторные прогоны одной и той же конфигурации на SWE-bench Verified расходятся до шести пунктов. Zhipu AI, например, рекламирует собственную обвязку с преимуществом в 2,4 пункта над Claude Code, а это целиком укладывается в шум. К тому же обвязки часто по-разному подключают к бенчмарку.

Авторы прогнали пять моделей через три обвязки в их штатных версиях: Claude Code, OpenCode и mini-SWE-agent. Последняя даёт модели только инструмент Bash и не управляет контекстом, а Claude Code и OpenCode предлагают специальные инструменты для файлов и поиска, длинные системные промпты и автоматическое сжатие истории. Модели: Qwen3.6, Qwen3.8, Deepseek-V4-Flash, GLM-5.3-Flash и HY4-Preview; Claude Opus 5 запускали для сравнения только в Claude Code. Использовали 45 самых трудных задач SWE-bench Verified и пул ещё из 447 задач; ряд конфигураций прогнали дважды, чтобы измерить шум. Все запуски шли офлайн: в ранних тестах с доступом в сеть 71% попыток моделей Deepseek и Qwen просто брали готовое исправление с GitHub, тогда как модели Claude почти никогда так не делали. Эти результаты исследователи отбросили и не утверждают, что какой-либо разработчик обучал модель на тестовых данных.

На большом пуле из 447 задач самые тяжёлая и самая лёгкая обвязки, Claude Code и mini-SWE-agent, отличаются меньше чем на два пункта для обеих проверенных моделей; в пределах пяти пунктов они статистически эквивалентны. На 45 самых трудных задачах обвязки различаются на 2-5 решённых задач на модель, а простой перезапуск сдвигает счёт до трёх. Иногда впереди mini-SWE-agent, иногда Claude Code. Медианный исход задачи меняется между двумя перезапусками в 13% случаев, между двумя обвязками тоже в 13%, а при смене модели в 22%. Авторы называют разрыв между обвязками «новой выборкой того же шума». Малые выборки ещё и ограничивают чувствительность: на 45 задачах даже разрыв в 13 пунктов виден лишь в половине случаев, на 447 задачах надёжно обнаруживаются разрывы около пяти пунктов. Заявленные 2,4 пункта лежат ниже обоих порогов.

Единственный измеримый эффект обвязки, устойчивое отставание OpenCode: на большом пуле он уступает двум другим до девяти пунктов. Около половины разрыва связано с лимитом на вывод: если модель превышает его посреди рассуждения, Claude Code просит её продолжить, а OpenCode завершает шаг, и попытка обычно проваливается. Добавление в OpenCode продолжающего промпта в стиле Claude Code не помогло, так как на повторе та же задача редко вызывает такое же переполнение. Остальную часть разрыва авторы объяснить не смогли и лишь отмечают, что в OpenCode модели прекращают работу заметно раньше. На локально запущенных моделях у OpenCode был к тому же гораздо более жёсткий лимит времени, чем у Claude Code, что авторы называют неконтролируемой переменной. mini-SWE-agent упирается в окно контекста из-за отсутствия управления им, в основном на задачах, которые проваливают и другие обвязки. Поисковые инструменты OpenCode при первом использовании пытаются скачать бинарный файл и ломаются без сети.

Стоимость одной и той же задачи с той же моделью, теми же задачами и тем же прайсом может отличаться до трёх раз в зависимости от обвязки. Вывод инструментов почти ничего не объясняет: все три обвязки возвращают сопоставимый объём текста за вызов. Решает системный промпт вместе с описаниями инструментов, который отправляется на каждом шаге: около 16 600 токенов у Claude Code, примерно 7 000 у OpenCode и меньше 1 000 у mini-SWE-agent. По результатам обратной разработки исследователей, Claude Code сохраняет в истории разговора ещё и рассуждения модели. После первого вызова контекст растёт у всех примерно одинаково: размер промпта задаёт базовую цену, число шагов её умножает. Что перевешивает, зависит от модели: с GLM-5.3-Flash Claude Code почти вдвое дороже mini-SWE-agent, а с Deepseek-V4-Flash mini-SWE-agent делает так много лишних шагов, что цена выравнивается. Скидки на кэшированные токены сглаживают разрыв, но не меняют порядок.

Собственная обвязка Deepseek со своей моделью работает не лучше остальных, но обходится дороже всех. Claude Opus 5 показал те же результаты, даже когда из Claude Code убрали инструменты. Годовалая версия Claude Code решает примерно столько же задач меньше чем за половину цены, потому что тогда расширенное мышление (Extended Thinking) не было включено по умолчанию. Мышление оказалось единственным случаем, когда выбор обвязки реально повлиял на исход: без него mini-SWE-agent с Qwen3.6 теряет одиннадцать пунктов, тогда как Claude Code и OpenCode остаются в пределах шума, а HY4-Preview теряет одиннадцать пунктов в Claude Code. Зависимость от рассуждений, видимо, определяется конкретной парой «модель плюс обвязка»; почему, авторы объяснить не могут, так как тестовая сетка слишком мала.

Исследование опирается в основном на один бенчмарк; небольшая проверка на Terminal-Bench 2.1 показала ту же картину. Закрытая топовая модель Opus 5 запускалась только в Claude Code. Авторы заключают, что обвязка покупает «меньше способов проиграть задачу и счёт», а не долю решённых задач, и рекомендуют публиковать повторный прогон той же конфигурации рядом с каждым сравнением обвязок. Данные и скрипты анализа, по сообщению The Decoder, лежат на GitHub.

Ключевые факты

  • Лю и Хань из Шаньдунского университета прогнали пять моделей через три обвязки (Claude Code, OpenCode, mini-SWE-agent) на SWE-bench Verified: 45 самых трудных задач плюс пул из 447 задач.
  • Повторные прогоны одной конфигурации расходятся до шести пунктов; на пуле из 447 задач Claude Code и mini-SWE-agent различаются меньше чем на два пункта, то есть в пределах шума. Заявленное Zhipu AI преимущество в 2,4 пункта лежит ниже порога обнаружения.
  • Единственный устойчивый эффект: OpenCode отстаёт от двух других до девяти пунктов, примерно половина разрыва связана с лимитом на вывод.
  • Стоимость одной задачи при той же модели может различаться до трёх раз: системный промпт с описаниями инструментов занимает около 16 600 токенов у Claude Code, около 7 000 у OpenCode и меньше 1 000 у mini-SWE-agent.
  • Авторы советуют публиковать повторный прогон той же конфигурации рядом с каждым сравнением обвязок; исследование опирается в основном на один бенчмарк.

Почему это важно

Рейтинги и рекламные заявления о кодинг-агентах часто строятся на сравнении обвязок по одному прогону. Исследование показывает: когда модель фиксирована, замена обвязки сдвигает результат так же, как простой перезапуск, то есть заметная часть «приростов» может быть шумом. Зато цена различается вплоть до трёх раз за задачу. Вывод авторов: обвязка покупает «меньше способов проиграть задачу и счёт», а не долю решённых задач. Эта работа дополняет другие сообщения The Decoder: в одном простой Markdown-файл обошёл сложную систему навыков для кодинг-агентов, а ранее выбор фреймворка почти утраивал стоимость для той же модели.

Кому это важно

Командам, которые выбирают или оплачивают кодинг-агентов и считают токены; разработчикам обвязок и агентских фреймворков, которые заявляют прирост на несколько пунктов; авторам бенчмарков и лидербордов, где обвязки смешаны; исследователям, сравнивающим агентов: им адресована рекомендация авторов публиковать повторный прогон.

Как это применить

Сравнивая обвязки, не опирайтесь на один прогон: запускайте ту же конфигурацию повторно и смотрите, укладывается ли разница в разброс. Учитывайте, что на 45 задачах разрыв в 13 пунктов виден лишь в половине случаев, а надёжно ловятся разрывы порядка пяти пунктов на 447 задачах. Оценивая стоимость, смотрите на размер системного промпта и описаний инструментов, который отправляется на каждом шаге, и на число шагов: с GLM-5.3-Flash Claude Code почти вдвое дороже mini-SWE-agent, а с Deepseek-V4-Flash цена выравнивается из-за лишних шагов у mini-SWE-agent. Мышление (thinking) стоит проверять отдельно для вашей пары «модель плюс обвязка»: без него отдельные сочетания теряют по одиннадцать пунктов.

Можно ли доверять

Это пересказ The Decoder работы двух исследователей; ссылки на саму статью и репозиторий в тексте нет, хотя издание сообщает, что данные и скрипты опубликованы на GitHub. Реакция Anthropic, OpenCode, Zhipu AI и других создателей обвязок в материале не приводится. Сильные стороны: повторные прогоны, офлайн-запуск и проверка на втором бенчмарке (Terminal-Bench 2.1) с тем же результатом. Абсолютные доли решённых задач и стоимость в долларах в пересказе не названы.

Риски и подводные камни

Исследование опирается в основном на один бенчмарк; закрытая топовая модель Opus 5 запускалась только в Claude Code. Вывод про сравнение Claude Code и mini-SWE-agent на 447 задачах сделан для двух моделей. Лимит времени у OpenCode на локальных моделях был жёстче, чем у Claude Code, и авторы сами называют это неконтролируемой переменной; примерно половину отставания OpenCode они объяснить не могут. Тестовая сетка слишком мала, чтобы выяснить, почему зависимость от рассуждений различается по сочетаниям модели и обвязки. Все запуски шли без доступа в сеть, поэтому результаты могут отличаться от работы агентов в реальных условиях.

«Что покупает обвязка? В основном токены.»

— название статьи Лю и Ханя, Шаньдунский университет