Что такое агентный 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 и почти все позволяют указать свой адрес сервера. Это значит, что модель можно подставить любую — и переключение между ними стоит одной строки в настройках.
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.
Похожие статьи
- Агенты opencode: как настроить роли, модели и инструментыСвой агент в opencode — это роль, модель и список разрешений. Показываем конфиг и пример, где рутину делает дешёвая модель, а код правит сильная.
- Plan mode в Claude Code: сначала план, потом правки в кодеВ plan mode Claude Code читает код и предлагает план, но ничего не правит, пока вы не согласитесь. Как включить, использовать и во сколько это обходится.
- Промпт-инъекция: что это и как защитить бота и агентаОбъясняем, как работает промпт-инъекция через пользовательский ввод и чужие документы, и какие меры снижают ущерб: изоляция данных, права инструментов, лимиты ключа.
- AI-агент для поиска работы: резюме под вакансию и сопроводительные письмаСобираем небольшой инструмент: вы даёте текст вакансии и файл с реальным опытом, получаете адаптированное резюме, письмо и список пробелов. Без выдуманных навыков.