- BrainTools - https://www.braintools.ru -
Год в Claude Code, несколько релизов моделей, десятки экспериментов с командой в Kaiten. Всё это время я ждал, что главным рычагом качества будет очередной релиз модели. Оказалось, ровно наоборот: смена модели даёт заметный, но ограниченный прирост, а каждый новый слой обвязки вокруг неё — кратный.
Англоязычные инженеры называют эту обвязку harness. Это контур, в котором живёт модель: системный промпт, инструменты, контекст, скиллы, хуки, разрешения и память [1]. Без него даже флагманский Claude или Codex работает как экскаватор без рычагов — мощность есть, использовать нечем. У русского аналога одного короткого слова пока нет, поэтому ниже — harness и обвязка вперемешку.
Лучше всех тезис свёл Эдди Османи [2] из Google в апрельском посте Agent Harness Engineering: Agent = Model + Harness. Его сопроводительная мысль звучит так: «A decent model with a great harness beats a great model with a bad harness». Зрелая обвязка вокруг средней модели бьёт сырую обвязку вокруг топовой.
Эту картину независимо подтверждает Gabriel Chua [3] (OpenAI), которого процитировал Симон Уиллисон в февральской рассылке: «Codex-модели обучаются в присутствии harness. Tool use, execution loops, компакция, итеративная верификация — это не накладное поведение [4], а часть того, как модель учится работать». Если читать прямо, модель и обвязка формируют друг друга двунаправленно, и граница между ними со временем размывается.
Из чего конкретно состоит harness, удобнее всего показывает практический гайд корейского инженера Youngju Kim [5] от марта 2026-го: семь блоков — system-prompt, tools, context, skills, hooks, permissions, memory. Если у вас в Claude Code есть CLAUDE.md [6], пара slash-команд, скилл с триггер-описанием и pre-commit-хуки — у вас уже зрелый harness, просто называется иначе.
Когда независимые инженеры из Google, OpenAI, Anthropic, Answer.AI [7] за полгода описывают одно и то же место, велик соблазн назвать это сходимостью индустрии. Мне эта рамка кажется слабее, чем она выглядит. За ней стоит другая, более точная: нормальная фаза взросления любого, кто прошёл с LLM достаточный путь — пользователя или команды.
Я заметил это на себе. Чем выше мой собственный грейд работы с LLM, тем меньше радости от очередного релиза модели и больше дисциплины в том, как я строю контур вокруг неё. Глубина использования всегда упирается в один и тот же потолок — потолок предсказуемости, который модель сама не пробивает.
Чистый кейс из Kaiten — наш внутренний AI-редактор документов. Системный промпт там подробный: чётко описано, что делать с текстом и как. На этом промпте все четыре провайдера, которые мы пробовали — YandexGPT, open-source-Llama, Claude и GPT — справляются на приемлемом для задачи уровне; разница между моделями в наших метриках качества стала несущественной. Большая задача, разложенная на маленькие с чёткими инструкциями, даёт предсказуемый результат и без флагманской модели.
Сейчас два моих собственных проекта внутри Kaiten — это в чистом виде проектирование обвязки.
→ Лендинги по входящему ТЗ. Я строю harness так, чтобы продакт или сейлз с готовым ТЗ собирал брендированный лендинг сам, не привлекая дизайнера и фронтенда на каждую страницу. На входе — JSON-бриф с продуктом и аудиторией; на выходе — готовый TSX-компонент, который мержится в основной репозиторий как обычный PR. Цепочку маркетолог → копирайтер → дизайнер → фронтенд закрывает harness: скилл под конверсионный лендинг с awareness-уровнями аудитории, registry разрешённых компонентов из дизайн-системы — валидатор отсекает любой блок вне белого списка, — проверки бренда, бизнес-правил и SVG-иллюстраций с repair-loop до трёх попыток на feedback модели, и visual regression перед approval. Десятки страниц в бэклоге; рассчитываем делать каждую быстрее и дешевле.
→ Перепроектирование тарифной сетки. Это огромный legacy: около 100 md-файлов с разными типами документов, расчётами, версиями нынешних и будущих тарифов. Без обвязки агент в таком объёме тонет; с обвязкой у него появляется карта навигации по проекту. Индекс файлов с короткими описаниями, отдельные скиллы под навигацию по legacy, сборку сводок и сравнение версий — агент подтягивает релевантное по запросу, а не читает всё подряд.
→ Автономный агент-багфиксер. У нас появился агент, замыкающий цикл починки без человека. Работает он именно благодаря обвязке: правилам репозитория, доступам, проверкам качества перед мерджем. Работа, которая раньше требовала ротации разработчиков на дежурство, понемногу переходит к нему.
Свой личный сайд-проект — внутренняя SaaS-ка, которая когда-то начиналась как Google-таблица с картой рабочих гипотез, — за полгода превратилась в полноценный продукт. Когда переезжал из таблицы в проект, сразу заложил базу данных, правила репозитория, скиллы под SEO-статьи, под интерфейс, под архитектуру, под вызовы агентов и под тесты. Каждый новый мой проект сейчас стартует с одного и того же — CLAUDE.md [6], в который месяцами доливаются правила.
Anthropic Engineering осенью 2025-го выпустили две статьи именно про обвязку. В сентябре 2025-го — Effective context engineering for AI agents [8] с понятием «context rot»: чем больше контекста, тем хуже модель его удерживает, и курировать его надо как конечный ресурс. В октябре 2025-го — Equipping agents with Agent Skills [9] и принцип «progressive disclosure»: метаданные триггерят релевантность, полная документация подгружается только при необходимости. Универсальный агент становится специалистом по PDF или Excel без смены самой модели.
Идею собственного индекса для LLM стандартизировал Джереми Ховард [10] из Answer.AI [7]. 3 сентября 2024-го он предложил формат llms.txt — компактный индекс в корне проекта, по которому LLM сама находит релевантные куски документации. Целиком документацию в запрос больше тащить не надо: за год формат поддержали Anthropic, Cursor и масса docs-сайтов.
Концептуально это в линии Карпати [11] про «LLM Wiki» — персистентную вики, которую LLM ведёт сама: один раз компилирует знания из сырых источников и держит индексы и сводки актуальными.
Объединяет эти источники не сговор, а общая ступень в работе с LLM, на которую каждый встаёт по мере глубины.
Любая красивая идея ломается, если не назвать её границу. У обвязки она простая.
Harness работает там, где есть повторяемость и желание получить предсказуемый результат. Системные процессы, регулярные задачи, известный класс работы — это его родная среда. Каждая зафиксированная ошибка [12] превращается в новое правило в AGENTS.md [13], и систему реже бьёт по тем же граблям. Османи называет это Ratchet Principle — накопление по «храповику».
Зато когда вы протаптываете новую тропинку, делаете что-то впервые, разбираетесь с новой технологией или незнакомым доменом, harness ещё неоткуда взяться. Сначала нужно пройти руками, понять, на что натыкаешься, и только потом систематизировать в обвязку. Попытка построить контур до того, как сам понял процесс, — частая причина того, почему очередная AI-инициатива не взлетела.
Сюда же ложится знаменитая (и методологически критикуемая) цифра MIT NANDA про 95% корпоративных AI-пилотов без измеримого эффекта. Даже с поправкой на качество выборки направление видно: команды строят обвязку вокруг процесса, который сами ещё не прошли. У нас в Kaiten на это нарвались тоже — было много инициатив, выстрелили немногие. Пока разбирались с технологией, какое-то время путали хайп с реальностью. Сейчас отделили: AI — это инструмент автоматизации внутри бизнеса. Ценность даёт понятный бизнес-процесс, в который этот инструмент встаёт; сама технология вторична.
Если из всего сказанного брать одно конкретное действие, оно такое.
→ Найти у себя системные, повторяющиеся запросы. Тот класс работы, который вы делаете снова и снова с похожим ожидаемым результатом. У разработчика это работа с legacy, у продакта — спецификации, у маркетолога — лендинги по ТЗ, у саппорта — типовые ответы.
→ Перевести их в обвязку. Системный промпт, скилл, хук, индекс файлов — что естественно ложится под класс задач. Целевая планка — предсказуемый результат с одного промпта, без бесконечного диалога с моделью до приемлемого ответа.
→ Накапливать по «храповику». Каждая ошибка агента становится правилом в AGENTS.md [13] или скилле. Идеальной система не становится: агенты всё равно путаются и ошибаются по-новому. Но накопленная обвязка — это конкурентное преимущество, которое не отчуждается со сменой провайдера модели.
Главное, что я понял за последний год: в зрелом использовании LLM рычаг качества постепенно уходит выше самой модели — в системный промпт, скиллы, хуки, контекст и память. Модель по-прежнему важна, и её обвязка теперь определяет результат не меньше, чем её свежесть.
А у вас сейчас рост качества AI-агента больше зависит от смены модели, или от того, что вы доращиваете в обвязке вокруг неё?
Живите и процветайте 🖖
Автор: halezov
Источник [14]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/30324
URLs in this post:
[1] память: http://www.braintools.ru/article/4140
[2] Эдди Османи: https://addyosmani.com/blog/agent-harness-engineering/
[3] Gabriel Chua: https://simonw.substack.com/p/agentic-engineering-patterns
[4] поведение: http://www.braintools.ru/article/9372
[5] Youngju Kim: https://www.youngju.dev/blog/culture/2026-03-23-ai-harness-skills-context-orchestration-guide.en
[6] CLAUDE.md: http://CLAUDE.md
[7] Answer.AI: http://Answer.AI
[8] Effective context engineering for AI agents: https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents
[9] Equipping agents with Agent Skills: https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills
[10] Джереми Ховард: https://www.answer.ai/posts/2024-09-03-llmstxt.html
[11] Карпати: https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f
[12] ошибка: http://www.braintools.ru/article/4192
[13] AGENTS.md: http://AGENTS.md
[14] Источник: https://habr.com/ru/articles/1035812/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1035812
Нажмите здесь для печати.