Один и тот же Claude, разный результат: модель против обвязки

19 мин. чтения

Claude Code и чат на claude.ai используют одну и ту же нейросеть — буквально одни и те же веса модели Claude. Но ведут себя они по-разному: чат отвечает текстом, а Claude Code сам читает файлы, запускает команды и доводит задачу до результата. Секрет не в модели, а в обвязке (по-английски harness) — инфраструктуре, которая окружает модель. Официальная документация Claude Code так себя и называет: «agentic harness around Claude». То есть модель — это мотор, а обвязка — всё остальное, что превращает мотор в машину, на которой можно ехать.

Насколько сильно обвязка решает? Есть измеримый ответ. На независимом бенчмарке CORE-Bench Hard одна и та же модель (Claude Opus 4.5) показала 42% правильных решений под слабой обвязкой и 78% — под обвязкой Claude Code (по данным лидерборда Princeton HAL, снимок на 9 июля 2026). Модель не менялась ни на йоту — поменялась только «оболочка» вокруг неё, и результат вырос почти вдвое. Дальше разберём, почему так, и что это значит для вас на практике.

Простыми словами: эксперт в комнате без окон

Представьте очень эрудированного эксперта, которого заперли в комнате без окон. В двери — узкая щель. Вы просовываете записку с вопросом, он просовывает записку с ответом. Эксперт блестяще рассуждает, но при этом: ничего не видит вокруг, ничего не может потрогать руками и забывает предыдущую записку, как только ответил на новую.

Это и есть языковая модель сама по себе. Она гениально предсказывает текст, но не имеет ни глаз, ни рук, ни памяти между запросами.

Теперь добавим к комнате ассистента снаружи. Он даёт эксперту глаза (описывает, что лежит на столе — то есть показывает файлы), руки (выполняет команды, которые эксперт диктует), блокнот (ведёт записи, чтобы эксперт не забывал) и главное — гоняет записки по кругу: получил ответ, проверил результат, задал уточняющий вопрос, и так, пока задача не решена.

Эксперт (модель) в обоих случаях один и тот же. Но без ассистента он только советует, а с ассистентом — делает работу. Этот ассистент и есть обвязка. Чат claude.ai — это «эксперт и щель в двери», классический чат-бот в одном треде. Claude Code — «эксперт плюс толковый ассистент вокруг него».

Для тех, кто хочет образ поточнее — по аналогии с компьютером. Если модель — это процессор (быстро считает, но сам по себе ничего не хранит и ни к чему не подключён), то контекстное окно — это оперативная память (то, что процессор «видит» прямо сейчас), инструменты — драйверы (дают доступ к диску, сети, устройствам), а обвязка — операционная система, которая всем этим дирижирует. Один и тот же процессор под разной ОС ведёт себя совершенно по-разному — так же и одна модель под разной обвязкой.

Есть и более детальный образ на три слоя: модель — это двигатель (даёт мощность), «строительные леса» (scaffold) — это руль и навигатор (задают направление на конкретной задаче), а обвязка целиком — уже собранный автомобиль с колёсами, на котором можно доехать до цели. Слова harness и scaffold в статьях часто используют как синонимы; строго говоря, scaffold — более лёгкая надстройка под одну задачу, а harness — вся рабочая оболочка вокруг модели.

Как это устроено на самом деле

Разложим на две части — модель и обвязку, — потому что путаница между ними и рождает большинство заблуждений.

Модель (LLM) — это математическая система, которая по входному тексту предсказывает следующий фрагмент текста. У неё есть два важных свойства:

  • Она без состояния (stateless): не помнит прошлые разговоры сама по себе. Всё, что она «знает» о вашей задаче прямо сейчас, — это то, что уместилось в контекстное окно текущего запроса. Именно поэтому чат «забывает» контекст, если вернуться к нему через день, а очень длинный диалог начинает путаться: модель видит только текущее окно, а не всю историю целиком.
  • Она работает только с текстом: на входе текст, на выходе текст. Сама по себе модель не открывает файлы, не ходит в интернет и не запускает код.

