"🔧 Разбор vibe-кейса 1️⃣ ▶️ Симптомы: ИИ агент слабо соображает: он забывает про ранее сгенерированный код, делает кучу дубликатов, рождает кучу функций примерно про одно и то же. Это все потому что ИИ пока не тянет, и работать может только под контролем программиста. ℹ️ Объяснение: Такое часто бывает, когда ИИ агента используют как ИИ ассистента (привет, курсор!), но ""входят во вкус"" и поручают ему более серьёзные задачи, чем поправить текущий файл в буфере ИДЕ. Что происходит? ИИ-ИДЕ даёт иллюзию, что ИИ агент отлично понимает кодовую базу - инструменты индексации кода ""фоном"" формируют нужный контекст. Проблемы начинаются, когда эти ""умные инструменты"" не сообразили как автоматически собрать контекст для вашей более сложной чем тривиальной задачи - что данная функция уже реализована в соседнем модуле но с другим именем и не совсем похожими параметрами (чтобы эмбеддинги не увидели сходства), что для модуля нужно использовать слой базы данных из соседней папки (потому что использование бд прямо не было указано в промпте, но предполагалось по дизайну системы) и тп. Так как работа этих инструментов непрозрачна, то сюрпризы могут случаться неожиданно. Для ИИ агентов без индексации (типа СС - Claude Code, или Gemini Cli, Codex Cli) ""непонимания"" агентов можно различить чуть проще, но оно носит такую же природу - связи внутри вашей системы не стали для агента очевидными. 🔧 Решение: Общий принцип простой: обеспечить агента качественным контекстом для его задачи. Агент должен получить в контекст или ""знать"" всю информацию для выполнения его конкретной задачи. Понимание в какой части системы он работает, какие модули затрагивает, какие контракты у этих модулей, какие паттерны взаимодействия между ними, какой стиль кода, где смотреть примеры реализации похожей функциональности, где искать документацию на внешние зависимости. Как видно - сказать просто, а как обеспечить на практике? В целом, подход тоже не сложный: давать документацию/спецификации/ссылки. Я храню это все в формате мемори банка (много постов канала про разные техники - индексные файлы, аннотированные ссылки, etc). Разбивайте процесс доработок на этапы : планирование - потом кодинг - потом верификация. На этапе планирования - поручайте сначала изучать документацию полностью, искать все что относится к интеграции фичи в код. При кодинге делайте работу по плану, но соблюдайте стили кодирования, паттерны системы. Каждая генерация кода должна финалится чем то типа typecheck / lint - неким алгоритмическим анализом корректности кода с помощью инструментов для конкретного языка. Верификация - это когда вы сопоставляете план и фактический код. Крайне полезно делать. Идеально будет к коду сделать тесты - но это уже более широкий вопрос, как планировать тесты в системе, чтобы соблюсти разумный баланс. По итогам доработки НЕ ЗАБЫВАЙТЕ обновлять информацию в мемори банке. При таком подходе можно генерировать много кода для достаточно сложных систем без всяких проблем. Но, как вы видите - все это требует подробных инструкций и некоего ПРОЦЕССА. Процесс можно для начала оформлять слеш командами, чтобы не писать длинные промпты каждый раз. В идеале - нужен агентный воркфлоу. Поэтому AI SWE - это спеки, планирование, процессы. Вайб? Ну - от результата: когда по вашим хотелкам в итоге генерируется сложная крутая система - это ПЛЮС ВАЙБ)) #post @deksden_notes"