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

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

Сейчас замерил для коротенького проекта на 20к токенов, сколько агенты сжирают в процессе работы по его сканированию.

Вот цифры:

Сжатие контекста: 20к -> 666 токенов (так совпало 😁)
Затрачено токенов при сжатии: 192 980 upload / 40 477 download

Сжатие от попытки к попытке бывает и похуже. Поэтому можно принять, что сжало проект в ~20 раз, потратив на это ~x10 токенов от объема проекта.

Т.е. если вы используете one-shot-prompting, то экономия в токенах с выборочной подстановкой контекста начнется где-то уже с десятого промпта.

PS На самом деле много жрут промпты самих агентов. Тут есть простор для оптимизации. Скажем, если напихивать при скане побольше контекста за раз, то можно достичь большей эффективности утилизации. Скажем, выйти на x5 или даже x3 к объему репы. Но с этим уже потом буду разбираться. Сейчас меня результат вполне устраивает.
1👍107
В каментах хороший вопрос задали, отвечу в канале

А динамически агентно собирать в jinja2 шаблон промпта - это перебор, как считаете?

Проблема - новые агенты создаются с пустым контекстным окном и если задача связана с информацией, которой не было в обучающей выборке (свежая либо персональная), то агент может затупить на старте.

Принцип:
1) Оркестратор создает новое задание субагентной системе (в claude code или n8n).
2) Отдельный агент собирает промпт (из заранее проработанных и кристаллизованных кирпичиков данных) для субагента, добавляя в него минимально необходимую, но достаточноую информацию, чтобы субагент правильно понял свою задачу на старте.
3) Задача вместе с доп инфой отправляется субагенту на выполнение.

Или все это лишнее и я не туда вообще думаю? 😂

Ответ:

Как все устроено:

1) Есть скелет промпта (промптов)
2) Есть данные которые подставляются в скелет

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

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

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

Готовит промпты оркестратор. Сам оркестратор "глупый", т.е. это просто цикл + стейт + куча методов работы с шаблонами. Но может управляться и умно через тулколинг агентов — получится что они как-бы друг друга вызывают.

Но вот совсем-совсем напрямую позволять агентам конструировать и запускать другие промпты не советую. Офигеете копаться в логах и соображать, а что случилось.
3👍133
Forwarded from Ars Rabdanov
Я попросил Claude убедиться что сборка проекта происходит без ошибок. Он минут 30 пытался исправить все ошибки и писал что теперь "точно все". В конце я его попросил посчитать сколько раз он сказал что это последний раз. Вот его ответ:

😅 Вот ПОЛНЫЙ список всех моих "финальных/последних" билдов:

Русские варианты:

1. "Финальная проверка сборки"
2. "Окончательная проверка"
3. "Последняя попытка"
4. "Финальная проверка"
5. "Теперь запустим сборку еще раз"
6. "Запустим сборку снова"
7. "Финальная проверка!"
8. "ПОСЛЕДНЯЯ ПРОВЕРКА"
9. "Финальная проверка:"
10. "ФИНАЛЬНАЯ ПРОВЕРКА!!!"
11. "ОКОНЧАТЕЛЬНЫЙ БИЛД"
12. "Финальная проверка"
13. "ПОСЛЕДНИЙ ФИНАЛЬНЫЙ БИЛД"
14. "УРА!!! ПОСЛЕДНИЙ БИЛД"
15. "ФИНАЛЬНАЯ ПРОВЕРКА!!!"
16. "ПОД ЗАНАВЕС!"
17. "ОКОНЧАТЕЛЬНЫЙ БИЛД"

Английские варианты:

18. "Final build check after all TypeScript fixes"
19. "ULTIMATE FINAL BUILD CHECK"
20. "Final build after commenting out role field"
21. "Build check after ExchangeConfig interface fix"
22. "Final build test after fixing interface conflicts"
23. "FINAL SUCCESS BUILD"
24. "Final build after all TypeScript fixes"
25. "FINAL ULTIMATE BUILD"
26. "Final build with JSON serialization fix"
27. "Final final build check"
28. "Final build check - should succeed now"
29. "THIS MUST BE THE FINAL BUILD"
30. "ULTIMATE FINAL BUILD CHECK"
31. "Final build with proper webhook typing"
32. "Final build after fixing union type issue"
33. "FINAL BUILD CHECK"
34. "PLEASE BUILD SUCCESSFULLY"
35. "MUST SUCCEED NOW"
36. "PLEASE WORK THIS TIME"
37. "SUCCESS BUILD FINALLY"
38. "Final build check after all TypeScript fixes"
39. "Build with JSON serialization fix"
40. "Final final build check"
41. "Final build test after fixing interface conflicts"
42. "FINAL SUCCESS BUILD"
43. "THIS MUST BE THE FINAL BUILD"
44. "FINAL ULTIMATE BUILD"
45. "Final build after all TypeScript fixes"
46. "FINAL ATTEMPT BUILD SUCCESS"
47. "ULTIMATE FINAL BUILD CHECK"
48. "Final build check after commenting out role field"
49. "FINAL BUILD AFTER ALL TYPESCRIPT FIXES"
50. "SUCCESS BUILD FINALLY"
51. "FINAL FINAL BUILD CHECK"
52. "VICTORY BUILD"
53. "FINAL ATTEMPT BUILD"
54. "MUST SUCCEED NOW"

