Глеб Кудрявцев про AI кодинг – Telegram
Глеб Кудрявцев про AI кодинг
6.7K subscribers
95 photos
14 videos
2 files
79 links
Пишу тулы для кодинга и упарываюсь по агентам.

Лучший курс по AI кодингу ai.careerfactory.ru

Основной канал t.me/glebkudr
Личка t.me/glebkudr1
Download Telegram
Победила дружба!

Одна джоба прошла успешно, а вторую завалил код ревьюер, который спустя много попыток так и не пропустил код который сделал агент-разработчик. На такие случаи нужно бы дробить таски на подтаски, но еще до такого не добрался.
🔥9
Ну че, как там на вайбе? 😁 Выжмем максимум?
🔥9🌚2
Как мой кодинговый цикл работал до вчерашнего дня?

— юзер пишет задачу
— контекст препаратор берет скан репы, задачу юзера, и достает нужные файлы
— архитектор делает план
— кодер кодит
— ревьюер ревьюит
— если ок, то применяются диффы, собирается коммит, создается пулл реквест

Проблема — дифф применяется только целиком или отбрасывается тоже целиком. Неэффективно, т.к. в памяти агенту нужно держать весь дифф + уметь его достраивать, а они в целом это плохо умеют.

Сейчас решил очень сильно переписать цикл, перехожу на интеграцию диффов сразу после кодера, а ревью уже по интегрированному коду. Как и возврат в доработку, т.е. новый цикл кодинга будет работать на основе того, что он понаписал в прошлый раз, а не начиная каждый раз с нуля. Это похоже на то, как делает Cursor. Чуток в сторону от ваншотов, но я чувствую, что старым подходом тяжело затаскивать сложные таски.

Скрестите за меня пальцы 😁
🔥2411👍7🖕1
Ключевое решение, которое вы принимаете в построении агентской системы.

Какую именно логику вы отдаете агенту, а какую оставляете в жестко алгоритмизированном коде?

Решение сложное.

Приведу пример.
Представьте, вам в программе нужен десяток ролей. Аналитик, архитектор, тестировщик, дизайнер и так далее.
На каждую из этих ролей у вас описан промпт.

А вот теперь вопрос, как организовать между этими промптами передачу управления.

Всего есть три очевидных способа.

1) Дать каждому из агентов принимать решение самостоятельно. Т.е. после своего вызова он знает, кому именно он передает работу.
2) Сделать агента-диспетчера, который принимает работу от каждого участника и передает следующему.
3) Сделать жесткий код, т.е. алгоритм, и роутить следующего агента согласно заранее заложенным в систему правилам.

Проблема тут в том, что однозначного ответа, какой способ лучше, нет.

В каждом свои приколы.

— Чтобы агент принимал решения, мы должны в него сгрузить кучу инфы про другие инструменты, состояние процесса, и намерение пользователя. Это не всегда легко, и зачастую приводит к логическим ошибкам. А еще — увеличивает контекст + расходует окна внимания модели.
— Гибкие агенты могут "пойти вразнос", за счет нечеткой логики, в системе могут образовываться безвыходные циклы, или наоборот, "глухие углы", когда часть задач никогда не будет выполнена. Это все крайне сложно дебажить.
— Детерминированный код позволяет писать понятные тесты и добиваться предсказуемого поведения, но очень ригидный, если что-то пошло не так, то система не склонна к этому адаптироваться.
— Для детерминированного вызова агентов сложно набивать контекст, да и само программирование требует кучи кода в противовес к тому, чтобы просто засунуть нужные вызовы в промпт.

Итого:

Единого решения нет, а я вас призываю очень внимательно думать, как именно вы строите агентские сети. Решение о том, будет ли агент вызывать другого агента, и по каким правилам, является крайне важным, и должно приниматься осознанно еще при проектировании.
👍141
Вы посмотрите какой fabric, какой fashion!
🔥25😁11
Первый раз отсканил сегодня репозиторий подписчика.

Вышло увлекательно — за первые три запроса в ЛЛМ усвистел почти лям токенов. Посмотрел на список файлов и понял, что в gitignore репозитория не прописаны node_modules, в итоге там какая-то туча левых библиотек.

Срочно написал фильтр на своей стороне, запустил снова.

