Когда мы говорим про ChatGPT, Claude или DeepSeek, легко представить, что почти всё зависит от самой LLM. Но модель — это только часть системы.
Сама по себе LLM работает с контекстом и генерирует ответ. Она не открывает файлы, не запускает Python, не ищет информацию в интернете и не выполняет команды в терминале.
Чтобы модель превратилась в агента, вокруг неё нужна инфраструктура. Эту инфраструктуру и называют harness.
Само слово здесь довольно говорящее: harness буквально переводится как «упряжь». То есть harness «запрягает» LLM — подключает к ней инструменты, управляет её действиями и организует выполнение задачи.
Если сильно упростить архитектуру:
Пользователь → Harness → LLM → Harness → инструменты → результат → LLM
Что именно находится внутри этой «упряжи»?
1. Context manager — управляет контекстом
Решает, что именно сейчас должна увидеть модель: системные инструкции, историю диалога, содержимое файлов, результаты предыдущих действий.
Контекст конечен, поэтому старую информацию приходится удалять, сжимать или заменять кратким summary.
2. Tool layer — даёт модели инструменты
Например:
read_file(), search_code(), run_sql(), execute_python(), web_search()Важно, что LLM сама ничего из этого не выполняет.
Она лишь генерирует запрос на использование инструмента. Harness распознаёт его, вызывает нужную функцию и возвращает результат обратно модели.
3. Agent loop — превращает один ответ в процесс
Обычный чат работает примерно так:
запрос → LLM → ответ
У агента появляется цикл:
LLM → действие → результат → LLM → действие → результат → ...
Именно поэтому агент может самостоятельно прочитать код, запустить тест, увидеть ошибку, исправить её и попробовать снова.
4. State / Memory — хранит состояние
Harness следит за тем, что агент уже сделал: какие файлы прочитал, какие команды запускал, какие результаты получил и на каком этапе задачи находится.
Без этого каждый следующий вызов модели был бы почти новым разговором.
5. Permissions и guardrails — определяют границы
Прочитать файл — можно.
Изменить файл — можно.
Сделать
git push — возможно, сначала спросить пользователя.Выполнить
DROP TABLE — не сегодня.То есть harness отвечает не только за возможности агента, но и за то, что ему делать нельзя.
Постепенно помимо гонки моделей начинается гонка харнессов. Например, на днях DeepSeek выпустили собственный Harness (DSH) с подходом, что все есть плагин. Короче, разработчики моделей начинают конкурировать уже не только качеством самих LLM, но и тем, какую среду для работы вокруг них они могут построить.
Отчасти LLM превращается в заменяемый движок, в некоторых случаях можно использовать более дешёвую модель с продвинутым харнессом.
На мой взгляд, среди обычных юзеров большАя часть возможностей современных агентов определяется уже не столько моделью, сколько харнессом и его фичами.