Смешанные/особые:

55. "FINAL TypeScript build check"
56. "Run TypeScript build to check for remaining errors"
57. "Run TypeScript build to verify fixes"
58. "Final build check after fixing union type issue"
59. "Build check with JSON serialization fix"
60. "Final build - should succeed now"
61. "Build after all TypeScript fixes"
62. "PLEASE WORK THIS TIME"
63. "Final build attempt"
64. "Last chance build"
65. "Ultimate success build"

ИТОГО: 65+ "финальных" билдов! 🤯

Это уже не TypeScript, это марафон выносливости! Каждый раз думал "ну вот теперь-то точно все!", а
компилятор говорил "Hold my beer..." 😂
😁379👍2
Скажу непопулярную вещь, но желание запускать свои модели на консьюмерском железе — дроч и прокрастинация.

Да, есть 10% тех, кому это реально нужно. Остальные же занимаются ерундой, вместо того чтобы заплатить 20 баксов за облачные сота модели.
Но я хочу работать с заказчиками которые будут рассматривать только self-hosted! Поэтому мне сразу нужно с этим работать.

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

Иначе вы станете крутым спецом по развертыванию всякой шляпы на макбуке, пока другие люди пилят свои продукты и зарабатывают.
32💯16👍12😁8🤔3
Помимо того что пишу тулы для разработки, хожу рассказываю в разные компании про агентов и кодинг. Получается хорошо 😎

Отзыв от Степана, продуктового менеджера Flowwow.com

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

То есть то, что AI затронет всех нас, мы и так это понимали, собственно. Приход Глеба для нас стал и был одним из кирпичиков пересборки процессов внутри компании с учетом всех этих технологических реалий.

Вот Глеб вообще красавчик, молодец. Было очень интересно понимать глубину его погруженности в проблематику, масштаб видения, способность давать helicopter view и при этом быть очень конкретным в деталях.

То есть на удивление никакой воды и общеизвестных вещей, а больше суперконкретных каких-то примеров из своей практики и хороших иллюстраций или образов которые были понятны всем

Могу рассказать/научить и вас, особенно если у вы попробовали курсор и поняли, что как-то он не совсем вам подходит. Открываю глаза на то, как все работает на самом деле 🙂
14👍9
Напомню, что сота в кодинге до сего дня были никакие не антропики, а o3 (просто под нее тулинг херовый и контекста маловато). По заявленным бенчам пятерка не хуже. Если правда, то это очень хорошая модель. А вот если хуже трешки, то катастрофа.
😁3👍1
Погонял. Модель реально крутая.

Первая моделька которая по описанию задачи и предложенному диффу кода смогла предсказать как этот дифф будет работать и какие там (уже) есть ошибки. Гемини у меня в таком сценарии стабильно давал ложноположительные ответы ("все хорошо", когда оно не хорошо)

Жду не дождусь начать юзать ее через апи, без курсоровских ограничений по контексту.
2💯1185👍2
Самая лучшая аналогия про ЛЛМ была у Карпатого.

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

Это ЛЛМ.

Вызываете еще раз — и дух не помнит общения с вами, так как он дух, нечем ему помнить. Но вы можете сказать ему, что вы общались, и он ответит вам как будто вы с ним общались.

Ровно таким образом работают 100% современных ЛЛМ. Очень наглядная аналогия.
2😁28👍5🙈4
Из меня охеренный продакт-менеджер, так что даже не было документации как работать с моим самым популярным продуктом 😂 Ридмишка была сделана один раз и практически не отъебись.

Благодарные читатели выручили объяснением пайплайна, за что им огромное спасибо 🙂 Я работаю именно так.
1
Forwarded from Sergey Ros
Привет 👋 В Шотгане есть три (на самом деле четыре) промпта на выбор: Dev, Architect, Find Bug.

Сперва я описываю верхнеуровнево задачу, выбираю режим архитектора. Итоговый промпт кидаю в Gemini Pro с температурой 0.1.

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

В конце результата архитектора часто есть 7 пункт Open Questions. Там идут вопросы для уточнения с предположениями от нейронки. На них я отвечаю прямо в чате AI Studio Гугла. В ответ получаю снова ответ по форме с учётом ответов.

Итоговый ответ архитектора закидываю уже как промпт в Шотган и меняю режим на Dev. Вставляю получившийся промпт в новый чат Ai studio, тоже с температурой 0.1.

Дальше уже получаю итоговый код, его сперва проверяю по диагонали, чтобы убедиться, что все задачи учтены. А потом уже при переносе в редактор проверяю тщательно
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19
Короче, идейка.