После этого поставил уже настоящий скан.

Посмотрел на результат — оказалось что агент поленился, и скипнул половину "ненужных" файлов.

Доработал промпты, поставил еще раз.

На этот раз агент завис в бесконечном цикле на последних пустых файлах. Движок заглючило, т.к. оказалось, что он не умеет помечать пустые файлы "отсканированными"

Еще раз доработал промпты, но на этот раз задачу было принято считать законченной.

Ужал чуть ли не в сотку раз (700к -> 5к), жду теперь фидбэка, как этот скан в работе 🙂

PS Зачем нужен скан? Фишка в том, что это сжатый контекст репозитория. Можно пристегивать его к любым своим запросам к любым ЛЛМ и она сразу начинает понимать о чем вы с ней говорите, и отвечать вам не общей информацией, а конкретно по вашей кодовой базе и проекту.
Кому еще попробовать — пишите, личка в био. На 100к строк уходит примерно 10 баксов в токенах. Пока ручной сервис, для общественности код еще не готов.
👍208🔥6🤔1
Как решать сложные проблемы не на вайбе

Все мы сталкиваемся в программировании с сетками с какими-от багами, которые ну никак не могут быть решены с налету, попытками уговоров агента, либо принимая все его предложения. Часто люди даже сдаются и просто откатывают такой код, справедливо полагая, что фиксить его будет тяжелее, чем написать снова.

Но есть типы функционала, которые нам приходится реализовывать, и который при этом сетки часто пишут неверно с первого раза. Это деплой, многопоточность, мета-промптинг, нюансы авторизации, код из новых библиотек и т.д.

Мы не можем просто их "не решать", так как заменить их нечем, а что-то делать нужно.

Поэтому делюсь с вами системным алгоритмом, используя который можно раскалывать даже достаточно сложные кодинговые задачки.

1) Описываем баг. Либо сами (подробно), либо кормим Gemini 2.5 pro в AI студии логи работы вашего кода и просим сказать, что там не так. Она съедает до 1 млн контекста — идеально для анализа логов (я работаю в основном по логам, т.к. много бэкенда, фронтам нужно иначе).
2) Несем результат в Шотган и выбираем промпт "Find bug" — получаем потенциальный стектрейс проблемы.
2.1) Если она понятна и проста, то далее тащим результат тоже в шотган и применяем dev промпт. Затем полученный дифф интегрируем хоть руками хоть курсором.
2.2) Если непонятна, то отдельным промптом просим Find bug агента дать вам список файлов, которые имеют отношение к проблеме, это пригодится нам далее.

3) Что если проблема не пофиксилась с первого/второго раза. Короче говоря, творческая в плохом смысле.

Тогда нас будет выручать GPT-5

Его особенность в том, что ему нужно очень сурово препарировать контекст.

Итак, открываете ChatGPT 5-thinking модель и даете следующий промпт:

Я делаю таску [такую-то]. В процессе работы я наткнулся на баг. Он заключается в [копируем сюда вывод Gemini по логам]. 

Расскажи мне причины бага, и почему он возник.

Прикладываю контекст

Архитектура
====
{описание архитектуры которое я надеюсь вы делаете для своих тасок, шотган -> Architecture}.
===

Необходимые файлы /собираем индексилкой, или просто шотганом, ШотганПро умеет это делать автоматически). Важно — не весь проект/
===
[список файлов и их кода]
===

Мнение тестировщика, но я не уверен что оно корректное/замечание про неуверенность важно, т.к. иначе модель зацепится за эти выводы, а т.к. баг не пофиксился легко, то очень часто они неверные/
====
[складываем отчет от Gemini]
====


GPT-5 выплюнет в вас достаточно сложными рассуждениями и кусками кода, которые вы плохо поймете. Но это не беда, потому что:

4) Тащим теперь это в шотган к dev агенту или в курсор. Тупо копируем и говорим

Я делаю таску [такую-то]. В процессе работы я наткнулся на баг. Он заключается в [копируем сюда вывод Gemini по логам] /короче то же что и GPT-5/

Вот предложение архитектора
====
[Пространный бред от GPT-5]
====

Верифицируй и реши задачу


И вот это уже с большой вероятностью сработает

А далее можно продолжать фигачить ваш курсорный или CC-шный вайб в промышленных объемах =)

