Agentic Engineering

Апрель 2026 · @llm_notes · На основе верифицированных источников

Обвязка агента: почему инфраструктура важнее модели

Семь инженеров. Пять месяцев. Один миллион строк кода. Ни одной написанной человеком. Это не фантастика — это эксперимент OpenAI, опубликованный в феврале 2026. И главный вывод там не про модель. Про то, что её окружает.

Пока все обсуждают, какая модель лучше — GPT или Claude — продвинутые команды тихо строят то, что на самом деле определяет результат. Agent harness (по-русски точнее всего — обвязка агента) — полная инфраструктура вокруг LLM, превращающая stateless языковую модель в автономно работающего агента.

Термин формализован в начале 2026 года, хотя практики строили это годами. Канонический рецепт от LangChain: «Если ты — не модель, значит, ты — обвязка.» [1]

+25
позиций в TerminalBench 2.0 при замене только обвязки — модель та же
76.4%
pass rate при автооптимизации обвязки алгоритмом Meta-Harness (arxiv, март 2026)
$2B
заплатила Meta за Manus в декабре 2025 — не за модель, за обвязку

Три эпохи инженерии с LLM

Отрасль прошла три волны за четыре года. Каждая следующая не отменяла предыдущую — поглощала её.

2022–2024
Prompt EngineeringПравильные слова в правильном порядке. Один запрос — один ответ. Работало для простых задач.
2025
Context EngineeringТермин ввёл Андрей Карпати, развил Anthropic. Не «правильные слова», а «правильная конфигурация контекста в каждый момент времени». Agents в петле, RAG, memory-файлы. [2]
2026
Harness EngineeringТермин кристаллизовал Митчелл Хашимото. Включает оба уровня плюс всю инфраструктуру: оркестрацию, состояние, ошибки, верификацию, безопасность. «Агенты — не сложно. Обвязка — сложно.» — Ryan Lopopolo, OpenAI. [3]

Обвязка — это операционная система

Аналогия Берена Миллиджа из эссе 2023 года до сих пор самая точная. [4] Сырой LLM — процессор без RAM, без диска, без I/O. Обвязка — операционная система, которая делает его полезным.

КОМПЬЮТЕР
LLM-АГЕНТ
CPU
Веса модели (LLM)
RAM
Контекстное окно
Жёсткий диск
Vector DB / Долгая память
Драйверы устройств
Интеграции инструментов
Операционная система
ключевой уровень
Agent Harness (обвязка)
← ключевой уровень

Сырой LLM — процессор без операционной системы. Обвязка делает его полезным.

Meta-Harness: обвязку можно оптимизировать автоматически

Исследование Meta-Harness (arxiv, март 2026) показало: алгоритм, который сам ищет оптимальную обвязку для LLM, превзошёл все hand-designed системы. На text classification — плюс 7.7 пунктов при 4× меньшем расходе токенов. На TerminalBench-2 с Claude Opus 4.6 достиг 76.4% pass rate, заняв второе место в общем зачёте. На задачах уровня IMO — плюс 4.7 пунктов точности в среднем по пяти моделям, причём использованная обвязка работала на моделях, которых алгоритм никогда не видел. Предложенная оценка: харнес теперь можно не только строить, но и искать. [5]

Анатомия production-обвязки: 13 слоёв

Обвязка — не монолит. Это стопка независимых слоёв, каждый из которых решает одну проблему. Вот что реально стоит за агентом в production. [7]

Управление исполнением
01Петля оркестрации

Сердцебиение системы. Цикл Thought-Action-Observation. Механически — простой while. Anthropic называет это «dumb loop»: вся интеллект — в модели, обвязка лишь управляет ходами. Сложность не в самой …

02Сборка промпта

То, что модель видит при каждом вызове, собирается заново: system prompt, определения инструментов, memory-файлы, история диалога, текущий запрос. Порядок имеет значение — принцип «Lost in the Middle»…

03Парсинг вывода

