Как обвязка агента улучшила результаты на SWE-bench на 9.5 пункта
🧠 Как обвязка агента улучшила результаты на SWE-bench на 9.5 пункта
Автор вскрыл исходники трёх кодинг-агентов и сравнил архитектурные решения с собственным agent-core: разница в результатах лежит не в модели, а в обвязке. Claude Opus 4.5 на стандартном каркасе решает 45.9% задач SWE-bench Pro, с обвязкой Claude Code — 55.4%. В контролируемом эксперименте разброс качества от смены обвязки оказался в 7.8 раза выше, чем от смены модели, если обвязка заточена под задачу. Правило, которое вывел автор: на универсальной обвязке решает модель, а на вылизанной под конкретную задачу — сама обвязка.
Разные агенты по-своему держат состояние цикла: Codex — через флаг needs_follow_up, OpenCode — через очередь задач, Pi намеренно выносит состояние в хуки, а Claude Code описывает три фазы gather → act → verify. Ошибку инструмента все возвращают модели, но та часто оптимистично объявляет работу сделанной — Anthropic борется с этим отдельным проверяющим агентом, автор — детерминированными domain hooks, сверяющими байты файла. Сжатие контекста осложняется «context anxiety»: модель у границы окна сворачивает работу раньше, поэтому одних конспектов недостаточно.
→ SWE-bench Pro: стандартный каркас 45.9% → Claude Code 55.4% (одна и та же модель Opus 4.5)
→ Разброс результата от обвязки больше в 7.8 раза, чем от смены модели (на задачах, где обвязка вылизана)
→ Anthropic фиксирует «context anxiety» у Sonnet 4.5: нужны полные сбросы контекста, а не просто сжатие
Если обвязка даёт почти 10 процентных пунктов прироста на фиксированной модели, бенчмарк голой модели теряет смысл для реальной разработки. Конкуренция смещается в открытый код обвязок — и там уже видны ставки, до которых маркетинговые лендинги не добираются.
Подробности: Habr
#agents #harness #SWEbench #ClaudeCode #OpenCode