🔧 Обвязка агента
Почему инфраструктура важнее модели
Интерактивный курс по Harness Engineering: три эпохи инженерии с LLM, 13 слоёв production-обвязки, MCP, архитектурные развилки и принцип Rippable Harness. 9 секций, 6 типов упражнений.
0%
Прогресс
0/9
Секций
0/11
Достижений
—
Ср. балл
Содержание курса
1. Три эпохи инженерии с LLM
От prompt engineering к harness engineering: как менялся подход к работе с языковыми моделями
С 2022 года инженерия с языковыми моделями прошла три принципиально разных этапа — каждый из которых менял не только инструменты, но и само понимание того, что значит «работать с AI».
2022–2024 — Prompt Engineering. Правильные слова в правильном порядке. Один запрос — один ответ. Работало для простых задач: суммаризация, перефразирование, генерация текста по шаблону. Вся «магия» была в формулировке запроса.
2025 — Context Engineering. Термин ввёл Андрей Карпати, развил Anthropic. Не «правильные слова», а «правильная конфигурация контекста в каждый момент времени». Появились агенты в петле, RAG, memory-файлы. Контекст стал первоклассным артефактом — тем, что нужно проектировать, а не просто заполнять. [Anthropic]
2026 — Harness Engineering. Термин кристаллизовал Митчелл Хашимото. Включает оба предыдущих уровня плюс всю инфраструктуру: оркестрацию, состояние, ошибки, верификацию, безопасность. «Агенты — не сложно. Обвязка — сложно» — Ryan Lopopolo, OpenAI. [OpenAI]
Ключевое доказательство: при замене только обвязки (модель та же) TerminalBench 2.0 показал +25 позиций. Алгоритм Meta-Harness, автоматически оптимизирующий обвязку, достиг 76.4% pass rate на TerminalBench-2 с Claude Opus 4.6. Meta заплатила $2B за Manus в декабре 2025 — не за модель, а за обвязку.
Практика
2. Обвязка как операционная система
Почему сырой LLM — это процессор без ОС, и что именно делает обвязка
Аналогия Берена Миллиджа из эссе 2023 года до сих пор самая точная: сырой LLM — процессор без RAM, без диска, без I/O. Обвязка — операционная система, которая делает его полезным.
Без обвязки модель умеет только принимать текст и возвращать текст. Она не помнит предыдущих сессий, не может вызвать инструменты, не знает о состоянии задачи, не умеет восстанавливаться после ошибок. Всё это — задача обвязки.
Что конкретно делает обвязка:
- Управляет петлёй Thought → Action → Observation
- Собирает контекст при каждом вызове модели
- Парсит вывод и вызывает инструменты
- Сохраняет состояние между шагами и сессиями
- Обрабатывает ошибки и перезапускает упавшие шаги
- Верифицирует результаты через тесты и линтеры
- Контролирует безопасность и права доступа
Meta-Harness (arxiv, март 2026) показал: алгоритм, который сам ищет оптимальную обвязку для LLM, превзошёл все hand-designed системы. На text classification — +7.7 пунктов при 4× меньшем расходе токенов. Это означает: обвязку теперь можно не только строить, но и искать.
В феврале 2026 OpenAI опубликовали отчёт об эксперименте: 5 месяцев, 7 инженеров, ~1 000 000 строк кода — ни одной написанной человеком. Throughput: 3.5 PR на инженера в день. Ключевой вывод: работа инженеров сводилась к проектированию среды, формулированию намерений и созданию feedback-петель.
McKinsey оценивает: 80% времени реализации agentic AI уходит на data engineering и governance — не на конфигурацию фреймворков или выбор модели.
Практика
Какую аналогию использует Берен Миллидж для описания обвязки агента?
3. Управление исполнением: слои 01–04
Оркестрация, сборка промпта, парсинг вывода и tool layer — основа любого агента
Production-обвязка — не монолит, а стопка независимых слоёв. [Anthropic Engineering] Первые четыре отвечают за управление исполнением: как агент думает, что видит и как взаимодействует с миром.
Слой 01 · Петля оркестрации — сердцебиение системы. Цикл Thought-Action-Observation. Механически — простой while. Anthropic называет это «dumb loop»: вся интеллект — в модели, обвязка лишь управляет ходами. Сложность не в самой петле, а в том, чем она управляет.
Слой 02 · Сборка промпта — то, что модель видит при каждом вызове, собирается заново: system prompt, определения инструментов, memory-файлы, история диалога, текущий запрос. Порядок имеет значение — принцип «Lost in the Middle»: ключевой контент должен быть в начале и конце, не в середине. OpenAI Codex использует строгий priority stack с лимитом 32 KiB на developer-инструкции.
Слой 03 · Парсинг вывода — production-обвязки используют native tool calling: модель возвращает структурированный объект tool_calls, не free-text для парсинга. LangChain и OpenAI поддерживают Pydantic-схемы для structured outputs. Для граничных случаев — RetryWithErrorOutputParser, который подаёт оригинальный промпт, упавший ответ и ошибку парсинга обратно в модель. [Anthropic Research]
Слой 04 · Tool Layer — интерфейс агента с внешним миром. Регистрация схем, валидация аргументов, sandbox-выполнение, захват результатов. Читающие операции можно запускать параллельно; мутирующие — только последовательно. Противоинтуитивный факт: меньше инструментов — лучше результат. Vercel убрал 80% инструментов из v0 и получил измеримый прирост качества. [Anthropic: Writing tools]
Практика
Выберите элемент слева, затем соответствующий элемент справа
Сопоставлено: 0/5 · Ошибок: 0
4. Память и управление контекстом: слои 05–06
Три горизонта памяти и стратегии борьбы с context rot
Память и контекст — самые незаметные, но критически важные компоненты обвязки. Именно здесь чаще всего гибнут агенты в production.
Слой 05 · Memory System работает на трёх горизонтах. [Anthropic: Context Engineering] In-session: история текущего диалога. Cross-session: Anthropic использует CLAUDE.md и MEMORY.md, LangGraph — JSON Stores по namespace, OpenAI — SQLite или Redis. Структурированный скрэтчпад: Claude Code реализует трёхуровневую иерархию — лёгкий индекс (~150 символов/запись, всегда в памяти) → topic-файлы по требованию → raw транскрипты только через поиск.
Слой 06 · Управление контекстом — самое незаметное место гибели агентов. Context rot: производительность падает на 30%+ когда ключевой контент попадает в середину окна. Даже миллионные окна не спасают — деградация instruction-following нарастает с длиной.
Стратегии в production:
- Compaction — Claude Code сохраняет архитектурные решения и нерешённые баги, выбрасывает избыточные tool outputs
- Observation masking — JetBrains Junie скрывает старые результаты, оставляя вызовы
- Just-in-time retrieval —
grep/glob/head/tailвместо загрузки файлов — 95% сокращение контекста. [Manus Blog] - Delegation sub-агентам — каждый возвращает 1000–2000 токенов резюме
ACON research: приоритет reasoning traces над raw tool outputs даёт 26–54% экономии токенов при сохранении 95%+ точности.
Практика
Расставьте стратегии управления контекстом от наименее к наиболее агрессивного сокращения:
5. Надёжность: ошибки, верификация, guardrails
Слои 07–10: как обвязка выживает при сбоях и не допускает опасных действий
Надёжность — это то, что отличает production-обвязку от демо. Четыре слоя работают вместе, чтобы агент не только выполнял задачи, но и делал это безопасно и предсказуемо.
Слой 07 · State Management — как обвязка помнит, что было сделано, при авариях и перезапусках. LangGraph: typed dict + checkpoint на каждом super-step, time-travel debugging. Claude Code: git commits как checkpoints плюс claude-progress.txt. Ключевой принцип команды Codex: планы и прогресс — first-class артефакты в репозитории.
Слой 08 · Error Handling — компаундирование делает его критичным: 10 шагов с 99% успехом дают 90.4% end-to-end, а 20 шагов — уже 82%. LangGraph различает четыре класса: transient (retry с backoff), LLM-recoverable (вернуть ошибку как ToolMessage), user-fixable (прервать), unexpected (вверх для дебаггинга). Stripe в production ограничивает retry до двух попыток. [Anthropic: Building effective agents]
Слой 09 · Verification Loops — разрыв между демо и production. Борис Черны (создатель Claude Code): verification loop даёт +2–3× качества. [Anthropic: Harness design] Два режима: computational (тесты, линтеры — детерминированная истина) и inferential (LLM-as-judge — ловит семантику). Martin Fowler: guides управляют до действия (feedforward), sensors наблюдают после (feedback). Без первых агент повторяет ошибки; без вторых — не знает, работают ли правила.
Слой 10 · Guardrails & Safety — разделение полномочий. Модель решает, что попробовать; tool system решает, что разрешено. OpenAI SDK: три уровня (input → output → tool). Механизм tripwire мгновенно останавливает агента при срабатывании. Claude Code независимо контролирует ~40 дискретных возможностей в три стадии: установка доверия → проверка прав → явное подтверждение для high-risk операций.
Практика
Сценарий
Вы проектируете production-обвязку для агента, который автоматически деплоит код. Агент выполняет 15 шагов. Каждый шаг имеет 98% вероятность успеха. Нужно принять ряд архитектурных решений.
Агент упал на шаге 7 из 15 из-за временной сетевой ошибки. Как обработать?
6. Масштабирование: мультиагенты и роутинг
Слои 11–13: субагенты, model routing и observability в production
Когда одного агента недостаточно — обвязка масштабируется горизонтально. Три последних слоя управляют координацией, стоимостью и наблюдаемостью.
Слой 11 · Subagent Orchestration — горизонтальное масштабирование задач. [Anthropic Engineering] Claude Code поддерживает три модели: Fork (байт-идентичная копия родительского контекста), Teammate (отдельная панель терминала с file-based mailbox), Worktree (собственный git worktree, изолированная ветка). OpenAI SDK: agents-as-tools (специалист обрабатывает ограниченный сабтаск) и handoffs (специалист берёт полное управление). LangGraph: вложенные state graphs.
Слой 12 · Model Routing — один из самых недооценённых компонентов. Не каждый шаг требует frontier-модели. HumanLayer: Opus для planning и orchestration, Sonnet для implementation, Haiku для file navigation. Экономия: 40–60% стоимости при сопоставимом качестве. Дополнительный эффект: prompt caching даёт Anthropic 90% скидку на повторяющиеся prefix-токены, OpenAI — 50%.
Слой 13 · Lifecycle Management & Observability — агент в production — не request-response функция, а долгоживущий процесс. Агент генерирует 8–15 спанов на вызов (против 2–3 у обычного API). OpenTelemetry GenAI semantic conventions (gen_ai.* namespace) стандартизирует сбор в vendor-neutral формате. Ключевой вопрос на дашборде: какие 5% запросов потребляют 50% токенов?
Практика
Выберите элемент слева, затем соответствующий элемент справа
Сопоставлено: 0/5 · Ошибок: 0
7. MCP: стандартизация tool layer
Model Context Protocol — USB-C для AI-интеграций и его принятие индустрией
Долгое время у каждой команды был свой способ подключать инструменты к агентам. В ноябре 2024 Anthropic выпустил Model Context Protocol (MCP) — открытый стандарт, аналог USB-C для AI-интеграций.
Проблема до MCP: N моделей × M инструментов = N×M интеграций. Каждая команда писала свои адаптеры, свои схемы, свои форматы. Переключение между моделями требовало переписывания всего tool layer.
Решение MCP: один унифицированный интерфейс для всех. MCP-сервер описывает инструменты один раз — и любой совместимый клиент может их использовать. Это разделяет разработку инструментов и разработку агентов.
Принятие индустрией:
- Ноябрь 2024 — Anthropic выпускает MCP
- Март 2025 — OpenAI официально принимает MCP
- Апрель 2025 — Google DeepMind принимает MCP
- Декабрь 2025 — Anthropic передаёт протокол в Agentic AI Foundation (AAIF) под Linux Foundation — гарантия vendor-neutral развития наравне с Kubernetes и PyTorch. [Полный гайд по MCP]
Поддержка в экосистеме: Claude Code (deepest integration, in-process server), OpenAI Agents SDK (hosted MCP tools), LangGraph (через langchain-mcp-adapters), CrewAI (native: crewai-tools[mcp] + A2A поддержка), OpenCode (native: local + remote MCP, OAuth для remote servers).
MCP превращает tool layer из проприетарного компонента в стандартизированную инфраструктуру — как HTTP для веба.
Практика
Когда Anthropic выпустил Model Context Protocol (MCP)?
8. 10 архитектурных развилок
Ключевые решения при проектировании обвязки, определяющие production-готовность
Исследование практик 2025–2026 года выявляет десять ключевых развилок — каждая из которых определяет, получите вы production-систему или хорошо работающий демо. [Daily Dose of Data Science]
1. Один агент или сеть? Максимизируй одного, прежде чем делить. Порог для разделения: больше ~10 пересекающихся инструментов или явно несовместимые доменные задачи. OpenAI и Anthropic едины в этом.
2. ReAct или plan-and-execute? ReAct гибко, но затратно. LLMCompiler показывает 3.6× ускорение над sequential ReAct, запуская независимые tool calls параллельно. Выбор определяет форму компаундирования ошибок.
3. Стратегия управления контекстом? Пять подходов: time-based clearing, summarization, observation masking, structured notes, sub-agent delegation. ACON research: приоритет reasoning traces над raw tool outputs даёт 26–54% экономии токенов при сохранении 95%+ точности.
4. Guides или sensors? Фреймворк Martin Fowler: guides — feedforward (до действия). Sensors — feedback (после). Без первых агент повторяет ошибки; без вторых — не знает, работают ли правила. Инвестировать сначала в guides.
5. Permissive или restrictive права? Начинай с restrictive, расширяй по мере роста доверия. Anthropic: три стадии — trust establishment, permission check, явное подтверждение для high-risk.
6. Минимализм инструментов vs. полный арсенал? Парадокс: чем больше инструментов — тем хуже результат. Vercel убрал 80% инструментов из v0, производительность выросла. Expose minimum viable tool set, остальное lazy-load по запросу.
7. Тонкая или толстая обвязка? Тест future-proofing: производительность растёт с более мощной моделью без добавления сложности — архитектура правильная. Ключевой принцип — «rippable harness».
8. Наблюдаемость: встроенная с нуля или болтается сверху? Grafana 2026 survey: 92% practitioners видят ценность AI в observability, но большинство мониторинг прикручивают постфактум. Traces должны проектироваться вместе с обвязкой.
9. Harnessability: насколько среда поддаётся управлению? Концепция Birgitta Böckeler (Thoughtworks): strongly typed language → type-checker как бесплатный sensor. Выбор tech stack теперь нужно делать с оглядкой на «насколько эта среда будет легко управляема агентом».
10. Управление энтропией: кто чистит за агентом? AI-generated кодовые базы накапливают энтропию быстрее. Решение OpenAI: «garbage collection» агенты — отдельные периодические задачи, которые сканируют нарушения architectural constraints и открывают cleanup PRs.
Практика
Расставьте 10 архитектурных развилок в правильном порядке (от базовых к продвинутым):
9. Rippable Harness и будущее
Почему обвязка — временная инфраструктура и принцип коэволюции модели и харнеса
Строительные леса не строят здание. Но без них рабочие не поднимутся на верхние этажи. Как только здание готово — леса снимают.
Принцип «Rippable Harness»: стройте обвязку так, чтобы её компоненты можно было вырвать, когда следующая модель научится делать это сама. Каждый компонент обвязки — это временная компенсация текущих ограничений модели. [Daily Dose of Data Science]
Manus перестраивал обвязку пять раз за шесть месяцев — каждый раз убирая сложность. Сложные определения инструментов стали общим shell execution. «Management agents» стали простыми structured handoffs. За это Meta заплатила $2B в декабре 2025 — не за модель, а за пять итераций инженерного опыта, который нельзя скачать с Hugging Face.
Коэволюция модели и обвязки. Филипп Шмидт (HuggingFace) описал ключевой принцип: лаборатории начинают использовать обвязку как детектор «model drift» — отслеживают, на каком шаге (обычно после 100+) модель начинает деградировать. Эти данные идут напрямую в post-training следующей версии. Результат: модели становятся более стойкими к длинным задачам, а обвязки — тоньше.
Ralph Loop — для задач, не умещающихся в одно контекстное окно: Initializer Agent устанавливает среду, каждая последующая сессия читает git log и progress-файлы, берёт следующую незавершённую задачу, реализует, коммитит, пишет резюме. Файловая система — единственный источник истины между контекстными окнами.
Обвязка сегодня — не просто инфраструктура, а источник обучающего сигнала для следующего поколения моделей.
Практика
Сценарий
Вы — архитектор AI-системы в 2026 году. Модели быстро умнеют. Нужно принять стратегические решения о развитии обвязки.
Команда предлагает добавить сложный компонент "smart context compressor" в обвязку. Новая модель уже умеет это делать сама. Что делать?
❓ Частые вопросы
🏆 Достижения (0/11)
Первый шаг
Завершите первую секцию курса
На полпути
Завершите 5 из 9 секций
Перфекционист
Получите 100% в любой секции
Мастер обвязки
Завершите все 9 секций курса
Сдал экзамен
Пройдите финальный тест с результатом ≥70%
Историк обвязки
Завершите секцию «Три эпохи инженерии с LLM»
Эксперт надёжности
Завершите секцию о надёжности (слои 07–10)
MCP-адопт
Завершите секцию о Model Context Protocol
Архитектор
Завершите секцию «10 архитектурных развилок»
Rippable Master
Завершите финальную секцию о Rippable Harness
Быстрый старт
Завершите 3 секции подряд