Обвязка (harness) — это программа вокруг модели, которая как раз добавляет ей всё недостающее. У Claude Code обвязка состоит из нескольких частей:

  • Агентный цикл — сердце обвязки: собрать контекст → выполнить действие → проверить результат, и так по кругу. Например: прочитать файл → изменить строку → запустить тест → увидеть, что он всё ещё падает → поправить ещё раз → тест зелёный → остановиться. Каждый шаг опирается на фактический результат предыдущего, а не на догадку. Именно цикл превращает «ответил и забыл» в «работал, пока не сделал».
  • Инструменты (tools) — руки и глаза модели: чтение и запись файлов, запуск команд в терминале, поиск, обращение к внешним сервисам (через протокол MCP).
  • Управление контекстом — обвязка решает, что именно показать модели в ограниченном окне. Это важнее, чем кажется: у моделей есть эффект context rot — чем больше токенов в контексте (даже если весь контент по делу), тем хуже модель вспоминает нужную деталь; эффект проявляется у всех моделей (разбор Anthropic Engineering, сентябрь 2025). Поэтому хорошая обвязка не вываливает в окно всё подряд, а подаёт модели только то, что нужно для текущего шага. Простой пример: если загрузить в один диалог десять файлов целиком, модель может «потерять» важную строку среди тысяч других; обвязка же покажет ей только релевантный фрагмент — и точность вырастет.
  • Разрешения (permission modes) — правила, что агент может делать сам, а что — только с вашего согласия.

Anthropic называет базовый строительный блок таких систем «augmented LLM» — модель, дополненную поиском, инструментами и памятью. Чат — это почти «голая» модель; агент — это augmented LLM, обёрнутая в цикл проверки.

Отсюда простая формула, которую любят в сообществе: Агент = Модель + Обвязка. Модель даёт интеллект, обвязка — руки, память и дисциплину. Убери обвязку — останется чат. Убери модель — останется пустой каркас. Полезно держать эту формулу в голове, когда читаете новости про ИИ: за громким «вышла новая модель» часто стоит ещё и новая обвязка, и по цифрам бенчмарков не всегда понятно, что именно дало прирост — сама модель или оболочка вокруг неё.

Chat vs Code при одной и той же модели

Если запустить в чате и в Claude Code одну и ту же модель, разница будет вот в чём.

ЧтоЧат claude.aiClaude Code
Доступ к файламНет (можно загрузить, но не редактировать на диске)Да — читает и правит файлы проекта
Терминал / запуск командНетДа
Агентный циклНет — один ход «вопрос → ответ»Да — действие → проверка → повтор
Память о задачеВ пределах одного диалогаУправляется обвязкой (CLAUDE.md, авто-память, компакция)
Разрешения на действияНе нужны (он ничего не делает)Есть режимы: спрашивать / выполнять / только план
Кто делает работуВы (копируете код, запускаете)Агент (с вашей приёмкой)

Покажем на одной задаче. Вы просите: «в моём проекте функция логина возвращает ошибку — почини». В чате Claude выдаст правдоподобный кусок кода и объяснение — но он не видел вашего файла, не знает вашей версии библиотеки и не проверял, компилируется ли это; дальше всё делаете вы. В Claude Code та же модель сначала откроет ваш реальный файл логина, увидит фактический текст ошибки в выводе, внесёт правку, запустит проект и убедится, что ошибка ушла, — и вернётся к вам с уже проверенным результатом. Вопрос один, модель одна, а разница — в обвязке, которая дала модели глаза, руки и цикл проверки.

И теперь — почему это не просто «удобнее», а объективно результативнее. Вернёмся к бенчмарку CORE-Bench Hard от Princeton HAL. Это набор сложных задач, где ИИ должен воспроизвести результаты научных работ — прочитать код, запустить, проверить. Одна и та же модель Opus 4.5 набрала там 42,22% под слабой обвязкой (простой агент CORE-Agent) и 77,78% под обвязкой Claude Code (данные лидерборда на 9 июля 2026). Разрыв — почти 36 процентных пунктов, и всё это без единого изменения в самой модели. Вывод буквальный: на сложных задачах обвязка может решать больше, чем выбор модели.

И ещё нюанс: чем сложнее и длиннее задача, тем сильнее решает обвязка. На простом вопросе («что делает эта строка кода») разницы между чатом и агентом почти нет — справятся оба. А на многошаговой задаче, где нужно прочитать проект, что-то изменить и проверить, слабая обвязка «сыплется», а сильная доводит до конца. Поэтому разрыв 42% против 78% получен именно на сложных задачах, а не на простых вопросах.

Зачем это знать на практике

Понимание границы «модель / обвязка» экономит вам нервы и деньги.

