В экосистеме Agentic AI термины Agent Harness, Agent Framework и MCP часто используются как синонимы, но архитектурно это разные слои. Они находятся на разных уровнях стека, отвечают за разные задачи и всё чаще пересекаются на границах. Ключевой вопрос для разработчика: какой слой владеет циклом выполнения, состоянием, транспортом инструментов, правами доступа и восстановлением после сбоев?
01Матрица ответственности
Ниже приведена таблица, отображающая, какой слой по умолчанию владеет каждой ответственностью. «Владеет» означает, что слой определяет и обеспечивает поведение. «Предоставляет» означает, что слой дает хук, но не принимает политику.
| Ответственность | Agent Harness | Agent Framework | MCP |
|---|---|---|---|
| Цикл выполнения | Владеет: Фиксированный цикл, лимиты ходов, компактизация. | Владеет скелетом: Вы настраиваете завершение, передачу контекста. | Нет: Только запрос/ответ. |
| Состояние и память | Владеет: Сессии, восстановление, форки, чекпоинты файлов. | Предоставляет: Чекпоинтеры, хранилища сессий, thread IDs. | Нет на уровне протокола (с 28.07.2026). |
| Транспорт инструментов | Потребляет: Встроенные инструменты + MCP клиент. | Потребляет: Function tools + MCP клиент. | Владеет: JSON-RPC 2.0 (stdio/Streamable HTTP). |
| Права и одобрение | Владеет: Режимы разрешений, хуки, песочница. | Предоставляет: Guardrails, прерывания, middleware. | Делегирует хосту: Не может enforcing. |
| Восстановление | Владеет: Resume сессий, откат чекпоинтов. | Предоставляет: Durable execution, replay, retries. | Частично: Tasks extension для долгих вызовов. |
| Изоляция | Владеет: OS sandbox, worktrees, контейнеры. | Опционально: Хостовые песочницы или micro-VMs. | Нет. |
02Кто владеет циклом выполнения (Execution Loop)?
Каждый агент работает в цикле: отправить контекст модели, прочитать ответ, выполнить вызовы инструментов, вернуть результаты, повторить. Harness и Framework реализуют этот цикл, но с разной степенью контроля.
Цикл Harness
Claude Agent SDK документирует цикл как 5 шагов: получить промпт, оценить и ответить, выполнить инструменты, повторить, вернуть результат. Каждый полный цикл — это один ход (turn). Цикл заканчивается, когда Claude выдает ответ без вызовов инструментов. Хуки могут перехватывать, изменять или блокировать вызовы инструментов до их запуска. Сам цикл переписать нельзя. OpenAI Codex harness также экспонирует цикл через app-server, где приложения создают потоки, запускают ходы и обрабатывают запросы на одобрение.
Цикл Framework
OpenAI Agents SDK завершает цикл при финальном выводе. Он перезапускается при handoff или выполняет вызовы инструментов и продолжает. Превышение max_turns вызывает ошибку MaxTurnsExceeded. В LangGraph цикл — это то, что вы нарисовали: узлы, ребра и условная маршрутизация определяют поток управления.
MCP
MCP не имеет цикла. Начиная с спецификации от 28.07.2026, в нем даже нет рукопожатия (handshake). Обмен initialize и заголовок Mcp-Session-Id были удалены. Каждый запрос идет отдельно, неся версию протокола и возможности клиента в _meta. Хост решает, когда вызывать tools/call. MCP определяет только формат вызова на шине.
03Кто владеет состоянием (State)?
В Harness состояние живет внутри системы и сохраняется между сессиями. Claude Agent SDK поддерживает сессии, которые можно возобновить или форкнуть. Поддерживается File checkpointing для восстановления файлов до любого предыдущего состояния. Microsoft’s harness слой поставляется с FileMemoryProvider для заметок в рамках сессии и автоматической компактизации контекста, которая отслеживает использование токенов в середине цикла.
Фреймворки предоставляют примитивы состояния, но не определяют политику сохранения. LangGraph’s durable execution требует подключения чекпоинтера и передачи thread ID. Доступно 3 режима долговечности:
exit: сохраняет только при выходе графа.async: пишет во время выполнения следующего шага.sync: пишет перед каждым шагом. Ошибка выбора может привести к потере состояния при сбое.
OpenAI Agents SDK предлагает Sessions для автоматической истории разговора с бэкендами SQLite, SQLAlchemy и зашифрованными хранилищами.
04Кто владеет транспортом инструментов (Tool Transport)?
Это единственная строка, где MCP владеет всем полностью. MCP определяет 3 серверные примитивы: инструменты (функции), ресурсы (контекст и данные) и промпты (шаблонные рабочие процессы). Клиенты могут предлагать elicitation, позволяя серверу запрашивать больше ввода у пользователя.
Транспорт — это JSON-RPC 2.0 поверх stdio или Streamable HTTP. В ревизии 28.07.2026 заголовки Mcp-Method и Mcp-Name стали обязательными для HTTP-запросов. Это позволяет шлюзам и ограничителям частоты маршрутизировать запросы по заголовкам без парсинга тела. Также tools/list ответы стали кэшируемыми с ttlMs и cacheScope. Легкий HTTP+SSE транспорт устарел с 12-месячным периодом отключения.
Серверные инициативы sampling, roots и logging теперь устарели. Их замена — Multi Round-Trip Requests (MRTR). Сервер возвращает resultType: "input_required", и клиент повторяет исходный вызов с прикрепленными ответами.
05Кто владеет правами (Permissions)?
Спецификация MCP однозначна: хосты должны получать явное согласие пользователя перед вызовом любого инструмента. Описания инструментов должны считаться ненадежными, если сервер не доверен. Ключевая фраза: «MCP сам по себе не может обеспечивать эти принципы безопасности на уровне протокола». Права принадлежат хосту.
Harness владеет моделью разрешений от и до. Claude Code поставляется с 6 режимами разрешений: default, acceptEdits, plan, auto, dontAsk и bypassPermissions. Правила запрета блокируют во всех режимах, кроме bypassPermissions, который пропускает слой разрешений. Режим auto маршрутизирует каждый вызов инструмента через фоновый классификатор. Хуки добавляют пользовательскую логику в точках PreToolUse и PermissionRequest.
Framework дает хук, а не политику. OpenAI Agents SDK имеет входные, выходные и инструментальные guardrails, а триггер останавливает запуск. LangGraph использует interrupt() внутри узла для паузы на одобрение и Command(resume=...) для продолжения. Microsoft Agent Framework добавляет middleware ToolApprovalAgent с правилами «не спрашивать снова».
06Кому подойдёт / что запустится
- Agent Harness (Claude Code, OpenAI Codex): Идеально для пользователей, которым нужен готовый, безопасный и изолированный агент «из коробки» с жестким контролем безопасности и песочницей. Не требует глубокой настройки цикла.
- Agent Framework (LangGraph, OpenAI Agents SDK, Microsoft Agent Framework): Подходит разработчикам, которым нужна гибкость в построении сложных графов, кастомных циклов и интеграции с различными бэкендами памяти. Требует самостоятельной реализации политик безопасности и восстановления.
- MCP (Model Context Protocol): Необходим для стандартизации взаимодействия между хостами (агентами) и серверами инструментов. Не является исполняемой средой, но является обязательным слоем для совместимости инструментов в экосистеме. Поддерживается почти всеми крупными SDK (Python, TypeScript) с миллиардными загрузками.
Для локального развертывания в РФ или при работе с ограниченным VRAM обратите внимание, что Harness-решения часто более оптимизированы под управление контекстом «из коробки», тогда как Framework-решения требуют ручной настройки чекпоинтинга для экономии памяти при длительных сессиях.
Источник: MarkTechPost ↗