В целом, секрет заключается в тщательном отборе контекста для моделей, с соблюдением двух принципиальных моментов
— Помнить, что модели не знают ничего за пределами их контекста
— Не подходить к ним с человеческими мерками. Модели уже умнее людей в ряде задач, и то что для вас "какой-то бред", для них валидный инпут, который не нуждается в пояснениях. Нужно уметь этот момент почувствовать.

Это мой способ. Пишите, если у вас есть свой, будет интересно почитать комментарии.
2👍233🙏2
— Эй, GPT-5, у меня проблема
— (думает 15 минут) пупупу... твою проблему легко решить... яйцо в утке, утка в кролике, телеграфирую юстас алексу... /несет какую-то дичь/
— Спасибо GPT-5, скормлю твою херню другой сетке и попрошу выполнить что ты тут насоветовала, это всегда работает 🥰
😁10👍4
Если есть кто-то увлекающийся вайб-кодингом и (обязательно) владеющий англоязычным твиттером не менее чем 1000 подписчиков — пишите, предложу вам совместно зарабатывать на шотгане 🙂

Личка в профиле.
😁6👍2
У меня набралась мини-группа смотреть за тем, как я пишу код.

Основной фидбэк «ааа капец непонятно» 😁

Ну т.е я привык жонглировать промптами, херачу их туда-сюда между инструментами, и вообще, работаю быстрее чем думаю (последнее — главная проблема 😅).

Пришлось даже кое-что объяснять, хотя формат таким и не планировался.

Задумался над тем, чтобы курс собрать и обстоятельно рассказывать. Главное разделить на старте по навыкам, сейчас в кодинг идут и те, кто ни разу в жизни даже джиры не открывал, так и те, кто с закрытыми глазами помнит все команды вима.

Вообще, главное препятствие для продуктов про AI кодинг — лунный ландшафт понимания, как с этим работать. Вижу даже от очень мощных людей, что максимум курсор с клод кодом потыкали и все.
Нужно с этим как-то работать.
👍30💯15🔥1
Все думаю, под каким соусом выпускать продукт.

Проблема в том, что кодинговых агентов дохрена, я не понимаю как конкурировать на этом ландшафте. Но вот зато написал сканилку на уязвимости для других вайбкодеров 😁. Загружаете репозиторий или папку с кодом и она вам расскажет, что там не так.

Поверхностный скан дешевый, а потом можно еще заказать глубокий.

Уязвимостей находит много 😎

Серьезно думаю стартануть именно с этого.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24🔥95
Не могу остановиться писать кодера. Видимо это судьба разработчика — писать инструменты для разработки 😅
😁33💯7👍1
Вчера порадовался, как круто переписал код ревьюера и мерджера так, что они стали работать без ошибок.

Запушил пять задач подряд без проблем.

Утром врубаю — не работает.

Оказалось, последним коммитом в этих пяти, агент—падла нахер мне сносит самую важную вьюху на фронте, а ревьюер типа — а, ну ок, в задаче про фронт ничего не было. ПРИЕМЛЕМО🤪

Вот такое восстание машин, буду разгребать, чего это они решили взбунтоваться
2🤣18👍14
Секрет написания крутого кода в курсоре и не только

Техника из детской сказки «Репка»

Три последовательных промпта со вставкой результата на каждом шаге.

— напиши архитектуру по пожеланиям и исходным файлам
— напиши код по пожеланиям, архитектуре, исходным файлам
— проверь норм ли код и примени по пожеланиям, архитектуре, новому коду(диффам) и исходным файлам

Работает намного лучше, чем просто «напиши такой-то код»

Пользуйтесь
1🔥27👍123
Тестирую, что кодер мне не снес нахер пол-проекта на рандомной таске. Были прецеденты 😅

Так что точечный коммит — то что нужно
15😁4🔥2
Оказывается, n8n разрабатывает встроенный к себе ai форкфлоу билдер

https://github.com/n8n-io/n8n/tree/master/packages/%40n8n/ai-workflow-builder.ee

Кажется, он еще не в официальной сборке
Проанализировал код. Всего 150к токенов. Значит проект еще молодой, и удобно анализируется в шотгане 😎

Этот проект — AI-агент для создания и редактирования рабочих процессов (workflows) в n8n на основе естественного языка.

