Harness, Framework или MCP: кто на самом деле управляет ИИ-агентом? Разбираем по слоям
В обсуждениях архитектуры ИИ-агентов термины harness, framework и MCP используют как взаимозаменяемые, но это разные уровни. Harness — это исполняющая система, которая оборачивает модель и превращает её в рабочего агента: управляет состоянием диалога, потоком исполнения, инструментами, песочницей и политиками одобрения. Примеры — OpenAI Codex и Claude Agent SDK, где цикл агента жёстко задан и не переписывается.
Framework — это библиотека примитивов для сборки агентов: клиенты моделей, абстракции инструментов, графы оркестрации, интерфейсы памяти и хуки наблюдаемости. LangGraph, OpenAI Agents SDK и Microsoft Agent Framework (1.0 GA в апреле 2026) дают каркас и скелет цикла, но политику решаете вы. MCP — это сетевой протокол (JSON-RPC 2.0), стандартизирующий, как LLM-приложение обнаруживает и вызывает возможности серверов: инструменты, ресурсы и промпты. MCP не владеет ни циклом, ни состоянием агента — только контрактом между агентом и инструментами.
Матрица ответственности: цикл исполнения — у harness (фиксированный, с лимитами и компактизацией), у framework (настраиваемый скелет), у MCP — нет. Состояние и память — у harness (сессии, возобновление, форки, чекпоинты), у framework — хуки, у MCP — нет. Транспорт инструментов — harness и framework потребляют встроенные инструменты и MCP-клиенты, MCP владеет JSON-RPC. Права и одобрения — harness владеет режимами, хуками, песочницей; framework — гардрейлами и перехватами; MCP делегирует хосту. Восстановление — harness (возобновление сессий, откат чекпоинтов), framework (долговечное исполнение, ретраи), MCP — частично через расширение Tasks. Изоляция и песочница — только harness и опционально framework. Мультиагентная оркестрация — паттерны у harness, примитивы у framework, у MCP — нет (A2A покрывает агент-агент).