Agent Harness (обвязка ИИ-агента): что это и как работает
Agent Harness (обвязка ИИ-агента) — это весь код и конфигурация вокруг языковой модели, которые превращают её в агента: цикл «подумал — вызвал инструмент — получил результат», набор инструментов, управление контекстом, права доступа и сохранение сессий. Модель только рассуждает и выбирает следующее действие, а harness выполняет его и возвращает результат.
Короткая формула, которая встречается в документации и README проектов: агент = модель + harness. Одна и та же модель в разных обвязках работает по-разному: где-то она редактирует файлы и гоняет тесты, где-то лишь отвечает текстом. Поэтому при выборе инструмента вроде Claude Code, Codex или OpenCode вы выбираете не только модель, но и harness.
Как это работает
В основе любого harness лежит цикл агента (agent loop): модель получает контекст и решает, что делать дальше, harness выполняет действие (читает файл, запускает команду, вызывает API), добавляет результат в контекст, и цикл повторяется, пока задача не решена. В документации Claude Code этот цикл описан как три фазы: сбор контекста, действие и проверка результата. Сама модель действовать не может: у неё нет «рук», только текстовый вывод и вызов инструментов.
Из чего состоит harness:
- Инструменты. Чтение и правка файлов, поиск, выполнение shell-команд, веб-запросы. Расширяются через MCP и навыки (skills): например, Goose подключает расширения по MCP, а в deer-flow есть расширяемые skills.
-
Управление контекстом. Окно контекста ограничено, поэтому harness чистит старые результаты инструментов и сжимает историю (компактизация). Claude Code сначала удаляет старые выводы инструментов, затем при необходимости суммаризирует диалог; постоянные правила советуют хранить в
CLAUDE.md. Подробнее об этой дисциплине — в статье про контекст-инжиниринг. - Права и изоляция. Режимы подтверждения действий, песочницы, контейнеры. В Claude Code есть режимы разрешений от «спрашивать перед каждой правкой» до автоматических, плюс откат файлов через checkpoints. В deer-flow команды можно исполнять локально, в Docker-контейнерах или в Kubernetes. Pi, напротив, не имеет встроенной системы разрешений и запускается с правами пользователя, а для изоляции его предлагают класть в контейнер.
- Сессии и память. Сохранение истории, возобновление работы, заметки между сессиями. Anthropic в статье про долгоживущих агентов описывает схему «агент-инициализатор + кодирующий агент»: каждая сессия оставляет артефакты для следующей, потому что новая сессия начинается без памяти о прошлой.
- Субагенты. Подчинённые агенты со своим окном контекста: их вызовы инструментов не засоряют основной контекст, а в ответ приходит краткая сводка.
Чем отличается от модели и от фреймворков
От модели. Модель — это веса, доступные через API. Harness — программа на вашей стороне (или на стороне сервиса), которая вызывает модель, исполняет её решения и решает, что именно модель «видит» на каждом шаге.
От фреймворков. Фреймворки вроде LangChain дают строительные блоки: цепочки, графы, коннекторы, и из них вы собираете систему сами (см. фреймворки для LLM и Orchestration Framework). Harness — это уже собранный и настроенный рантайм с готовым циклом, инструментами и политиками. Граница условна: LangChain сам называет harness'ом свой готовый стек Deep Agents, а оркестрация агентов и мультиагентные системы часто работают поверх harness.
Почему от harness зависит качество
При той же модели результат меняют:
- набор и описания инструментов: плохо описанный инструмент модель вызывает неверно;
- то, что попадает в контекст и что из него вытесняется;
- проверки: запуск тестов и линтеров после правок возвращает модели ошибки, и она их исправляет;
- права: слишком жёсткие дают бесконечные запросы подтверждений, слишком мягкие — риск необратимых действий.
Примеры
| Harness | Что это |
|---|---|
| Claude Code | Агент Anthropic для терминала; в документации сам назван «agentic harness» |
| Codex | Кодирующий агент OpenAI, запускается локально |
| OpenCode | Open-source кодирующий агент |
| Pi | Минимальный расширяемый harness: расширения, skills, шаблоны промптов; субагентов и plan mode в комплекте нет |
| Goose | Универсальный open-source агент (десктоп, CLI, API), 15+ провайдеров, расширения по MCP |
| deer-flow | «Super agent harness» от ByteDance: субагенты, память, песочницы, skills, задачи на минуты и часы |
| ruflo | «Мета-harness» поверх Claude Code и Codex: рои агентов, память, защитные правила |
Связь с RouterAI
Большинство harness умеет работать с несколькими провайдерами: для этого достаточно указать другой Base URL. RouterAI даёт единый API: https://routerai.ru/api/v1 для OpenAI-совместимых клиентов и https://routerai.ru/api для Anthropic Messages API. Ключ и оплата в рублях одни, работает из России без VPN, а каталог моделей общий для всех инструментов. Подключение конкретных harness описано в гайдах: Claude Code, Codex, OpenCode, OpenClaw, DeepSeek Harness.
Что менять в harness, а что в модели
Менять модель (одной строкой в настройках, без смены harness), когда не хватает качества рассуждений, нужна экономия или скорость. Менять harness, когда проблема не в рассуждениях: агент теряет контекст, не умеет запускать тесты, не видит нужный инструмент, нет изоляции.
Переход между моделями возможен, если новая модель поддерживает вызов инструментов: проверка запросом с tools через RouterAI вернула tool_calls и у anthropic/claude-sonnet-5.5, и у deepseek/deepseek-v4-flash. Актуальный список смотрите в каталоге.
| Задача | Пример модели из каталога |
|---|---|
| Основная работа агента | anthropic/claude-sonnet-5.5 |
| Быстрые и недорогие шаги, субагенты |
anthropic/claude-haiku-5.5, deepseek/deepseek-v4-flash
|
| Альтернатива от OpenAI | openai/gpt-5.5 |
Цены на токены зависят от модели и смотрятся в каталоге.
Что почитать
- Как работает Claude Code: цикл, инструменты, контекст и разрешения
- Effective harnesses for long-running agents, Anthropic Engineering
- The Anatomy of an Agent Harness, LangChain
- AI Agent и Tool Calling API на нашем сайте