Что такое Harness?
Про обвязку вокруг модели, без которой агент никуда не уедет
Павел Рыков
aka Pavel Zloi
история
теория
coddy вживую
футурология
Блок 0 | Разогрев
Маршрут на сегодня
Что такое harness и при чём тут агенты
Откуда взялся термин
Какие бывают виды
Из чего собран внутри
Harness вживую - на примере моего Coddy
Уроки и грабли, что унести с собой
Футурология - harness мечты
Спойлер
Агент = LLM + Harness
Блок 1 | Что такое harness
Языковая модель умеет только: продолжать текст.
Не открывает файлы сама по себе, у неё нет рук
Не запускает команды нет доступа к shell и системе
Не помнит прошлый ход и с чистого листа, мы всё начнём сначала
Блок 1 | Что такое harness
Агент - это модель в цикле
THINK
ACT
OBSERVE
ЦИКЛ
Stop | лимит ходов | задача закрыта
Классический паттерн - ReAct (Reasoning + Action): думает, выбирает инструмент, получает результат, снова думает.
Блок 1 | Что такое harness
Почему цикл, а не один проход
0.99 ^ 10 ≈ 0.90
Закон Лессера (Lusser's law): надёжность последовательной цепочки равна произведению надёжностей звеньев.
Десять шагов по 99% дают на выходе около 90%. Система слабее слабого звена и с каждым шагом проседает сильнее. Без цикла, самопроверок и повторов модель на длинной задаче рассыпается.
Блок 1 | Что такое harness
Harness - вся обвязка вокруг модели
держит цикл
список инструментов
права доступа
историю сессии
связь с провайдером
Двигатель, машина и водитель
Модель - двигатель. Harness - всё остальное в машине, без чего двигатель крутится вхолостую. А промпт пользователя - водитель с маршрутом: решает, куда ехать.
Процессор, железо и ОС
LLM - процессор. Harness - материнка, память, диск и ввод-вывод вокруг него. А промпт пользователя - операционная система: задаёт, что и зачем считать.
Блок 1 | Что такое harness
Модель меняешь одной строкой в конфиге , а harness остаётся тот же.
Ценность не в конкретной модели, а в обвязке. Если ты не модель - ты harness © LangChain
Блок 2 | Откуда взялся термин
Слово появилось не вчера
1
Test harness
тестовый стенд вокруг кода. Термину десятки лет
2
Evaluation harness
lm-evaluation-harness, OpenAI Evals - прогон модели по задачам
3
Agent harness
OpenAI: SWE-bench, системные карты o1 и GPT-5 - обвязка ≠ модель
4
2026 - дисциплина
Anatomy of an Agent Harness: agent = model + harness
Блок 2 | Откуда взялся термин
Цена harness в чистом виде
выше
ниже
за 30-м местом
до
5-е место
после
+25
TerminalBench 2.0: команда LangChain поднялась на +25 позиций, поменяв только обвязку. Модель не трогали.
Блок 2 | Откуда взялся термин
8 уровней агентной инженерии (по мнению Bassim Eledath)
1
2
3
4
5
6
harness
7
8
1 Tab Complete
2 Agent IDE
3 Context Engineering
4 Compounding Engineering
5 MCP и Skills
6 Harness Engineering
7 Background Agents
8 Автономные агентные команды
Блок 3 | Виды harness
Классификация harness'ов
По типу интерфейса
IDE-встройки (Cursor, Copilot, Zed)
CLI (Claude Code, Codex, Aider)
браузер и веб-UI
серверные боты
По транспорту
ACP - JSON-RPC поверх stdio (редактор ↔ агент)
HTTP - часто OpenAI-совместимый (агент как бэкенд)
По размещению
облачные managed (ключи и код во внешнем контуре)
self-hosted / on-premise (всё на вашей машине)
По рантайму
Node (Claude Code)
Python (большинство фреймворков)
один бинарник (Coddy на Go)
По циклу
простой ReAct
длинные петли в стиле Ralph
По числу агентов
одиночный (один цикл, один контекст)
мультиагент: Fork, Teammate, Worktree
Чистых типов нет - реальный harness миксует оси:
Cursor - IDE + облако,
Claude Code - CLI на Node,
Coddy - один бинарник, сразу ACP и HTTP.
Блок 4 | Анатомия
Снимаем кожух
Системный промпт роль и поведение агента
Инструменты файлы, shell, веб + внешние через MCP
Цикл и стоп-условия сколько ходов, когда Stop, как ловит ошибки
Права и песочница
что можно трогать
режимы plan / agent
песочница: Docker → microVM → gVisor
МОДЕЛЬ сменная деталь
Состояние и сессии история ходов, чтобы помнил, что делал
Контекст и память что в окне сейчас, а что в долгой памяти
Наблюдаемость виден каждый вызов, можно откатить
Skills + MCP тоже сменная деталь: навыки и внешние тулзы докидываются на ходу
Блок 4 | Анатомия
Почему части важны - в цифрах
−30%+
context rot: нужное в середине окна - качество проседает
−80%
в Vercel выкинули тулзы - и стало лучше. Скоупь инструменты
×2-3
цикл верификации поднимает качество в два-три раза
Блок 4 | Анатомия
Толщина harness
Толстый
модель
логика снаружи, в harness
Леса убирают, когда здание готово: чем сильнее модель, тем тоньше harness. Но в ноль он не уходит.
Модель - сменная деталь. Всё остальное и есть harness.
Блок 5 | Harness вживую
Смотрим на живой harness
Подопытный - мой Coddy . Всё то же есть в Claude Code и Cursor, просто кнопки лежат в других местах.
Блок 5 | Harness вживую
Что показываю
Цикл и таймлайн вызовов: имя, аргументы, результат, время
Streaming, прерывание посреди ответа, восстановление сессии
Repair-loop: падающая задача чинится сама за пару попыток
Инструменты: файлы, shell, SSH на удалённый хост, веб-поиск
Режимы plan и agent - чем план безопаснее для разведки
Rules из .cursor и .claude подхватываются без правок
Skills как slash-команды: положил SKILL.md - команда в UI
Одна сессия в браузере и в редакторе через ACP
Тот же harness как OpenAI-бэкенд - обычным curl
Блок 5 | Harness вживую
Каждый вызов - имя, аргументы, результат. Тот самый цикл из блока 1, только вживую. Никакого чёрного ящика.
Блок 6 | Уроки и грабли
Обвязка важнее модели на длинной дистанции
Protocol-first побеждает
Контракт с первого дня - новые поверхности цепляются почти бесплатно.
Совместимость = юзеры
Читаешь чужие rules, даёшь OpenAI-API - человеку не надо переучиваться.
Общее состояние = дисциплина
Утечка деталей транспорта в общий слой ломает остальных. Слой состояния - самый консервативный.
Зрелая обвязка вокруг средней модели бьёт сырую обвязку вокруг топовой.
Блок 6 | Уроки и грабли
...и ещё грабли
Обвязка растёт как снежный ком
Каждая пойманная ошибка - новое правило в репозитории. Ком катится сам: чем дольше работаешь, тем надёжнее.
Потолок предсказуемости
Harness вывозит повторяемое, но не новое. В незнакомом сначала пройди руками сам.
Инструкции коротко, проверки строго
AGENTS.md ~100-150 строк. Линтеры с подробными сообщениями - учителя для агента.
Блок 7 | Что унести с собой
Не смотри со стороны - пощупай руками
Готовое из коробки
Claude Code, Codex, Cursor или Aider - и смотри на цикл и вызовы глазами.
Self-hosted в бинарник
Без рантайма - мой Coddy, ставится одной командой.
В любом случае
Дай простую задачу, подсунь свои rules, посмотри таймлайн. Там вся суть.
Минимум для старта: провайдер, модель, ключ - и агент уже отвечает. Глубже - каталог 80+ статей на Хабре.
Блок 8 | Футурология
harness мечты
Без обещаний и дорожных карт. Просто разгон - каким хочется видеть harness через пару лет.
Блок 8 | Футурология
Одна сессия - любой агент
единый формат
хранения сессий
Claude Code
Codex
Coddy
Начал в Claude Code → продолжил в Codex → закончил в Coddy. Общий формат сессий - и любой агент дочитывает чужую историю и генерит дальше.
Блок 8 | Футурология
Одна сессия - любое устройство
сессия на сервере
ноутбук
телефон
планшет
Запустил с компа → по дороге смотришь с телефона → вечером продолжил за столом. Устройство меняешь, сессия одна.
* VNC внутри туннеля до дома - пока что самое простое решение
Блок 8 | Футурология
Несколько человек в одной сессии
одна сессия
общее состояние
агент
Как Google Docs, только для агента: каждый видит один цикл, каждый может вмешаться.
Блок 8 | Футурология
Рой агентов из коробки
Агент сам решает: хватит одной синхронной сессии - или поднять рой и раскидать задачу по параллельным агентам.
Простая задача
одна сессия, один контекст - синхронно, как сейчас. Лишних агентов не плодим.
Большая задача
harness сам форкается в рой: несколько агентов параллельно, у каждого своё окно, потом сводят результат.
Не ты заранее выбираешь число агентов - harness решает это на лету под задачу.
Спасибо! Вопросы?
⭐ Звёзды и PR приветствуются
Подписывайтесь на телегу — там разборы по harness