ИИ-разработка уже не мем, а реальность промышленного использования. Теперь не джун, а нейросеть может нарушить стабильность GitHub, Amazon, Cloudflare и даже сервисов Anthropic и OpenAI. Светила вроде Кента Бека и Дяди Боба осваивают агентскую разработку, вновь ощущая кураж созидания. Эра ИИ пришла — но разработчиков она не заменила, а трансформировала: они перестали писать код вручную.
Новая эра — новые вызовы
Агентская разработка сегодня — это дикий запад. Каждый делает по-своему, фреймворков десятки, если не сотни. Бест-практисов пока нет: каждый хвалит своё болото. Но начинать с чистого листа необязательно.
Опыт автора — 3,5 месяца работы с Claude, 4 тысячи коммитов, 1500 тестов (из них ~350 e2e), 25 тысяч строк продакшн-кода (12k Java, 12k TS/TSX) и столько же тестового кода. Он — техлид в расчётном центре одного из крупнейших банков РФ, фанат экстремального программирования, DDD и TDD. Делится практиками, которые уже запросили коллеги.
Коротко по теории
Согласованная база: LLM-модели систематически врут. Это не баг, а особенность. Придётся с этим жить.
Context Rot
Чем больше контекста загружено в модель — тем хуже её ответы. Явление называется Context Rot: деградация качества при росте объёма контекста. Это центральная проблема ИИ-разработки. Вся свистопляска вокруг — это попытки минимизировать его влияние. Процесс называется Context Engineering.
С одной стороны, LLM нужен контекст: условия, ограничения, связанный код. С другой — чем его больше, тем модель менее надёжна. Работа ведётся в узком диапазоне: между необходимым минимумом и порогом, после которого модель «сходит с ума».
Конкретные значения
На основе опыта и анализа исследований — ориентиры для моделей семейства Opus:
- На контексте >80% модель превращается в «невменяемого олигофрена»; любая нормальная система в этот момент запускает компактизацию.
- На контексте >70% (для 200К) и >40% (для 1М) модель справляется только с простыми задачами.
- На контексте >50% (200К) и >20% (1М) — перестаёт стабильно решать сложные задачи.
- На контексте <40% (200К) и <10% (1М) — модель работает оптимально.
Инструменты контекстного инжиниринга
Основные утилиты в агентских системах:
- /clear — сброс контекста. Новая сессия, вся история теряется. Как в фильме «Город забвения»: модель просыпается с чистого листа. Процесс должен быть устойчив к таким «амнезиям».
- /compact — сжатие контекста в рамках сессии. Модель кратко пересказывает всё. Как в анекдоте про Рабиновича: могут потеряться важные детали. Полезно указывать, что сохранить.
- agents — делегирование задач субагентам. Помогает разгрузить память главного агента. Системы сами это делают, но можно им помогать — хотя они могут и не послушаться.
- /statusline — редактирование статусной строки. Позволяет понимать, с кем сейчас работаешь: с Эйнштейном или Форрестом Гампом.
- /context — отображение текущего контекста. Полезно, если статусная строка не работает.
- /resume — возобновление сессии. Позволяет вернуться к прерванной работе. Большинство сессий с Claude у автора начинаются именно с этого.
Дополнительные техники:
- Spec-Driven Development (SDD) — опора на документацию (часто генерируемую), чтобы после сброса контекста модель имела консистентное представление о системе и планах.
- Прогресс-файлы (progress.md) — чек-листы с ходом выполнения задачи. Позволяют не терять прогресс при сбросе контекста.
- Progressive Disclosure — структура файлов, при которой раскрываются только необходимые детали. Эффективное индексирование контекста.
Тон и философия взаимодействия
Сформировался консенсус, повышающий качество взаимодействия с LLM:
- Ask don't tell. LLM работает лучше как коллега, а не инструмент. Вместо «сделай так» — «какие есть варианты? какой нравится?». Запрос аргументов повышает качество ответа.
- Интервью. Вместо детального описания требований — глубокое интервью. Через несколько вопросов кажется, что LLM понимает задачу лучше вас. Позволяет выявить непонятные детали.
- Графика. Современные LLM читают и рисуют. Сложные вещи можно попросить изобразить. И наоборот — баг, который не описать словами, можно вставить скрином.
- Ревью вторым агентом. Первый агент выполняет задачу, второй — проверяет правила. Иногда нужен третий проход. Но агент с «чистым» контекстом может переусердствовать и начать строить «воздушные замки».
- Чек-листы. LLM часто пропускает инструкции. При сотнях требований — почти гарантированно. Чек-листы заставляют модель отчитываться по каждому пункту. Иногда обманывает — пишет, что сломанные тесты «не в скоупе». Но это лечится промптингом и ревью.
Prompt Harness
Со временем вы начнёте повторно использовать одни и те же промпты. У кого-то даже появляется древовидная структура с перекрёстными ссылками. Агентские системы уже поддерживают такие практики:
- Skills — переиспользуемые промпты для типовых задач.
- Rules — контекст, полезный в любой момент. Загружается каждый раз.
- Agents — параллелизация + борьба с Context Rot.
- Hooks — bash-скрипты, выполняемые по событию. Например, уведомление о завершении задачи.
- Skill-creator — встроенный в Claude инструмент от Anthropic. Помогает создавать скиллы и валидировать правки. Но при валидации нужно корректировать, чтобы не подсказывать тестовым агентам.
Три главных требования к ИИ-разработке
Автор выделяет три системные ошибки, в которые вляпываются почти все:
1. Нельзя без фреймворка
Голый промптинг — путь в никуда. Разработчики пишут: «сделай», «исправь», «ещё раз исправь» — и в итоге всё правят сами. Контекст-менеджмент, правила кода, архитектура, документация — всё это огромный объём знаний, который приходится повторять снова и снова.
Каждая повторяющаяся проблема у автора превращалась в промпт. Сейчас — несколько тысяч строк, даже после агрессивного рефакторинга. Без фреймворка из десятка-другого скиллов и правил разработка превращается в рутину. С фреймворком — в ритмичный, спокойный процесс.
2. Нельзя без тестов
Автотесты — это атомы поведения системы. В обычной разработке их часто саботируют. В ИИ-разработке — 100% покрытие обязательно.
Тесты никогда не были так дёшевы в написании. Но ИИ-разработка — самая рискованная по багам. Достаточно вспомнить хит-парад сбоев в AWS, OpenAI, Anthropic, Azure, Cloudflare и GitHub.
3. Нельзя без ревью
Мнение, что ИИ может писать код сам, — опасно. Может. Но как в анекдоте: «Печатаю со скоростью 1000 знаков в минуту... но такая фигня получается!»
Когда Anthropic заявляет «Coding is solved», но не может показать две девятки доступности — это наводит на мысли. Для многих систем такой уровень — непозволительная беспечность.
Человека из цепочки принятия решений исключать нельзя. Модели регулярно ошибаются со стейтом, конкуренцией, корнер-кейсами. Тесты не ловят всё: нужны параноидальные кейсы. Чаще всего баг сначала нужно увидеть глазами, а потом уже понять, как его протестировать.
Каждая строка, написанная нейросетью, должна быть отсмотрена. Почему ревью кода от человека — дефолт, а от ИИ — можно пропустить? Ведь ИИ ошибается чаще. Видимо, в нас всех живёт своя внутренняя LLM — ветреная и непостоянная.
Итого: Нельзя без фреймворка с тестами и ревью
Для зрелой ИИ-разработки нужен фреймворк, содержащий правила, опирающийся на тесты как меру прогресса и включающий ревью в процесс.
TDD идеально ложится на эту структуру: сначала проектируем требования, потом — тест-план, затем реализуем. Это естественно для Spec-Driven Development.
Ревью должно быть максимально частым. Большие PR с комментарием «LGTM» — иллюзия. Чем больше код — тем выше шанс пропустить ошибку. Человеческий мозг просто не вмещает большие изменения.
Собственно, фреймворк
Есть ли такой фреймворк в открытом доступе? С оговорками — Superpowers. Он в топ-50 GitHub, опирается на SDD и TDD, open-source, не навязывает архитектуру. Подходит как выбор по умолчанию для лёгких, но дисциплинированных процессов.
Альтернатива
Автор начал без фреймворка, перенося командные практики на ИИ. Со временем промпты превратились в систему — и в итоге в собственный фреймворк. Он строже, чем Superpowers, и лучше соответствует подходам автора: ATDD, Clean Architecture.
После обсуждения в канале его попросили опубликовать наработки. Пример будет доступен во второй части.