О Дивный Новый Мир
На написание данной статьи и некоторых философских рассуждений автора натолкнул свежий опыт взаимодействия с коллегами, а также набитые шишки в части создания и организации работы ИИ-агентов - чем автор и спешит поделиться с благодарным читателем. Что касается вообще мотива экспериментов автора в этом поле - кроме очевидной необходимости удержаться ещё какое-то время на плаву, также присущая автору эргофобия.
Но сперва немного философских наблюдений.
Трепещи, кожаный
Вы заметили, как для некоторых работников клавиатуры слова “ИИ”, или не дай Бог “сгенерированный” стали аналогом ругательства? Что интересно, генерация кода в старые времена до появления ИИ (те же стабы gRPC) их ранее не смущала, а сейчас это прям маргинез - куда же этому сгенерированному (будь это код, документация да хоть что) до их гениальной утончённой работы. И вот уже, расправив крылья праведного негодования, коршуном пикируют они на малейший огрех Железного Болвана (к себе те же критерии оценки собственных продуктов жизнедеятельности, естественно, они не применяют).
Стоит же за этим банальный страх - утери своего привилегированного статуса “аристократов рынка труда” (с). Отчаянное неприятие реальности - таки Железный конь идёт на смену крестьянской лошадке. Неприятие, что эти кодерские навыки внезапно 300 лет никому не нужны. Теперь ваши скиллы - это SKILLS.md.
Всё это напомнило мне отвратительный фильм «Субстанция»

Трагедия выходящей в тираж женщины - неспособность принять, что красота и молодость ушли безвозвратно, а тебе больше не место на этом празднике жизни. Ничего не напоминает? И её отчаянные попытки удержаться любой ценой на плаву - те же жалкие обоснования кожаными своей полезности.
Вся история человечества идёт по кругу - и примеров аналогичных происходящему навскидку можно привести десятки - от тех же луддитов до классического романа Стейнбека “Гроздья гнева”. Собственно, классик описал ровно ту же ситуацию - только вместо ИИ был трактор:
Но трактор делает сразу два дела: он вспахивает землю и выкорчевывает с этой земли нас. Между таким трактором и танком разница небольшая. И тот и другой гонят перед собой людей, охваченных страхом, горем.
Арендаторам сейчас крышка. Одним трактором сразу десять семей с места сгоняют. Эти тракторы таких дел наделали! Запахивают участок, а арендатора долой.
А вот и диалог, который мог бы состояться сегодня - замените “трактор” на “Copilot”, и ничего не изменится:
— Зачем же ты пошел на такую работу — против своих же? — Три доллара в день. Надоело пресмыкаться из-за куска хлеба и жить впроголодь. У меня жена, дети. Есть-то надо. Три доллара в день, и работа постоянная. — Это все верно. Но из-за твоих трех долларов пятнадцать, двадцать семейств сидят совсем голодные. Чуть ли не сотня людей снялась с места и мыкается по дорогам. Все из-за твоих трех долларов в день. Разве это справедливо? И тракторист отвечал: — Это не мое дело. Мое дело думать о своих ребятишках. Три доллара в день, и работа постоянная. Теперь другие времена, пора бы тебе это знать.
Спасение утопающих
Видимо, нужно принять, что роль нашего брата неизбежно меняется. Пора осваивать трактор - не факт, что поможет, но продлит агонию точно. В нашем случае трактор - это производственный комбинат. А вы управляющий - и если дружите с головой, то не станете тратить свой ограниченный ресурс на то, чтобы самолично болты закручивать в случае производственного брака. И мыслить придётся стратегически научиться - как организовать и выстроить процессы, взаимодействие с внешним миром, как и что автоматизировать, превратив этот комбинат в конвейер производства.
ИИ-агенты - это и есть ваш комбинат. Ваши рабочие, ваши станки, ваш конвейер. Да, они несовершенны - и брак бывает гонят, путают детали, иногда несут ахинею. Но они учатся. Быстро. И с каждым месяцем брака всё меньше, а производительность всё выше. А задача наша - не соревноваться с конвейером в скорости закручивания гаек, а управлять им и совершенствовать.
И будущее - оно за той молодой из «Субстанции». Пусть она чего-то не знает, но быстро учится. Ещё у неё упругие и вкусные детали, а у вас их уже нет.
Общество гигантских растений
И тут мы переходим к практическим вопросам организации агентов - ибо вопросов много, как и набитых шишек.

