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

Основной канал t.me/glebkudr
Личка t.me/glebkudr1
Download Telegram
Ошибки наименования переменных теперь и в промптах. Ня!

The root cause is a variable name mismatch in the prompt templating system. The AgentExecutor prepares a context dictionary with the keys "hypotheses" and "current_understanding", but the Jinja2 template file backend/app/prompts/PDAC/plan.md incorrectly references these variables as {{ hypothesis }} and {{ understanding }}
😁6
Товарищи, колитесь в каментах, кто какие фреймворки для агентов пробовал использовать/ваше впечатление.

Мне посоветовали https://mastra.ai/, выглядит достойно, но там только TS. Завезли ли что-то подобное в питон?
👀2
Сегодня в клубе запускаторов AI продуктов слушали топовые инсайды от Сергея — основателя Нейрохудожника.

Рекомендую, товарищ очень грамотный и приятный. Видел некоторое дерьмо имеет обширный опыт в продажах AI-gen сервиса крупным корпам 😂

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

Если у вас запрос на генерацию картинок или видео, особенно энтерпрайз lvl — обращайтесь, рекомендация от души 🙂
5💯4
Сейчас по пабликам хайпует исследование о том, что дескать AI не помогает, а понижает продуктивность крутых кодеров в реальных зрелых репозиториях.

Народ уцепился за статистику, какие-то матанализы, достаточно ли качественно проведено исследование, а я вам гораздо проще скажу.

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

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

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

Если нужно рассказать и вам — велкам, пишите.
👍25🔥85
Народ, если вы думаете продавать что-то с ЛЛМ-ками, то вот мои наблюдения.

Рынок в стадии обучения

Вас таких продвинутых — пара десятков НА СТРАНУ. 99% народа не вдупляет не то что ваши выводы, а даже факты из которых взялись предпосылки для этих выводов 😉

То есть.

Если строите на этом бизнес — то либо фигачьте b2c/smb сервис, где клиенту вообще пох нейронки там или гравицапа. Тупо консьюмерскую таску закрыть и все.

Либо делайте b2b с упором на объяснение, нахера вы делаете то, что вы делаете. Потому что естественный спрос еще крайне далек от плато, адопшн нейронок в самой ранней кривой роста, и в бизнесе кратно отстает от b2c сферы.
💯2716👍1😁1
Что новенького по порно-генерации?

Сегодня совершенно случайно набрел на мир adult-LoRA в civit.ai

Отключил все фильтры, включая тентакли (да, там есть такой), и окунулся в пучины нейронок.

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

В каментах дал ссылку на одну из качественных моделей в этом деле (18+, требуется регистрация, осуждаем и все такое). Можете оценить сами, так сказать, глубину и перспективу.

Ну а видео подтянется.
😁17🔥32
Вчера первый раз смог запустить ShotgunPro на репе самого ShotgunPro.

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

Так вот, запуск позволил сжать репу в 12 раз.
Из 130к токенов она превратилась в 11к json-кода, полностью описывающем его смысл.

В другом кейсе — бойлерплейт на Astro сжало из 100к до 1.4к, то есть аж в 60 раз, но там было мало внутренней логики.

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

Итоговая оценка качества получившегося сжатия будет основана на качестве поиска необходимых для фич файлов.

То есть берем два кейса.

А) Промпт "выдай файлы для создания функционала X" + весь контекст репозитория.
Б) Промпт "выдай файлы для создания функционала X" + сжатый контекст репозитория.

Задача промпта Б — показать, что он отдает файлы не хуже, чем промпт А. На паре задачек уже это вижу, но хочу потестировать сильнее.

Мой подход со сжатием кодовой базы кому-то может напомнить repomap от Aider, но там это делается без онтологического слоя, а я же стараюсь извлечь из кода бизнес-семантику. Ну и как следствие, думаю, что индекс должен получаться точнее.
👍34🔥97👏1
Промпты в агентских системах — это ядро машинерии. Тем тупее то, что они сплошь не типизированные, и лежат в каких-то голимых шаблонах. Или того хуже — по мнению некоторых фреймворков "они не важны", и их стоит скрывать от разработчика.

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

До фреймворков которые вы мне советовали пока не добрался, надеюсь, что в каком-нибудь из них ровно так и сделано.
🔥10👍2
Глеб, покажи свои ТЗ для нейросеток?

Ну вот. Просто sneak peak того, что валяется в работе прямо сейчас.

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

https://teletype.in/@glebkudr1/7_tkSXUGjFq

Если ваши промпты короче, чем этот — что-то вы делаете не так 😁
👍11🔥2
Дорогие дети, а сегодня мы проходим букву Е

Е — ебучий питон


4.1. Подтвержденная причина: Опечатка в коде доступа к атрибуту
Анализ однозначно показывает, что сбой вызван опечаткой в файле backend/app/worker/agent_executor.py. Код пытается получить доступ к response_data.actions, в то время как правильным атрибутом является response_data.action.
😁27🤣7
Mood 😁
😁25💯2
— Агент, давай ты будешь умно подтверждать действия пользователя, если он хочет, чтобы ты сделал изменения.
— Конечно, господин! Я напишу для этого самый лучший код в мире!

if session.plan_update_status == 'pending_confirmation':
is_affirmative = msg_content.lower().strip() in ["yes", "да", "confirm", "ok", "y", "д", "да, продолжай"]
🤣8
Создатель редиса кодит с AI буквально как я.

— Не пользуется вайб-агентами
— Полностью контролирует контекст нейросети
— Вручную копипастит результаты 🙂