Что реально меняет команда /model, а что нет. Переключая модель в Claude Code, вы меняете «мотор» — интеллект и цену. Но агентный цикл, инструменты и правила остаются те же. Если результат плохой из-за плохо поставленной задачи или замусоренного контекста, смена модели это не починит — проблема в обвязке и в том, как вы её используете. Практический порядок действий такой: сначала уточните задачу и почистите контекст, затем попробуйте поднять «усилие» (effort) в рамках той же модели, и только потом — переключать саму модель на более мощную. Часто до последнего шага дело не доходит.

Заблуждение «модель стала тупее». Очень частая жалоба: «раньше работало, а теперь ИИ отупел». На практике так же часто виновата не модель, а обновление обвязки. Академическое исследование (arXiv / TOSEM, 2026) на примере инструмента Qwen Code CLI показало: за серию из 35 обновлений оболочки — при неизменной модели — статистически значимого роста качества не было, зато расход токенов вырос вдвое. Обвязку правят в разы чаще модели, и не каждая правка — к лучшему. Бывает и обратное: причина реально в модели. Например, после автоматического перехода на новую версию модели пользователи в публичном баг-репорте заметили резкий рост расхода токенов — и здесь дело было именно в модели, а не в оболочке. Отсюда трезвый вывод: прежде чем винить «поглупевшую нейросеть», стоит разобраться, что на самом деле изменилось — модель, обвязка или ваш контекст; на глаз это бывает трудно даже опытным пользователям.

Где хватит чата, а где нужен агент.

СитуацияДостаточно чатаНужен Claude Code (агент)
Спросить, как что-то работаетДа
Сгенерировать сниппет кода для копипастаДа
Разобраться в чужом проекте на дискеДа
Внести правки в несколько файлов и прогнать тестыДа
Автоматизировать сборку/деплойДа

Правило простое: если задача — «объясни / придумай / напиши текст», хватит чата. Если задача — «сделай в моём проекте», нужен агент с руками. Кстати, именно на этом держится вайб-кодинг: он работает не потому, что модель «волшебная», а потому, что обвязка даёт ей доступ к реальному проекту.

Обратная, обнадёживающая сторона медали: грамотно спроектированная обвязка поднимает надёжность даже без смены модели. Показательный кейс — команда Vercel, которая для своего ИИ-инструмента v0 сократила набор инструментов агента примерно на 80% (убрала лишнее, оставила нужное) и подняла успешность выполнения задач с 80% до 100%. Модель та же — изменилась только обвязка: какие инструменты ей доступны и как. Это оборотная сторона цифр 42% и 78% — обвязка решает много, и в хорошую сторону тоже.

Не случайно в 2026 в индустрии заговорили о «harness engineering» как об отдельном ремесле: раз оболочка вокруг модели решает столько же, сколько сама модель, её проектирование становится инженерной дисциплиной.

И мысль на будущее. По мере того как модели умнеют, обвязка должна становиться тоньше: строительные леса убирают, когда здание готово. Часть того, что сегодня приходится «подпирать» оболочкой (например, аккуратно нарезать контекст, чтобы модель не путалась в длинном окне), завтра модели будут делать лучше сами. Но пока контекстное окно ограничено, управление им остаётся работой обвязки.

Риски: обвязка — это ещё и новая поверхность атаки

У медали есть обратная сторона. Всё, что делает Claude Code мощным (доступ к терминалу, файлам, внешним сервисам), одновременно расширяет поверхность атаки — то, чего у чата в принципе нет.

  • Prompt injection. OWASP второй год подряд ставит инъекцию промптов риском №1 для приложений на LLM. Суть: во внешние данные (файл, страница, ответ сервиса), которые агент читает, прячут скрытую инструкцию — и агент выполняет её как команду. У чата этот риск ограничен: он ничего не выполняет. У агента с терминалом — уже нет.
  • Reverse shell из «чистого» репозитория. В июне 2026 исследователи Mozilla 0DIN показали PoC-атаку: внешне безобидный репозиторий через непрямую инъекцию заставлял агента открыть reverse shell — то есть отдать управление машиной наружу. Атака нацелена именно на агентную обвязку, не на модель.
  • Подмена того, что вы видите. Отдельный класс — ANSI escape injection (разбор от июня 2026): в вывод терминала подмешивают невидимые управляющие последовательности, из-за которых человек видит одно, а агент одобряет другое. Вы думаете, что подтверждаете безобидную команду, — а подтверждаете не её.

Что с этим делать новичку: не давайте агенту доступа к продакшн-системам и секретам без нужды, работайте в режиме, где он спрашивает разрешение перед командами, и не запускайте недоверенные проекты в режиме «делай что хочешь». Обвязку с доступом к терминалу разумно держать в песочнице или отдельном окружении, а не на рабочей машине со всеми паролями.