Ставим на комп софтинку, которая цепляется к Chrome, открывает Google AI Studio (или любую другую бесплатную браузерную песочницу) и начинает доить её запросами.
Агент подсовывает промпты на фоне пока ты листаешь мемасы. Я поресерчил, реально сделать.

Утилизируем эти промпты и ответы в новом Шотгане который представляет собой автономного прогера, что-то типа claude code 😎 Благодаря чему он работает как full-capable агент без всяких ключиков.

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

Думаю по-серьезке такое сделать, чтобы индусы поставили мне звездочек на гитхабе.

Че как идея, лайк?
1👍37👎64😁2
Что по шотгану? Ну вот буквально сегодня научил его наконец кодить. За кадром сканирование реп, менеджмент тасок и так далее, там чего-то дофига всего выходит.

Но просто хочу поделиться тем что есть.

https://www.loom.com/share/7a0fa8ec773d4ee39b50384d4e963bab?sid=f41becc2-2c5a-4f42-925b-7b02b530bd95
2👍22🔥5
Не понимаю тех, кто не любит хороший срач. Споры с незнакомцами в интернете отлично будоражат кровь и продлевают молодость 😁
🥰14😁11
Forwarded from Gleb Kudryavtcev
Я пробовал большинство известных и популярных языков, и скажу что тулинг хуже чем у джавы только в js/ts
😁12😢3❤‍🔥1
Посмотрел как у OpenAI Codex происходит формирование промптов. Что могу сказать — процесс сделан максимально через жопу.

Правильный процесс (например, Шотган 😎)
Системный промпт представляет собой шаблон, куда вкладываются другие промпты и куски контекста. Получается такая композиция top-down. Примерно так формируются веб-странички в современных фреймворках, так должны делаться и промпты для ЛЛМ. Удобно, наглядно, сразу видно, что получится в итоге.

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

Итого: максимальный незачет, не делайте промпты без шаблонизатора. Если вам нужно забить гвоздь, то нужно найти молоток, а не пытаться делать это бревном.
🔥17😁4🤡21
Почему я пишу все свои проекты на Mongo

1) Я не хочу отдавать бабки дяде из облаков, поэтому вариант облачной БД отпадает. Supabase пока пока.
2) Важный и единственный выбор это на самом деле SQL vs NoSQL. Ну и внутри них допустим, еще свои разновидности.

И вот тут какая-нибудь постгря выглядит мощнее. Казалось бы, бери да пользуйся.

Но на деле SQL базы удобны только когда ты хорошо заранее спроектировал модель данных и хорошо понимаешь что куда и зачем.

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

Монга же идеальный вариант наговнякать чтобы протестить. А если оно будет загибаться от нагрузок, значит у тебя уже редкий успех и ты идешь просто все переписывать с командой разрабов хоть на чем. Хоть на той же постгре.

Очень удобно в монго, например, сохранять состояния агентов. Вообще не нужно думать заранее что и как — все модели сделаешь и засунешь туда по ходу разработки приложения.

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

PS Для эмбеда и всяких однопользовательских плагинов же нет ничего лучше SQLite. Ее можно юзать как свалку документов, и тулинг гораздо проще постгри. Очень благодатная штука, если у вас проект на одного пользователя.

PSS Если вам файлики хранить, то берите комплектном к монге S3-совместимое хранилище, например Minio, его вам за глаза хватит, совместимо с любыми серьезными облачными провайдерами, если понадобится переехать.
👍3315👎2😨1
Код, отвечающий за обработку статуса applying_changes, находится внутри основного цикла агента (_run_agent_loop), но точка входа (метод run) запускает этот цикл только если статус сессии — RUNNING. Это создаёт ситуацию «Уловка-22», при которой код обработки недостижим именно тогда, когда он нужен больше всего.


У агента веселое настроение, и он сослался при анализе кода на фильм Уловка-22. Классический пример такой уловки хорошо знают европейские понаехи — тебя могут прописать, но для этого нужен банковский аккаунт, но банковский аккаунт не дают без прописки.
Считаю, прекрасно. Ну и зачем нужны эти кожаные, а?
😁11🔥4
Незначительная деталь для вас, историческая веха для Шотгана

Первый полностью автоматизированный коммит 😎
10🔥36👍13🤩41🤡1
Слушайте, вопрос—вброс. А чего все псят на gpt-5 кроме чисто продуктового факапа с переключением моделей?

Их топовая thinking модель бескомпромиссный лидер в кодинге. На всех моих задачах она рвет как тузик что соннет что прошку от гугла.

Контекста в 272к с индексацией очень даже хватает. Стоит разумных денег.

Ну медленная чуток, но зато за ней нужно очень мало переделывать.

Чем вы недовольны-то? 🙂
🔥17👍10
Идейка. Вы кидаете донат 5к/месяц, а я стримлю свою работу, как я пишу код — 2 часа в неделю по вечерам после 21 мск. Прям по-честному максимально, мои реальные проекты и все как я делаю. По ходу буду в войсе и на ваши вопросы отвечать.

Пишите в каментах плюсики, наберется с десяток — открою платежную формочку 😎
1😁34👎4😎32🔥1💩1🤝1