Production-обвязки используют native tool calling: модель возвращает структурированный объект tool_calls, не free-text для парсинга. LangChain и OpenAI поддерживают Pydantic-схемы для structured out…

Инструменты и память
04Tool Layer

Интерфейс агента с внешним миром. Регистрация схем, валидация аргументов, sandbox-выполнение, захват результатов, форматирование обратно в LLM-readable наблюдения. Читающие операции можно запускать па…

05Memory System

Работает на трёх горизонтах. In-session: история текущего диалога. Cross-session: Anthropic использует CLAUDE.md и MEMORY.md, LangGraph — JSON Stores по namespace, OpenAI — SQLite или Redis. Структури…

06Управление контекстом

Самое незаметное место гибели агентов. Context rot: производительность падает на 30%+ когда ключевой контент попадает в середину окна. Даже миллионные окна не спасают — деградация instruction-followin…

Надёжность и контроль
07State Management

Как обвязка помнит, что было сделано, при авариях и перезапусках. LangGraph: typed dict + checkpoint на каждом super-step, time-travel debugging. Claude Code: git commits как checkpoints плюс `claude-…

08Error Handling

Компаундирование делает его критичным: 10 шагов с 99% успехом дают 90.4% end-to-end, а 20 шагов — уже 82%. LangGraph различает четыре класса: transient (retry с backoff), LLM-recoverable (вернуть ошиб…

09Verification Loops

Разрыв между демо и production. Борис Черны (создатель Claude Code): verification loop даёт +2–3× качества. Два режима: computational (тесты, линтеры, type checkers — детерминированная истина) и infer…

10Guardrails & Safety

Разделение полномочий. Модель решает, что попробовать; tool system решает, что разрешено. OpenAI SDK: три уровня (input → output → tool). Механизм tripwire мгновенно останавливает агента при срабатыва…

Масштабирование и экономика
11Subagent Orchestration

Горизонтальное масштабирование задач. Claude Code поддерживает три модели: Fork (байт-идентичная копия родительского контекста), Teammate (отдельная панель терминала с file-based mailbox), Worktree (с…

12Model Routing

Один из самых недооценённых компонентов. Не каждый шаг требует frontier-модели. HumanLayer описывают практику: Opus для planning и orchestration (тяжёлое reasoning), Sonnet для implementation, Haiku д…

13Lifecycle Management & Observability

Агент в production — не request-response функция, а долгоживущий процесс. Health checks: агент ещё делает прогресс или завис в петле? Resource limits: максимум токенов на задачу, максимальное wall-clo…

McKinsey: 80% времени реализации agentic AI уходит на data engineering и governance — не на конфигурацию фреймворков или выбор модели. Обвязка без верифицированных входных данных — это контроль над тем, что произошло, без понимания почему.

Карта компонентов: для закрепления

13 слоёв production-обвязки — структура одним взглядом

УПРАВЛЕНИЕ ИСПОЛНЕНИЕМ
01Петля оркестрации
while-loop · «dumb loop» · TAO-цикл
02Сборка промпта
system · tools · memory · history · Lost in Middle
03Парсинг вывода
tool_calls · Pydantic · RetryWithErrorOutputParser
ИНСТРУМЕНТЫ И ПАМЯТЬ
04Tool Layer
регистрация · sandbox · −80% инструментов → лучше
05Memory System
in-session · cross-session · CLAUDE.md · scratchpad
06Управление контекстом
context rot −30% · compaction · masking · JIT retrieval
НАДЁЖНОСТЬ И КОНТРОЛЬ
07State Management
git commits · progress.txt · LangGraph checkpoints
08Error Handling
20 шагов×99% = 82% · 4 класса · Stripe: max 2 retry
09Verification Loops
+2–3× качества · computational + inferential
10Guardrails & Safety
~40 capabilities · tripwire · 3 стадии
МАСШТАБИРОВАНИЕ И ЭКОНОМИКА
11Subagent Orchestration
Fork · Teammate · Worktree · handoffs
12Model Routing
Opus→plan · Sonnet→impl · Haiku→grep · −60% cost
13Lifecycle & Observability
8–15 спанов/вызов · OpenTelemetry gen_ai.*

Один оборот петли: что происходит изнутри

Шаги одного цикла agent harnessШаг 1Сборка промптаsystem+tools+memory+historyШаг 2LLM ИнференсШаг 3Классификация выводанет tool calls ↓✓ Финальный ответесть tool calls ↓Шаг 4: Выполнение инструментоввалидация → sandbox → права → результатШаг 5: Упаковка результатовформатирование → ошибки как результатыШаг 6: Обновление контекстаappend history → compaction если нужноШаг 7Возврат

Петля проста механически; сложность — в инфраструктуре каждого шага

Выход из петли — многоуровневый: нет tool calls, исчерпан лимит ходов или токен-бюджет, сработал guardrail tripwire, пользователь прервал, вернулся safety refusal.

Что происходит, когда инженеры проектируют только обвязку

В феврале 2026 OpenAI опубликовали отчёт об эксперименте команды Frontier Products: 5 месяцев, 3 инженера с запретом писать код вручную, Codex-агенты в качестве исполнителей. Итог: ~1 000 000 строк кода, 1 500 pull requests, ни одной строки, написанной человеком — включая файл AGENTS.md, который написал сам агент. Throughput: 3.5 PR на инженера в день. Ключевой вывод: «Agents aren't hard; the Harness is hard.» [3]

Ralph Loop: преемственность через несколько контекстных окон

Для задач, которые не умещаются в одно контекстное окно, Anthropic разработал двухфазный паттерн. [7]

Initializer Agent устанавливает среду: init-скрипт, progress-файл, список фич, начальный git commit. Каждая последующая сессия читает git log и progress-файлы, берёт следующую незавершённую задачу, реализует, коммитит, пишет резюме. Файловая система — единственный источник истины между контекстными окнами.

OpenAI применяет похожую идею через AGENTS.md и строгую архитектурную слойность: Types → Config → Repo → Service → Runtime → UI. Нарушение слойности блокируется не документацией, а CI-тестами. Не «записано», а «принудительно исполнено».

MCP: стандартизация tool layer

Долгое время у каждой команды был свой способ подключать инструменты к агентам. В ноябре 2024 Anthropic выпустил Model Context Protocol (MCP) — открытый стандарт, аналог USB-C для AI-интеграций. [8]

Без MCP: N моделей × M инструментов = N×M интеграций. С MCP: один унифицированный интерфейс для всех.

97M
monthly SDK downloads к декабрю 2025
5 800+
MCP-серверов в экосистеме
4
крупных лаба приняли стандарт: Anthropic, OpenAI, Google, Microsoft
LF
передан Linux Foundation в декабре 2025 — нейтральное управление

В марте 2025 OpenAI официально принял MCP. В апреле — Google DeepMind. В декабре 2025 Anthropic передал протокол в Agentic AI Foundation (AAIF) под Linux Foundation — гарантия vendor-neutral развития наравне с Kubernetes и PyTorch. [9]

«Открытые технологии как MCP — это мосты, соединяющие AI с реальными приложениями, обеспечивая прозрачность и коллаборацию.»

— Dhanji R. Prasana, CTO Block

Главный архитектурный выбор: «обвязка» тонкая или толстая

Сколько логики кодировать явно, а сколько доверить модели — это не технический вопрос. Это философская ставка на то, как быстро модели умнеют.

Спектр толщины обвязки: thin vs thickТОНКАЯдоверяй моделиТОЛСТАЯкодируй контрольClaude SDK«dumb loop»OpenAI SDKcode-firstCrewAI Flowsроли + детерм. роутингLangGraphявный граф состоянийПо мере улучшения моделей → бар смещается влевоAnthropic регулярно удаляет шаги планирования из Claude Code с каждой новой версией

Толщина обвязки — это ставка: сколько доверять модели сейчас vs. кодировать явно

Коэволюция: обвязка и модель учатся друг у друга

Филипп Шмидт (Philipp Schmid, HuggingFace) описал в январе 2026 важный принцип: мы движемся к конвергенции тренировочной и inference-среды. Лаборатории начинают использовать обвязку как детектор «model drift» — отслеживают, на каком шаге (обычно после 100+) модель начинает деградировать. Эти данные идут напрямую в post-training следующей версии модели. Результат: модели становятся более стойкими к длинным задачам, а обвязки — тоньше. Обвязка сегодня — не просто инфраструктура, а источник обучающего сигнала. [10]

Сравнение production-обвязок: 9 систем

Рынок agent harness в 2026 году — это не просто «выбрать фреймворк». Это выбор архитектурной философии. Каждая система воплощает разные компромиссы между гибкостью, надёжностью и скоростью разработки.

ПараметрClaude CodeOpenAI Agents SDKLangGraphDeep AgentsCrewAIJunie CLIManusv0 (Vercel)OpenCode
АРХИТЕКТУРА
Тип агента
Coding agent, OS-level
[7]
General-purpose, multi-agent
[19]
Stateful workflow engine
[18]
Long-horizon planning
[20]
Role-based multi-agent
[22]
IDE coding assistant
[23]
General automation
[11]
UI generation (не agentic)
[6]
Coding agent, open-source
[29]
Петля оркестрации
«Dumb loop» + sub-agents; Fork/Teammate/Worktree
[7]
Runner loop; Agents-as-tools + Handoffs
[19]
Compiled state graph; super-step checkpoints
[18]
Planning + subagent spawning; write_todos
[20]
Crew + Flow; sequential/parallel/hierarchical
[22]
IDE-integrated; Air multi-agent env
[23]
Shell-first; management agents → handoffs
[11]
Single LLM call; нет петли
[6]
Event-driven JSONL; peer-to-peer agents
[29]
MCP поддержка
Model Context Protocol
Нативный
встроен с Claude 3.5+
[8]
Нативный
с марта 2025
[8]
Через плагин
langchain-mcp-adapters
[8]
Через плагин
через LangGraph
[20]
Через плагин
crewai-tools + MCP
[9]
Нативный
встроен в Junie
[23]
Частично
через shell tools
[11]
Нет
не agentic
[6]
Нативный
встроен
[29]
ПАМЯТЬ
Память cross-session
помнит ли между запусками
Да
CLAUDE.md + MEMORY.md + 3-уровневый индекс
[2]
Да
SQLite / Redis; 4 стратегии
[19]
Да
JSON Stores по namespace; SQLite checkpointer
[18]
Да
MemoryMiddleware через LangGraph Store
[20]
Частично
Flows — в рамках run; Memory class для cross-run
[22]
Нет
Сессионная; observation masking ≠ persistence
[23]
Да
Filesystem + git как внешняя память
[11]
Нет
Запрос-ответ без истории
[6]
Да
SQLite sessions + AGENTS.md; Letta-style memory blocks
[29]
Context Management
Compaction; JIT retrieval (grep/glob); 3-tier index; 95% сокращение
[2]
Compaction; AGENTS.md priority stack (32 KiB); progressive disclosure
[3]
Observation masking; structured notes; time-based clearing
[18]
Auto-summarization; file-offloading
[21]
Task-scoped context; sequential isolation
[22]
Observation masking: скрывает старые tool outputs
[2]
KV-cache priority; filesystem offload; todo.md в конце контекста
[11]
Минимальный; нет long-running
[6]
Compaction через configurable hook; /compact команда
[29]
НАДЁЖНОСТЬ
Error Handling
Ошибки как tool results; петля не ломается
[7]
Tripwire exceptions; retry логика в Runner
[19]
4 класса: transient / LLM-recoverable / user-fixable / unexpected; RetryPolicy
[18]
LoopDetection middleware; self-correction loop
[21]
Task-level retry; agent fallback
[22]
IDE build feedback интегрирован в цикл
[23]
Улучшалась с каждым рефакторингом
[11]
Stripe-паттерн: max 2 retry; быстрый fail
[6]
LSP diagnostics loop; undo file changes после tool error
[29]
Verification Loops
тесты, линтеры, LLM-as-judge
Computational (тесты) + inferential (LLM-judge); +2–3× качества
[12]
Guardrails как input/output validators; параллельный режим
[19]
Interrupt для human review; conditional routing
[18]
CI-тесты как enforcement; не документация
[3]
GuardrailEvents (с 2025); agent role constraints
[22]
IDE build + lint feedback в петле
[14]
Верификация через shell + state machines
[11]
Нет (UI generation)
[6]
LSP diagnostics; type-check loop встроен
[29]
Guardrails
~40 capabilities независимо; 3 стадии; модель ≠ enforcement
[7]
3 уровня: input / output / tool; tripwire; параллельный / блокирующий режим
[19]
Conditional routing; interrupt для human review
[18]
Middleware guards; LoopDetection
[21]
Agent role constraints; GuardrailEvents (с 2025)
[22]
IDE permissions; required safeguards
[23]
Shell execution + logit masking + state machines
[11]
Нет (UI generation, не agentic)
[6]
allow/deny/require-approval per tool; --dangerously-skip-permissions флаг
[29]
МАСШТАБИРОВАНИЕ
Multi-agent модель
Fork / Teammate / Worktree; sub-agent → 1–2k токенов резюме
[7]
Agents-as-tools + Handoffs; specialist берёт полное управление
[19]
Nested state graphs; subgraph composition
[18]
write_todos planning + subagent spawning
[21]
Role-based: Agent + Task + Crew; Flows для детерм. backbone
[22]
Junie CLI: subagents + Air multi-agent env
[23]
Management agents → simple handoffs
[11]
Нет
[6]
Event-driven messaging; JSONL append-only; peer-to-peer; Tab/@mention
[29]
Observability
трейсы, метрики, OpenTelemetry
Встроенный трейсинг; OpenTelemetry gen_ai.*
[13]
OpenAI Traces API; spans per tool call
[3]
LangSmith integration; step-level traces
[18]
LangSmith + custom callbacks
[21]
Агрегированные метрики через callbacks
[22]
IDE-integrated logs; нет внешних трейсов
[23]
Внутренние логи; нет публичного OTel
[11]
Vercel Analytics; нет agent-level трейсов
[6]
OpenTelemetry gen_ai.*; pluggable providers
[29]
Model Routing
Opus → planning; Sonnet → impl; Haiku → grep; prompt cache −90%
[7]
Per-agent model spec; model field в subagent
[19]
Per-node model config; LangChain router
[18]
Динамический роутинг через middleware
[21]
Per-agent LLM config; LiteLLM unified (100+ провайдеров)
[22]
BYOK: OpenAI, Anthropic, Google, Grok
[23]
Anthropic + OpenAI + другие; KV-cache приоритет
[11]
Один вызов модели
[6]
75+ провайдеров через AI SDK; per-agent model config; BYOK
[29]
ЭКОСИСТЕМА
Model dependency
Claude only[7]OpenAI (+ 100+ via API)[19]Model-agnostic[18]Model-agnostic[21]Model-agnostic
LiteLLM
[22]
LLM-agnostic
BYOK
[23]
Multi-provider
Anthropic + OpenAI + др.
[11]
Vercel AI SDK[6]Model-agnostic
75+ провайдеров; BYOK
[29]
Лучший для...
Coding agents, long-running tasks, OS-level access
[7]
Быстрый путь в production; triage → specialist паттерны
[19]
Сложные stateful workflows; crash recovery; enterprise
[18]
Long-horizon задачи с planning и subagent spawning
[21]
Multi-agent прототипирование; role-based collaboration
[22]
Coding assistance; multi-IDE workflows
[23]
General automation; production харнес как продукт
[11]
UI generation; не agentic использование
[6]
Model experimentation; multi-provider setups; open-source альтернатива Claude Code
[29]
лучший в классеотличительная чертанейтральныйограничение— на основе публичной документации и engineering-блогов, 2025–2026

10 архитектурных развилок при проектировании обвязки

Исследование практик 2025–2026 года выявляет десять ключевых развилок — каждая из которых определяет, получите вы production-систему или хорошо работающий демо.

Почему это временная инфраструктура

Строительные леса не строят здание. Но без них рабочие не поднимутся на верхние этажи. Как только здание готово — леса снимают.

Manus перестраивал обвязку пять раз за шесть месяцев — каждый раз убирая сложность. Сложные определения инструментов стали общим shell execution. «Management agents» стали простыми structured handoffs. За это Meta заплатила $2B в декабре 2025 — не за модель, а за пять итераций инженерного опыта, который нельзя скачать с Hugging Face. [11]

Именно поэтому важен принцип «rippable harness»: стройте обвязку так, чтобы её компоненты можно было вырвать, когда следующая модель научится делать это сама.

Агент не сложен. Сложна обвязка.

— Ryan Lopopolo, инженер команды Codex, OpenAI · openai.com, февраль 2026

Источники и верификация

  1. The Anatomy of an Agent Harness — LangChain, Vivek Trivedy, 2026
  2. Effective context engineering for AI agents — Anthropic Engineering, сентябрь 2025
  3. Harness engineering: leveraging Codex in an agent-first world — OpenAI, Ryan Lopopolo, февраль 2026
  4. What Is an Agent Harness? — Firecrawl, 2026
  5. Meta-Harness: End-to-End Optimization of Model Harnesses — arxiv, март 2026
  6. The Anatomy of an Agent Harness — Avi Chawla, Daily Dose of Data Science, апрель 2026
  7. Effective harnesses for long-running agents — Anthropic Engineering, март 2026
  8. Model Context Protocol — Wikipedia
  9. The Complete Guide to MCP: Enterprise Adoption — Deepak Gupta, декабрь 2025
  10. The Importance of Agent Harness in 2026 — Philipp Schmid, январь 2026
  11. Agent Engineering: Harness Patterns, IMPACT Framework — Morph LLM, март 2026
  12. Harness engineering for coding agent users — Birgitta Böckeler, Martin Fowler, апрель 2026
  13. Best AI Observability Tools for Autonomous Agents in 2026 — Arize AI, 2026
  14. Skill Issue: Harness Engineering for Coding Agents — HumanLayer, март 2026
  15. The Complete Guide to Agent Harness — harness-engineering.ai, 2026
  16. Building effective AI agents — Anthropic Research, 2025
  17. Writing effective tools for AI agents — Anthropic Engineering, сентябрь 2025
  18. Thinking in LangGraph: error handling patterns — LangChain docs, 2025
  19. Guardrails — OpenAI Agents SDK — OpenAI, 2025
  20. LangChain Deep Agents — GitHub — LangChain, март 2026
  21. Improving Deep Agents with harness engineering — LangChain Blog, февраль 2026
  22. CrewAI Memory — документация — CrewAI, 2025
  23. Junie CLI — JetBrains — JetBrains, март 2026
  24. We removed 80% of our agent's tools — Vercel Engineering, декабрь 2025
  25. Context Engineering for AI Agents: Lessons from Building Manus — Manus Blog, 2025
  26. Harness design for long-running application development — Anthropic Engineering, апрель 2026
  27. Plugins — OpenCode docs — opencode.ai, 2026
  28. Config — OpenCode docs — opencode.ai, 2026
  29. Tools — OpenCode docs — opencode.ai, 2026
  30. Session Management — OpenCode DeepWiki — deepwiki.com, 2026
  31. Building Agent Teams in OpenCode — dev.to, февраль 2026