И важная оговорка про пределы обвязки: умная оболочка не чинит галлюцинации модели. Обвязка добавляет модели руки и память, но если модель выдумала несуществующую функцию, никакой агентный цикл сам по себе это не исправит — нужна проверка (тесты, ревью человеком). Обвязка усиливает и правильные, и ошибочные решения модели.

Связанные понятия

Короткий словарик, чтобы дальше в курсе было проще:

  • Обвязка (harness) — программа вокруг модели, дающая ей инструменты, память и агентный цикл. Синонимичное слово — «каркас» (scaffold), его чаще используют для более лёгких надстроек.
  • Агентный цикл — повторяющийся круг «контекст → действие → проверка», который отличает агента от одноразового ответа.
  • MCP (Model Context Protocol) — открытый стандарт, через который обвязка подключает к модели внешние инструменты и сервисы. Отдельный разбор — в следующей статье курса.
  • CLAUDE.md — файл с постоянными инструкциями проекта; часть обвязки, отвечающая за память правил.
  • Контекстное окно — «оперативная память» модели на один запрос; чем аккуратнее обвязка ею распоряжается, тем лучше результат. У разных моделей окно разного размера, но даже большое окно не бесконечно — поэтому «что положить в окно, а что оставить за бортом» решает обвязка, и от этого выбора напрямую зависит качество ответа.

FAQ

Claude Code — это агент или обвязка? И то, и другое, смотря с какой стороны. Обвязка (harness) — это инженерная часть: цикл, инструменты, управление контекстом. Агент — это то, что получается, когда обвязку соединяют с моделью и она начинает сама управлять процессом. Claude Code официально называет себя «агентной обвязкой вокруг Claude»: обвязка — механизм, агент — поведение.

Почему один и тот же Claude отвечает по-разному в чате и в Claude Code? Потому что модель одна, а обвязка разная. В чате нет агентного цикла, доступа к файлам и терминалу — только разговор. В Claude Code вокруг той же модели работает целая инфраструктура, которая даёт ей руки и память. Разница в поведении — это разница в обвязке, а не в «уме» модели.

Если ИИ «поглупел», надо менять модель? Не обязательно. Часто дело не в модели, а в обвязке или в контексте: замусоренное контекстное окно, неудачно поставленная задача, свежее обновление оболочки. Сначала стоит улучшить постановку задачи и почистить контекст, и только потом винить модель.

Обвязка делает модель умнее? Нет, она не добавляет модели интеллекта. Она даёт ей глаза, руки и память и заставляет работать по кругу с проверкой — за счёт этого итоговый результат на сложных задачах выходит заметно лучше (пример с 42% против 78% выше). Но галлюцинации и ошибки самой модели обвязка не лечит. Грубая аналогия: сильному спортсмену можно дать хорошую экипировку и тренера — результат вырастет, но саму физическую форму это не изменит; так и обвязка раскрывает потенциал модели, но не повышает её «интеллект».

Что такое «harness» простыми словами? Это англоязычное слово для обвязки — программной «упряжи» вокруг модели. Как сбруя позволяет запрячь сильную лошадь в повозку и получить пользу от её силы, так harness «запрягает» мощную модель в рабочий процесс с инструментами и памятью.

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

Курс «Claude Code с нуля до продакшена» · модуль «Понять основы». Полная программа и два маршрута обучения — на странице курса.

Предыдущий урок: Claude Code: что это и кому нужен · Следующий урок: Что такое MCP простыми словами

Поделиться
Связаться:
Крипто- и data-аналитик, инженер-программист (факультет компьютерных наук ХНУРЭ). В IT с 2008 года: администрировал корпоративный мониторинг в «Vodafone Украина», семь лет разрабатывал и продвигал веб-проекты, пять лет руководил маркетингом на метриках — конверсия, CTR, ROI, LTV.Криптовалютными рынками занимаюсь с 2021 года: ончейн-метрики, токеномика, макроэкономические индикаторы. Разработал собственную data-driven модель анализа рынка на 30+ метрик. Стек — Python (pandas, NumPy, SciPy, matplotlib), математическая статистика и EDA; сбор и сверку данных автоматизирую AI-агентами.Принцип — «Don't trust, verify»: каждая цифра проверена по первоисточнику, ключевые — минимум по двум независимым; прогнозы — только сценарии с условиями. Тезис без данных не публикуется.