Склероз Железного Болвана
Первое, с чем вы столкнётесь при работе с ИИ-агентами - это их катастрофическая забывчивость. Представьте себе блестящего инженера, который помнит всё, что вы ему сказали… в последние пять минут. А то, что вы объясняли полчаса назад? Испарилось.
Конечно, это про контекстное окно - и это главный ограничивающий ресурс при работе с агентами. По мере того как вы нагружаете агента инструкциями, историей разговора, справочными документами - окно забивается, и агент начинает терять ориентацию. Забывает ранние инструкции. Пропускает обязательные шаги. Путает файлы и пути. Генерирует половину ответа и бросает на полуслове.
Сперва вы думаете - ну, может, плохо объяснил? Нет, вы объяснили прекрасно. Просто представьте, что ваш лучший работник одновременно читает пять книг, слушает подкаст, отвечает на звонок и пытается по памяти воспроизвести ваше утреннее распоряжение. Примерно так чувствует себя агент с забитым контекстом.
Решение? Относиться к контекстному окну как к золотому запасу. Не грузить всё подряд, а подавать информацию порционно - ровно то, что нужно для текущего шага. Суммировать завершённую работу, а не таскать всю историю переговоров с собой. Ваш агент - не Википедия, не надо в него запихивать всё, что вы знаете.
И тут на помощь приходят Skills - по сути, модульные инструкции, которые агент подгружает по мере необходимости, а не сжирает целиком при старте. Как это работает: вы создаёте файл SKILL.md с описанием (description) - и в контекст агента загружается только это описание, а не весь текст навыка. Полное содержимое подтягивается только когда навык реально вызван - вами через /skill-name или самим агентом, если он решит, что описание подходит к текущей задаче.
Практически: вместо одного монструозного CLAUDE.md на 2000 строк с инструкциями на все случаи жизни, вы нарезаете знания на специализированные навыки. deploy/SKILL.md - инструкции по деплою. review/SKILL.md - чеклист ревью. api-conventions/SKILL.md - стандарты API. Каждый навык может содержать дополнительные файлы - шаблоны, примеры, скрипты - и они тоже загружаются лениво, только когда агент до них доберётся. Контекстное окно вздохнёт с облегчением.
Но и тут есть подвох - описания навыков тоже занимают место в контексте. Если навыков десятки, одни только их аннотации начинают жрать драгоценное окно. Принцип тот же: держите описания короткими, а редко используемые навыки прячьте от агента - пусть вызываются только вручную, когда реально нужны. В Claude Code для этого есть флаг disable-model-invocation: true в навыке, в других системах - аналогичные механизмы фильтрации инструментов.
Один агент - одна голова
Вторая шишка - меньше “универсальности”.
Допустим, у вас есть три недалёких работника-таджика и задача: организовать праздничный ужин. Нужно купить шампанское, закупить продукты и приготовить собственно что-то праздничное. Если вы отправите одного таджика делать всё это одновременно - итог будет немного предсказуем. А если одного отправить за алкоголем, второго - на рынок за продуктами, а третий будет поваром, которого вы снабдите подробным рецептом - эта синергия может и привести к приемлемому результату.
С агентами - ровно та же история. Один агент исследует и собирает информацию. Другой проектирует архитектуру. Третий пишет код. Четвёртый проверяет качество. Пятый публикует. У каждого - свой чёткий фокус, свой набор инструментов, свой бюджет контекста. Старый добрый “Single responsibility”.
“Должен” - не значит “сделает”
Третья шишка - из области коммуникации с Железным Болваном. Оказывается, если вы написали агенту “ты должен сначала конвертировать диаграммы, а потом публиковать” - он вполне может решить, что конвертация - дело опциональное и, расправив те самые крылья праведного самомнения, перепрыгнуть сразу к публикации. “Должен” для агента - это скорее вежливая рекомендация.
Что работает - так это явные запреты и контрольные точки. “НИКОГДА не публикуй пока не существуют PNG-файлы”. “СТОП. Проверь, что Phase 1 завершена. Не продолжай пока не убедился.” Звучит как инструкция для первоклассника? Именно. Ваш блестящий инженер с пятиминутной памятью нуждается в чётких, недвусмысленных, параноидально подробных указаниях. “Should” не работает. “MUST” - работает. “NEVER” - работает ещё лучше.
Ещё один неочевидный момент - не все задачи требуют одинаковой глубины размышлений. А вы знали, что у Claude есть система управления “мозговыми усилиями”?
На уровне API есть extended thinking - вы выделяете агенту бюджет токенов на внутренние рассуждения (budget_tokens), и он тратит их на цепочку размышлений до финального ответа. У Opus 4.6 это эволюционировало в adaptive thinking с параметром effort - четыре уровня от low (не думай, просто делай) до max (думай сколько влезет, цена ошибки высока).
А вот в Claude Code всё ещё проще - чтобы включить расширенное мышление в навыке (skill), достаточно написать слово ultrathink где угодно в содержимом вашего SKILL.md. Просто одно слово - и агент переключается в режим глубоких рассуждений. Без параметров API, без конфигурации - магическое слово.
По сути, это как регулятор на вашем комбинате: для штамповки простых деталей не нужен главный технолог, а вот для запуска новой линии - извольте подумать как следует. Правда, за всё приходится платить - и токенами, и временем ожидания.
Когда конвейер встал
И наконец - что делать, когда всё пошло не так? А оно пойдёт, гарантирую.
Агент не нашёл нужный инструмент. Сервис не ответил. Файл оказался не там, где ожидалось. Предыдущий этап отработал криво. Знакомая картина для любого, кто хоть раз работал с живым производством.
Главное правило - не повторять одно и то же действие, ожидая другого результата (это, кажется, уже определение безумия). Если подход провалился дважды - пробуй другой. Если инструмент не работает - предложи ручной шаг и задокументируй ограничение. Сохраняй прогресс после каждой фазы - чтобы при сбое не начинать сначала, а продолжить с последней контрольной точки.
В конце концов, управляющий комбинатом потому и управляющий, что он не паникует при аварии станка, а перенаправляет поток, чинит что можно и продолжает производство. Вот и вся наука.
Печальные итоги
Всё вышеописанное - инструмент, который требует настройки, терпения и правильной организации. Как любой конвейер - он бесполезен без толкового управляющего. Но когда всё выстроено правильно - качество и предсказуемость результатов растут кратно, количество ручного вмешательства падает до минимума, и вы наконец можете заняться тем, за что вам платят - думать, а не крутить гайки.
А тем, кто всё ещё считает, что ИИ - это временное помешательство и скоро всё вернётся на круги своя, - перечитайте Стейнбека ещё раз. Трактористу тоже так говорили.
Ну а кому интересно вот https://github.com/antonchirikalov/copilot-agents