Смущает меня тут только третий пункт. Копипаста все же неэффективна. Поэтому в ближайшее время буду дописывать в шотган-про возможности по кодингу без копипасты.
🔥161
У нас есть секретный чат топовых AI блогеров. Строгий фейс-контроль, внутри только те, кто сами кодят (много), ex ML, CTO и так далее. Серьезные люди, короче.
Классный чатик, люблю его.

via @baginsai @bogdanisssimo
10😁4🔥2👍1
Шотган v2 кусающий себя за хвост, описывающий себя в json

http://jsonblob.com/1400596103002513408

Конденсация 130к токенов -> 5к токенов.

Самый прикол, что можно сравнить два таких сконденсированных состояния, и gemini даст неплохое описание эволюции системы между ними.

Например, сравнение двух стейтов — до крупного патча и после.

Кайфово играться, теперь бы превратить это в продукт 🙂
🔥243
Последнее время модно складывать в репозитории архитектурные файлы, таски и так далее, для помощи агентам в кодинге.

И я сам так делал

Но теперь я скажу вам страшную вещь.

Не нужно этим засорять репозиторий.

Есть источник правды (код), а есть пути его достижения — проектные артефакты, которые могут быть разной степени актуальности и устаревания. Ключевое отличие — темпоральное измерение. Код исполняется одинаково независимо от того, когда его написали. А вот задача годовалой давности на активно развивающемся репозитории вероятнее всего уже не имеет ничего общего с реальностью. И будет только сбивать с толку агента, который на нее случайно наткнется.

В итоге я перестал включать в репозиторий архитектурные файлы и задачи. Безусловно, их нужно уметь оркестрировать и подавать на вход агентам некие выжимки. Но нужно четко понимать их отличие от самого кода, и как следствие — лучше не мешать ежа с ужом, и работать с ними по-отдельности.
👍18💯85❤‍🔥2🤔2
Вероятно, вам нравится подглядывать за моим процессом разработки, так что притащил вам рядовой запрос на изменения, которых у меня генерируется штук 20 в день. Как-то так это выглядит.

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

https://gist.github.com/glebkudr/f7a02b363c95fa6dcb1a36611a184292
👍15
Такс, думаю над релизом нового шотгана

Что можно делать прямо сейчас
— Упаковывать репу в короткий индекс x10-x20 сжатый по контексту
— После индексирования формулировать задачи типа "хочу сделать фичу", и оно тебе выплюнет файлы проекта имеющие отношение к этой фиче.
— Когда есть тексты файлов, дальше можно автоматизировано пройтись по любому текущему воркфлоу шотгана. Например, создать файл архитектуры, и далее закодить фичу, вплоть до автоматического применения диффа.

Инструмент позиционирую как AI помощник для разраба. То есть это не вайбкод тул, а штука которая помогает быстро итерировать цикл "мысль -> архитектура -> имплементация", с возможностью ручного контроля на каждом шаге. С крупными идеями на входе, т.е. сохраняется идеология шотгана о "ван-шотании" фичей в противоположность общению с агентом в чате и просьбе дописывать какие-то мелочи.
Не получилось с первого раза — откатываем результат — и запускаем снова.

Работает оно с ключиком, жрет токены гемини.

Будет успешно работать на репах где-то до 2х млн токенов, больше пока не тестил.

Внимание, вопрос.

В каком минимальном виде вам было бы интересно потестить?
Например, могу собрать MCP который будет только индексировать + отвечать со списком файлов.
Или можете дождаться GUI.

В общем, выслушаю ваши пожелания.
6🔥19👍5
Простой примерчик.

Агент получает задачу:
Хочу при сканировании репозитория и любом другом типе таски, выводить в UI текущий бюджет в токенах, разряды должны разделяться пробелами. Значение должно сохраняться в БД вместе с названием использованной для каждого запроса модели (чтобы в будущем можно было считать бюджет в деньгах).

Таска поступает агенту + туда же подмешиваем скан репозитория (5к сжатого контекста вместо 130к сырого)

Результат в виде json на выходе:
{
"thought": "The user wants to track and display the token budget for all AI-related tasks. This involves modifying both the backend to capture and store token usage, and the frontend to display it. Based on the `current_understanding`, the `LLMService` is the central point for all Genkit calls, making it the ideal place to capture token usage. This data should be stored in the `AgentSession` model, which is managed by the `AgentService` and orchestrated by the `AgentExecutor`. The updated session data, including token counts, then needs to be sent to the frontend via the WebSocket managed in the `AnalysisAPI`. On the frontend, the `analysis` store will receive this data, which will be defined in the frontend types and displayed in a relevant UI component like `AgentStatePanel.vue`. I will select these files to provide as context for the coding agent.",

"action": {
"tool_name": "start_coding_session",
"parameters": {
"files_to_analyze": [
"backend/app/models/agent.py",
"backend/app/services/llm_service.py",
"backend/app/worker/agent_executor.py",
"backend/app/services/agent_service.py",
"backend/app/api/analysis.py",
"frontend/src/types/index.ts",
"frontend/src/stores/analysis.ts",
"frontend/src/components/AgentStatePanel.vue"
]
}
}
}


Обычным питоновским кодом могу выдать как целиком тексты файлов, так и оставить в таком виде.

Такой mcp могу быстро собрать. Только индексируются репозитории сейчас долго — существенный минус, но никак пока не побороть с текущей скоростью LLM.
🔥122
11 августа я снова в Москву. Утро занято, а где-то с 14 до 18 готов прийти к вам в гости и рассказать про контексты, агентский кодинг и так далее. В прошлый раз замечательно сходил в Яндекс и Flowwow, если есть желание позвать в этот раз — пишите 👍

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

Бесплатно без смс, но с вас пространство + аудитория + чай/печеньки. Формат — короткая лекция + QA.
110👍4🔥1