Инструменты15 сентября 2026 г., 02:17 МСК🤖 Auto

Agent Harness vs Framework vs MCP: Кто за что отвечает в архитектуре AI

Разбор архитектуры агентов: почему путать Harness, Framework и MCP опасно. Разбор зон ответственности за цикл выполнения, состояние, инструменты и безопасность.

Баннер новости 7492

Суть проблемы: три слоя, одна экосистема

В обсуждениях Agentic AI термины Agent Harness, Agent Framework и MCP часто используются как синонимы, но архитектурно они находятся на разных уровнях и отвечают за разные вещи. Разделение критически важно для разработчиков, так как от выбора слоя зависит контроль над безопасностью, состоянием и логикой выполнения.

  • Agent Harness (Каркас выполнения): Готовая система, оборачивающая модель в работающего агента. Примеры: OpenAI Codex, Anthropic Claude Agent SDK. Это «продуктовое» решение с жесткой логикой.
  • Agent Framework (Библиотека примитивов): Набор инструментов для сборки агентов «с нуля». Примеры: LangGraph, OpenAI Agents SDK, Microsoft Agent Framework (версия 1.0 GA от апреля 2026 года). Дает «скелет», но политику вы пишете сами.
  • MCP (Model Context Protocol): Протокол связи (wire protocol), а не среда выполнения. Стандарт де-факто для взаимодействия LLM с внешними инструментами. Управляет контрактом между агентом и инструментами, но не хранит состояние.

Матрица ответственности: кто владеет чем?

Ключевой вопрос архитектуры: какой слой владеет (Owns) или просто предоставляет (Exposes) функциональность. Ниже приведена сводная таблица распределения ответственности по ключевым аспектам.

Ответственность Agent Harness Agent Framework MCP
Цикл выполнения (Loop) Owns: Фиксированный цикл с лимитами и сжатием контекста. Owns skeleton: Вы настраиваете условия выхода и передачи управления. None: Только запрос-ответ.
Состояние и память Owns: Сессии, восстановление, форки, чекпоинты файлов. Exposes: Чекпоинтеры, хранилища сессий, ID потоков. None: Протокол без состояния (с июля 2026).
Транспорт инструментов Consumes: Встроенные инструменты + клиент MCP. Consumes: Function tools + клиент MCP. Own: JSON-RPC 2.0 (stdio/HTTP).
Разрешения (Permissions) Owns: Режимы разрешений, хуки, песочница. Exposes: Guardrails, прерывания, middleware. Delegates: Не может enforcing на уровне протокола.
Восстановление (Recovery) Owns: Resume сессий, откат чекпоинтов. Exposes: Durable execution, replay, ретраи. Partial: Расширение задач для долгих вызовов.
Изоляция Owns: OS sandbox, worktrees, контейнеры. Optional: Хостовые песочницы или micro-VM. None.

Детальный разбор: Цикл выполнения и Состояние

Цикл выполнения (Execution Loop): Каждый агент работает в цикле: отправка контекста -> ответ модели -> выполнение инструментов -> повтор.
- Harness (например, Claude Agent SDK) имеет жестко заданный цикл из 5 шагов. Цикл завершается, когда модель не вызывает инструменты. Переписать сам цикл нельзя, можно только использовать хуки для перехвата.
- Framework (например, LangGraph) позволяет рисовать графы. Вы сами определяете узлы, ребра и условия маршрутизации. В OpenAI Agents SDK цикл прерывается при превышении max_turns или срабатывании guardrails.
- MCP не имеет цикла. С июля 2026 года спецификация убрала даже handshake (обмен Mcp-Session-Id). Каждый запрос независим.

Состояние (State):
- Harness владеет состоянием сессий. Например, Microsoft Agent Framework использует FileMemoryProvider для автоматического сжатия контекста при мониторинге токенов. Anthropic поддерживает передачу состояния между контекстными окнами через артефакты на диске.
- Framework предоставляет примитивы. В LangGraph нужно явно подключить чекпоинтер и выбрать режим долговечности: exit (сохранение при выходе), async (во время следующего шага) или sync (перед каждым шагом). Ошибка в выборе ведет к потере данных при сбое.
- MCP стал полностью stateless. Если серверу нужно состояние, он выдает «handle», которое модель должна вернуть как аргумент в следующем вызове.

Инструменты, Безопасность и Будущее MCP

Транспорт инструментов: Это единственная область, где MCP является абсолютным владельцем. Он определяет три примитива: tools, resources и prompts. Протокол использует JSON-RPC 2.0. Важное изменение в спецификации от 28.07.2026: заголовки Mcp-Method и Mcp-Name стали обязательными для HTTP, что позволяет шлюзам маршрутизировать запросы без парсинга тела. Также deprecated устаревший HTTP+SSE транспорт.

Безопасность и Разрешения: MCP прямо заявляет: «MCP сам по себе не может обеспечивать эти принципы безопасности на уровне протокола». Ответственность за явное согласие пользователя лежит на хосте (Harness или Framework). Harness (как Claude Code) внедряет песочницы и модели разрешений на уровне ОС. Framework предоставляет хуки (guardrails), но политика остается за разработчиком.

Адоптация: Несмотря на архитектурные различия, MCP становится общим знаменателем. По данным создателей протокола, загрузка SDK достигает ~500 млн в месяц, а суммарные загрузки TypeScript и Python SDK превысили 1 миллиард. Microsoft Agent Framework 1.0, OpenAI Codex и Anthropic Claude SDK все интегрируют MCP как слой коммуникации с инструментами.

Источник: MarkTechPost ↗