Пользователь пишет, что он хочет автоматизировать (например, "каждое утро бери новости из RSS, summarizing их с помощью AI и отправляй в Telegram"), а этот AI-агент самостоятельно выполняет все шаги: находит нужные узлы (nodes), добавляет их на холст, соединяет между собой и настраивает параметры.

Кроме основного функционала, в проекте есть мощная система для автоматической оценки качества работы этого AI-агента.
Детальный разбор проекта...

Полное саммари ваншотом тут: https://gist.github.com/glebkudr/6be5a07bcca720f6ac4bd7f1410e2cce (это не индекс, а просто справка гемини по полному тексту репы, не юзайте как техдок)

Если кто свои AI-ассистенты пилит или билдеры — берите на вооружение.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2211
Охереваю с рассуждений, что ЛЛМ не похожи на мозг, потому что у живых нейронов так-то, а нейроны в нейросетке, типа совсем другое.

Да ясен пень конечно, что другое. Только вы вообще сравниваете хер с цаплей, потому что для начала, живые нейроны это сама по себе физическая вычислительная машина.

ЛЛМ же по-определению виртуалка. У нее физическая машинерия — транзисторы.

То есть сравнивайте тогда уж транзисторы с нейронами. Они вообще охренеть как не похожи. Т.е. далеко за различиями тут и ходить не нужно 😁

А на каком же уровне тогда делать нормальный анализ? На логике происходящих процессов в виртуальном вычислительном пространстве ЛЛМ и мозга.

И вот тут проблема — про мозги мы практически ничего не знаем, кроме того, что вроде как это система с сильным параллелизмом на аналоговых принципах. Какая там виртуалка поверх? Да одному богу известно.

Так что каждый раз когда вы говорите, что "ЛЛМ это другое", делайте оговорку — по наблюдаемым эффектам, а еще лучше "а по-честному мы нифига про это ни знаем". И будет замечательно.
26🔥12👏3👎1
Хер знает зачем, но сегодня забил на работу, и страдал ерундой. Например в числе прочего, сделал парсер wiki для Melvor idle

Скачал, почистил от шума, и чатился с ЛЛМ-кой по поводу правил, благо ядро правил игры на несколько тысяч файлов ужалось примерно в 500к контекста.

Зачем это все нужно? Во-первых это красиво.

Ну а во-вторых. Например, вы хотите сделать клон какой-нибудь игры. Берете конкурентов, скачиваете доки какие есть, проходитесь агентами для дистилляции правил и вычленения базы, а затем подаете это все тз-шками на вход кодерам.

Ну и спустя много часов и какой-то матери у вас клон.

Ну и вообще, гейм-дизайнерам должно быть прикольно

PS Игрушку рекомендую. Очень медленная инкременталка, отлично подходит игро-наркоманам, которые без дозы не могут, но чтобы и в горячку не сорваться 😁
117🔥3
Так вот почему Cline так плох 😁

Есть 3 распространённых паттерна в разработке кодинговых агентов, которых мы в Cline сознательно избегаем:
1. Оркестрация нескольких агентов
2. RAG (через индексированные кодовые базы)
3. Переусложнение инструкций


1) В корне несогласен. Один агент много хуже ансамбля
2) Скорее согласен, векторный поиск в раге может быть только дополнением к широкому контексту.
3) Согласен наполовину. Большие хорошо структурированные инструкции прекрасно работают.

В целом же подход объсняет, как клайн умудряется выжирать миллионы контекста за один запрос.
😁1512👍2
Онлайн: AI Coding Talk в этот четверг

Приходите в четверг на онлайн встречу, на которой мы с друзяшками из соседних каналов про AI-кодинг будем обсуждать то, как сегодня выглядит эффективная AI-driven разработка.

Вместе со мной участвуют следующие четкие и понимающие граждане

"AI driven" Родион Мостовой
- "The AI Architect | AI Coding", Тимур Хахалев
- AI и грабли, Николай Шейко
- Константин Доронин

Начнём в четверг, 28 августа, в 16:30 по МСК, 18:30 по Алматы и в 15:30 по CEST.

🗓 Ссылка на календарь

Ставьте напоминашку и делитесь с друзьями.
🔥19👍3