Что такое агентный harness и чем он отличается от плагина в IDE

Модель сама по себе не читает файлы и не запускает команды. Всё это делает harness — обвязка вокруг неё. Разбираем, как он устроен.

3 мин · · Обновлено · harness · агенты · инструменты

Разработчики часто говорят «модель сама починила баг» или «Claude запустил тесты». Строго говоря, модель ничего из этого не делает. Она умеет ровно одно: получить текст и вернуть текст. Всё остальное — чтение файлов, запуск команд, правка кода — делает программа вокруг неё. Эту программу и называют harness.

Понимать разницу полезно по очень практической причине: когда агент «не видит файлы» или «отказывается работать», виноват почти всегда harness или его настройка, а не модель.

Как устроен цикл

Harness даёт модели список инструментов — обычно это описания функций вида «прочитать файл», «выполнить команду в bash», «записать содержимое». Дальше происходит следующее.

Harness отправляет модели задачу вместе со списком инструментов. Модель отвечает не текстом, а просьбой: вызови run_bash с аргументом ls src/. Harness выполняет команду сам, на вашей машине, и отправляет модели результат. Модель читает вывод и просит следующий вызов — или, когда информации достаточно, отвечает текстом.

Этот цикл может повторяться десятки раз внутри одной задачи. Модель ни разу не касается вашего диска: она только просит, а решает и выполняет harness.

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

Чем это отличается от плагина в редакторе

Автодополнение в редакторе работает иначе: оно берёт кусок кода вокруг курсора, отправляет модели и вставляет ответ. Один запрос — один результат, никакого цикла.

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

Обратное тоже верно. Для «допиши эту функцию» harness избыточен: он потратит несколько запросов на изучение того, что и так видно на экране.

Что выбрать

Популярных harness сегодня довольно много: Claude Code, opencode, OpenHands, Goose, Aider, Cline и Roo Code внутри VS Code. Они различаются набором инструментов, стратегией работы с контекстом и тем, насколько охотно спрашивают разрешение перед изменением файлов.

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

bash
ANTHROPIC_BASE_URL=https://api.zukko.pro
ANTHROPIC_AUTH_TOKEN=fetch_ваш_ключ

Для OpenAI-совместимых harness адрес отличается суффиксом: https://api.zukko.pro/v1. Ключ Zukko работает и там, и там, а тарификация идёт за реально использованные токены — что для агентного цикла существенно, потому что число запросов в нём заранее неизвестно.

О чём стоит помнить

Harness расходует токены иначе, чем чат. Каждый вызов инструмента — это новый запрос, и в него уезжает вся предыдущая переписка вместе с выводом команд. Задача, которая в чате стоила бы пару тысяч токенов, в агентном цикле легко обходится в сотню тысяч.

Поэтому дешёвая модель на входе здесь важнее, чем в чате: в агентной работе входные токены обычно доминируют. Одна оговорка при сравнении с прайсом вендоров: у них чтение из кэша промптов стоит около 10% цены входа, а в Zukko кэшированные токены оплачиваются по обычной цене, так что для агентов с большим повторяющимся контекстом реальная разница меньше, чем при сравнении цен «в лоб». И поэтому же имеет смысл держать под рукой недорогую модель вроде GLM 5.3 ($0.10/$0.10 за 1M токенов, контекст 128K) для простых шагов, оставляя дорогую для тех, где действительно нужна её голова.

zukko

Платите в 25×
меньше

за Claude Code & ChatGPT

Один ключ fetch_* и base URL api.zukko.pro — в Cursor, Claude Code, Codex и любом SDK.