Agent Harness проти Agent Framework проти MCP: який рівень відповідає за цикл, стан, інструменти, дозволи та відновлення
Harness, фреймворк і MCP використовуються як взаємозамінні поняття в обговореннях архітектури агентів. Це не одне й те саме. Вони розташовані на різних рівнях, відповідають за різні компоненти й дедалі більше перетинаються на межах. Ця стаття розмежовує їх за допомогою 1 запитання. Який рівень відповідає за цикл виконання, стан, транспортування інструментів, дозволи та відновлення?
3 категорії
- Harness агента: Harness — це система виконання, яка обгортає модель і перетворює її на повноцінного агента. У публікації OpenAI Codex як платформа (19 серпня 2026 року) це визначено безпосередньо. Harness керує станом розмови, транслює виконання та використовує інструменти. Він також застосовує політики пісочниці й погоджень та переносить роботу між ходами. У документації Anthropic щодо Claude Code це саме названо agentic harness. Claude Agent SDK надає «ті самі інструменти, цикл агента й керування контекстом, які забезпечують роботу Claude Code». Harness є концептуально визначеним. Він постачається як єдиний компонент із циклом, моделлю дозволів, пісочницею та стратегією роботи з контекстом.
- Фреймворк агента: Фреймворк — це бібліотека примітивів для компонування агентів. Він охоплює клієнти моделей, абстракції інструментів, оркестрацію графів, інтерфейси пам’яті та хуки спостережуваності. Приклади включають LangGraph, OpenAI Agents SDK і Microsoft Agent Framework, який досяг статусу 1.0 GA у квітні 2026 року. Фреймворк надає вам складові та каркас циклу. Політику визначаєте ви.
- MCP: Model Context Protocol — це протокол обміну даними, а не середовище виконання. Він стандартизує спосіб, у який застосунок на основі LLM (хост) виявляє та викликає можливості, надані серверами: інструменти, ресурси й підказки. MCP використовує повідомлення JSON-RPC 2.0 між хостами, клієнтами та серверами. Із грудня 2025 року ним керує Agentic AI Foundation Linux Foundation разом із goose, AGENTS.md і тепер A2A. MCP не відповідає за цикл і стан агента. Він відповідає за контракт між агентом та його інструментами.
Матриця відповідальності
Таблиця зіставляє кожну відповідальність із рівнем, який за замовчуванням нею володіє. «Володіє» означає, що рівень визначає та забезпечує відповідну поведінку. «Надає» означає, що рівень відкриває хук, але не визначає політику.
| Відповідальність | Harness агента | Фреймворк агента | MCP |
|---|---|---|---|
| Цикл виконання | Володіє: Фіксований цикл виробничого рівня з обмеженнями ходів і стисканням. | Володіє каркасом: Ви налаштовуєте завершення, передачу керування та обмеження ходів. | Відсутній: Лише запит/відповідь. |
| Стан і пам’ять агента | Володіє: Сесії, відновлення, розгалуження, контрольні точки файлів. | Надає: Чекпойнтери, сховища сесій, ідентифікатори потоків. | Відсутній на рівні протоколу починаючи з 2026-07-28. |
| Транспортування інструментів | Використовує: Вбудовані інструменти та клієнт MCP. | Використовує: Функціональні інструменти та клієнт MCP. | Володіє: JSON-RPC через stdio або Streamable HTTP. |
| Дозволи та погодження | Володіє: Режими дозволів, хуки, пісочниця. | Надає: Захисні механізми, переривання, проміжне ПЗ. | Делегує хосту: Не може забезпечити. |
| Відновлення | Володіє: Відновлення сесії, перемотування чекпойнтів, стискання. | Надає: Надійне виконання, відтворення, повторні спроби. | Частково: Розширення Tasks для довготривалих викликів. |
| Ізоляція та пісочниця | Володіє: Пісочниця ОС, робочі дерева, контейнери. | Необов’язково: Розміщені пісочниці або мікровіртуальні машини. | Відсутні. |
| Оркестрація кількох агентів | Володіє шаблонами: Підлеглі агенти, динамічні робочі процеси. | Володіє примітивами: Графи, передача керування, паралельний запуск. | Відсутня: A2A охоплює взаємодію агентів. |
Далі в цій статті кожен рядок обґрунтовано за допомогою джерел.
Хто відповідає за цикл виконання
Кожен агент працює в циклі. Передати контекст моделі, прочитати відповідь, виконати виклики інструментів, передати результати назад і повторити. І harness, і фреймворк реалізують цей цикл. Вони відрізняються тим, наскільки сильно ви можете ним керувати.
- Цикл harness: Claude Agent SDK описує свій цикл у 5 кроках. Отримати запит, оцінити його та відповісти, виконати інструменти, повторити, повернути результат. Кожен повний цикл є 1 ходом, а цикл завершується, коли Claude генерує відповідь без викликів інструментів. Хуки можуть перехоплювати, змінювати або блокувати виклики інструментів до їх виконання. Сам цикл не можна переписати на власний розсуд. Harness Codex відкриває цикл через app-server — документований протокол клієнта. Застосунки створюють потоки, запускають ходи, отримують події та обробляють запити на погодження.
- Цикл фреймворку: Цикл OpenAI Agents SDK завершується на фінальному результаті. Він запускається знову після передачі керування або виконує виклики інструментів і продовжується. Перевищення
max_turnsвикликаєMaxTurnsExceeded, а спрацювання захисного механізму викликаєGuardrailTripwireTriggered. У LangGraph цикл є таким, яким ви його намалюєте у графі. Вузли, ребра та умовна маршрутизація визначають потік керування. - MCP: MCP не має циклу. Починаючи зі специфікації 2026-07-28, він навіть не має рукостискання. Обмін
initialize/initializedі заголовокMcp-Session-Idскасовано. Кожен запит надсилається окремо та містить версію протоколу й можливості клієнта в_meta. Цикл хоста вирішує, коли викликатиtools/call. MCP лише визначає вигляд цього виклику в мережі.
Хто відповідає за стан
- Harness: Стан зберігається в harness і зберігається між сесіями. Claude Agent SDK підтримує сесії, які можна пізніше відновити або розгалузити. Контрольні точки файлів відновлюють файли до будь-якого попереднього стану. Рівень harness Microsoft постачається з
FileMemoryProviderдля нотаток у межах сесії та автоматичного стискання контексту, яке відстежує використання токенів під час циклу. Довготривала робота Anthropic над harness іде ще далі. Вона передає стан між вікнами контексту за допомогою артефактів на диску. Кожна нова сесія починається без пам’яті про попередню. - Фреймворк: Фреймворки надають примітиви стану, але не визначають політику збереження. Надійне виконання LangGraph вимагає підключити чекпойнтер і передати ідентифікатор потоку. Воно пропонує 3 режими надійності.
"exit"зберігає дані лише після завершення графа,"async"записує їх під час виконання наступного кроку, а"sync"записує їх перед кожним кроком. Якщо вибрати неправильний режим, збій під час виконання призведе до втрати стану. OpenAI Agents SDK пропонує Sessions для автоматичної історії розмов із бекендами SQLite, SQLAlchemy та шифрованими бекендами. - MCP: Випуск 2026-07-28 зробив ядро протоколу статeless. Вказівки розробників однозначні. Якщо серверу потрібен стан між викликами, створіть дескриптор за допомогою інструмента. Модель передає його назад як аргумент. Стан — проблема агента, а не протоколу.
Хто відповідає за транспортування інструментів
Це 1 рядок, яким MCP володіє безпосередньо.
MCP визначає 3 примітиви на стороні сервера: інструменти (функції, які виконує модель), ресурси (контекст і дані) та підказки (шаблонізовані робочі процеси). Клієнти можуть надавати elicitation, що дає серверу змогу запитувати додаткові дані від користувача. Транспорт — JSON-RPC 2.0 через stdio або Streamable HTTP. Редакція 2026-07-28 зробила заголовки Mcp-Method і Mcp-Name обов’язковими для HTTP-запитів. Тепер шлюзи та обмежувачі частоти можуть маршрутизувати запити за заголовками без аналізу тіл. Також відповіді tools/list стали кешованими за допомогою ttlMs і cacheScope, а застарілий транспорт HTTP+SSE було оголошено deprecated із 12-місячним перехідним періодом.
Ініційовані сервером sampling, roots і logging тепер також deprecated. Їх замінює Multi Round-Trip Requests (MRTR). Сервер повертає resultType: "input_required", а клієнт повторює початковий виклик із доданими відповідями. Це важливо для наведеного нижче рядка щодо дозволів.
Harness і фреймворки працюють поверх MCP як клієнти. Claude Code і Claude Agent SDK підключаються до серверів MCP. Вони також дають змогу визначати власні інструменти через внутрішньопроцесний сервер MCP. Codex підключається до серверів MCP, а приклад Relay від OpenAI вбудовує Codex поруч із панеллю керування, яку обслуговують інструменти MCP, що належать застосунку. Microsoft Agent Framework 1.0 постачається з підтримкою MCP і A2A. Протокол є спільною основою. Статистика впровадження це підтверджує. Розробники MCP повідомляють про майже пів мільярда завантажень SDK на місяць для SDK рівня Tier 1. TypeScript- і Python SDK кожен подолав позначку в 1 мільярд загальних завантажень.
Хто відповідає за дозволи
Специфікація MCP однозначна в цьому питанні. Хости повинні отримати явну згоду користувача перед викликом будь-якого інструмента. Описи й анотації інструментів слід вважати ненадійними, якщо сервер не є довіреним. І ось ключове речення: «Сам MCP не може забезпечити дотримання цих принципів безпеки на рівні протоколу». Дозволи належать хосту.
Harness: Harness відповідає за модель дозволів від початку до кінця. Claude Code постачається з 6 режимами дозволів: default, acceptEdits, plan, auto, dontAsk і bypassPermissions. Правила заборони блокують дії в кожному режимі, крім bypassPermissions, який повністю обходить рівень дозволів. Режим auto спрямовує кожен виклик інструмента через фоновий класифікатор. Хуки додають власну логіку в точках PreToolUse і PermissionRequest. Codex має таку саму структуру. App-server може призупинити хід і надіслати запит на погодження, на який cлієнт має відповісти до продовження роботи.
Фреймворк: Фреймворки надають вам хук, а не політику. OpenAI Agents SDK має захисні механізми для вхідних даних, вихідних даних та інструментів, а tripwire зупиняє виконання. LangGraph використовує interrupt() усередині вузла, щоб призупинити виконання для погодження, і Command(resume=...) для продовження. Microsoft Agent Framework додає проміжне ПЗ ToolApprovalAgent із правилами «більше не запитувати». У кожному випадку ви пишете логіку погодження та інтерфейс.
MCP: MCP тепер передає запит на погодження через мережу за допомогою elicitation через MRTR. Наприклад, Supabase планує використовувати це, щоб інструменти могли підтвердити вартість або руйнівний запит перед виконанням. Сервер може запитати. Вирішувати може лише хост.
Хто відповідає за відновлення
Harness: Саме тут harness виправдовує своє використання. Claude Agent SDK може відновити сесію та перемотати зміни файлів до контрольної точки. Він стискає контекст, коли вікно заповнюється. Динамічні робочі процеси Claude Code відновлюються з місця зупинки, якщо термінал закрито. У публікації Anthropic про проєктування harness (березень 2026 року) генератор відокремлено від агента-оцінювача, оскільки робота, оцінена самою системою, має позитивне викривлення. Публікація OpenAI про harness від лютого 2026 року демонструє результат цієї дисципліни. Codex створив приблизно 1 500 об’єднаних pull request за 5 місяців. Репозиторій досяг близько 1 мільйона рядків коду. Команда зросла з 3 до 7 інженерів, у середньому виконуючи 3,5 PR на інженера на день. OpenAI також повідомляє про вплив harness на ARC-AGI-3. Збереження міркувань і стискання контексту підвищили показник GPT-5.6 Sol із 13,3% до 38,3%, одночасно скоротивши кількість вихідних токенів у 6 разів . Та сама модель, інший harness, інший результат.
Фреймворк: Надійне виконання LangGraph прямо вказує, що відновлення залежить від детермінізму. Обгорніть побічні ефекти в завдання, зберігайте вузли ідемпотентними, і виконання можна буде відновити через тиждень. OpenAI Agents SDK надає error_handlers і зберігає результати вже виконаних захисних перевірок у разі збою. Фреймворк повторює виконання. Ви робите повтор безпечним.
MCP: Відповіддю MCP на довготривалу роботу є розширення io.modelcontextprotocol/tasks, надане AWS, із методами tasks/get і tasks/update на основі опитування. Це охоплює один довготривалий виклик інструмента. Відновлення на рівні агента сюди не входить.
Порівняння архітектур
+------------------------------------------+
Застосунок | Ваш продукт: інтерфейс, записи, бізнес- |
| правила, процеси згоди |
+------------------------------------------+
| |
v v
Рівень виконання +----------------+ +-----------------------+
(виберіть один | HARNESS АГЕНТА | | ФРЕЙМВОРК АГЕНТА |
або поєднайте) | фіксований | | компонований цикл |
| цикл | | чекпойнтери |
| сесії | | захисні механізми/ |
| дозволи | | переривання |
| пісочниця | | графи, передача |
| стискання | | керування |
+----------------+ | проміжне ПЗ, |
| | трасування |
| +-----------------------+
| |
+----------+----------+
v
Транспортний +------------------------------------------+
рівень | MCP (JSON-RPC 2.0, stdio / Streamable |
| HTTP): інструменти, ресурси, підказки, |
| elicitation, розширення Tasks |
+------------------------------------------+
|
v
Рівень +------------------------------------------+
можливостей | Сервери MCP: GitHub, Figma, Supabase, |
| Sentry, Linear, внутрішні API |
+------------------------------------------+
OpenAI малює майже ідентичну картину для Relay. Застосунок відповідає за контекст продукту, бізнес-правила та інструменти. Codex app-server надає цикл агента й виконання в пісочниці.
Де категорії перетинаються
Межі розмиваються у 3 напрямках:
- Фреймворки поглинають harness: Microsoft Agent Framework тепер постачається з рівнем «Agent Harness». Він перетворює будь-який клієнт чату на повноцінний harness за допомогою 1 виклику методу. Він включає стискання контексту, файлову пам’ять, провайдер списку завдань і режими планування та виконання. Також він додає фонових підлеглих агентів і виконання командної оболонки в пісочниці. Microsoft описує harness як «рівень, де міркування моделі зустрічається з реальним виконанням». Постачальник фреймворку визнає, що самих необроблених примітивів недостатньо.
- Harness стають платформами: OpenAI відкрила код harness Codex і тепер пропонує 3 рівні інтеграції.
codex execзапускає обмежені завдання, Codex SDK надає програмний контроль, а app-server вбудовує цикл у продукт. Claude Agent SDK від Anthropic робить те саме для Claude Code. DeepSeek випустила DeepSeek Harness v0.1 13 серпня 2026 року за ліцензією MIT. Його основна ідея полягає в тому, що кожен компонент, зокрема цикл, є плагіном. Коли harness стає бібліотекою з документованим протоколом, він конкурує з фреймворками. - MCP набуває функцій, орієнтованих на агентів: Elicitation, MRTR, розширення Tasks, Skills over MCP і MCP Apps розширюють протокол. Це шаблони взаємодії, які раніше належали середовищу виконання. Однак розробники провели межу. Roots, sampling і logging оголошено deprecated, а ядро тепер працює за моделлю запит/відповідь. MCP стандартизує інтерфейс, а не стає агентом.
Єдиний термін, який не перетинається: A2A. Взаємодія агентів є окремим протоколом, який тепер також перебуває під управлінням Agentic AI Foundation. MCP з’єднує агента з інструментами. A2A з’єднує агента з іншими агентами.
Як зібрати стек
Рішення зводиться до 3 запитань:
- Ви хочете володіти циклом? Почніть із фреймворку, якщо вам потрібен власний потік керування або граф, який можна тестувати вузол за вузлом. LangGraph, OpenAI Agents SDK і Microsoft Agent Framework дають змогу формувати цикл. Будьте готові самостійно написати політику дозволів, політику збереження та пісочницю.
- Вам потрібен перевірений цикл із вбудованими дозволами та відновленням? Harness допоможе швидше просунутися, коли завдання нагадує програмування, операційну роботу або дослідження. Claude Agent SDK і Codex app-server постачають сесії, погодження, пісочниці та стискання як стандартні можливості. Ви обмінюєте контроль над циклом на виробничу поведінку. Власні показники OpenAI демонструють, що проєктування harness може змінювати результати бенчмарків на 25 пунктів для тієї самої моделі.
- Які інструменти потрібні агенту? Незалежно від рівня вище, відповідь — MCP. Його підтримують кожен harness і кожен основний фреймворк. Статeless-ядро 2026-07-28 означає, що віддалений сервер MCP тепер є звичайним HTTP-навантаженням за балансувальником. Створіть поверхню інструментів один раз і повторно використовуйте її в різних середовищах виконання.
- Поширеною виробничою архітектурою наприкінці 2026 року є гібридна модель. Фреймворк оркеструє зовнішній граф. Harness запускає кожен складний крок у власній пісочниці. MCP передає кожен виклик інструмента. Категорії є рівнями, а не конкурентами.
Ключові висновки
- Harness володіє циклом, станом, дозволами та відновленням як 1 концептуально визначений компонент.
- Фреймворк відкриває ті самі хуки, але залишає політику, збереження та створення пісочниці вам.
- MCP відповідає лише за транспортування інструментів і зазначає, що не може забезпечити згоду на рівні протоколу.
- Фреймворки тепер постачають рівні harness, а harness постачають SDK, тому межа між ними зближується.
- Збирайте систему за рівнями: фреймворк або harness для циклу, MCP — для кожного виклику інструмента.
Джерела
- Model Context Protocol, Специфікація 2026-07-28
- Блог MCP, Специфікація 2026-07-28 (28 липня 2026 року)
- Блог MCP, Нова дорожня карта MCP (22 серпня 2026 року)
- Linux Foundation, Створення Agentic AI Foundation (9 грудня 2025 року)
- Linux Foundation, AAIF запускає сертифікацію MCPA (вересень 2026 року)
- OpenAI, Розробка harness: використання Codex у світі, орієнтованому на агентів (11 лютого 2026 року)
- OpenAI Developers, Codex як платформа: створюйте на основі відкритого harness агента (19 серпня 2026 року)
- OpenAI, документація Codex app-server і Codex SDK
- OpenAI Agents SDK, Запуск агентів, Захисні механізми, Сесії
- Anthropic, Огляд Claude Agent SDK, Як працює цикл агента, Хуки, Сесії, Контрольні точки файлів
- Anthropic, Режими дозволів Claude Code
- Anthropic Engineering, Ефективні harness для довготривалих агентів (листопад 2025 року)
- Anthropic Engineering, Проєктування harness для розробки довготривалих застосунків (24 березня 2026 року)
- Anthropic Engineering, Виконання коду за допомогою MCP (4 листопада 2025 року)
- Блог Claude, Harness для кожного завдання: динамічні робочі процеси в Claude Code (2 червня 2026 року)
- Microsoft, Microsoft Agent Framework версії 1.0 (квітень 2026 року)
- Microsoft, Microsoft Agent Framework на BUILD 2026: Agent Harness, Hosted Agents, CodeAct (3 червня 2026 року)
- LangChain, Надійне виконання LangGraph і Переривання
- DeepSeek, DeepSeek Harness (13 серпня 2026 року)
Перекладено автоматично з англійської. Оригінал статті — за посиланням нижче.