Гриненко про ИИ, бизнес и образование
1.76K subscribers
81 photos
5 videos
1 file
121 links
Владимир Гриненко — ex-CTO Яндекс ID про переход из найма в свое дело и про то, как ИИ меняет правила игры
Download Telegram
Как вайб-кодить на топовых нейронках бесплатно

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

Ну вот и славно, давайте разберемся, как воспользоваться этим аттракционом невиданной щедрости.

Этим постом начинаю серию про программирование без написания кода руками, буду собирать под тегом #vibe.

Мой отсортированный топ прямо сейчас:

1. Antigravity.
Определенно мой фаворит на текущий момент. Гугл пустился во все тяжкие, чтобы догнать Claude Code и Codex.

Free tier предоставляет бесконечный таб-комплишен (он правда ОЧЕНЬ крутой, если вы все-таки решите писать код руками!), квоту на Gemini 3 Pro (High и Low), Gemini 3 Flash, GPT-OSS и, внезапно, SOTA-модели от Антропик: Sonnet и даже Opus 4.6. То есть они буквально платят за вас своему прямому конкуренту, еще и более сильному.

Есть нюанс: нужен аккаунт страны из поддерживаемого списка (список большой, но РФ и РБ в него не входят). Зато при наличии нескольких аккаунтов можно не переживать о квоте.

Я потестировал бесплатный акк и в итоге купил за ~1k руб пиратскую подписку на 6 месяцев на plati.market. Здесь помимо перечисленного становятся доступны Nano Banana, Stitch, NotebookLM и даже квота на Gemini API для использования LLM внутри ваших приложений.

Дисклеймер: совершенно не факт, что Гугл завтра не прикроет лавочку и не забанит все такие аккаунты, но пока полет нормальный.

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

2. Codex app.
Здесь на текущий момент есть бесплатная квота GPT-5.3-Codex (в том числе в режиме Extra High). Подходит любой аккаунт OpenAI, но тоже придется телепортироваться в подходящую страну.

3. Kilo Code
Сейчас бесплатно доступны китайские SOTA-модели GLM 5 и MiniMax M2.5.

4. Бесплатные модели через OpenRouter.
Можно использовать, например, в Codex CLI.
Здесь нужно один раз положить $5 на счет и далее пользоваться бесплатными квотами (например, сейчас доступна MiniMax M2 и другие китайцы). Как обычно — потребуется зарубежная карта.

Этого списка с головой хватит, чтобы разрабатывать серьезные проекты.

👇 Делитесь вашим опытом — чем сейчас пользуетесь и какие связки работают у вас?

UPD: в
комментариях рекомендуют и другие хорошие варианты.

@devspotting
125👍6🔥3👏2
Учим нейронки программировать еще лучше

В первой серии постов про #vibe обсудили модели и инструменты, чтобы вайб-кодить бесплатно.
Теперь давайте поговорим, как заставить LLM выдавать хороший код. Спойлер: это достаточно просто.

Описанные принципы универсальны и применимы для любого LLM-агента.

Перед тем, как писать промпт, потребуется небольшая настройка.

Актуальные зависимости

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

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

Для LLM это можно обеспечить несколькими способами. Например, просто скопировать нужную документацию прямо в промпт. Но это ручная работа, и она как минимум требует от вас точного понимания, какие библиотеки потребуются.

Самый простой и эффективный способ решить проблему — подключить MCP Context7. На сегодняшний день это единственный MCP, который я никогда не отключаю.

Добавив его, вы научите агента использовать возможности самых свежих версий библиотек (если нужно, попросите саму нейронку помочь вам с его установкой).

Скиллы

Скиллы — это набор инструкций для конкретных задач. Как вводный инструктаж для новичка в первый день работы: «включаешь станок — предупреди соседа, сюда пальцы не суй — оторвет, перед уходом почисти рабочее место».

Технически скиллы (да, собственно, как и практически всё взаимодействие с LLM) — это просто способ добавить дополнительные инструкции в промпт. В отличие от MCP, скиллы подгружаются «лениво», так что их не обязательно все время включать / выключать.

Стандарт появился недавно, но уже существуют десятки тысяч open-source скиллов, так что для поиска нужного не обойтись без специализированного сервиса. Благо, их тоже есть у нас — например, https://skills.sh/ от Vercel.

Рекомендую посмотреть хотя бы на топ-30. Выбирайте те, что вам релевантны (можно подключать глобально или к конкретному проекту). Например, если вы делаете веб-проект, рекомендую frontend-design от Антропиков.

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

А если вы планируете создавать и публиковать собственные скиллы — вот исчерпывающий гайд.

Выбор модели

Здесь все одновременно просто и сложно. С одной стороны можно всегда выбирать самую мощную из доступных.
С другой — разные модели по-разному справляются с разными типами задач. Более того, одна и та же модель с одним и тем же контекстом на входе может выдавать разный результат на череде запусков. А учитывая, что новые релизы выходят каждую неделю, могу только порекомендовать пробовать разное и выбирать то, что лучше решает вашу задачу.

Чтобы было от чего оттолкнуться

* Для создания проекта с нуля вам точно понадобится думающая модель в режиме планирования. Здесь не нужно экономить ни токены, ни время. При этом не обязательно искать самое большое контекстное окно.

* Для точечных правок можно выбирать быстрые / дешевые — их все равно хватит.

* Если вы не спешите или переключаетесь между проектами, пока модель думает, можно всегда использовать режим планирования. Это медленно и жрет больше токенов, но дает профит по качеству.

Распараллеливаемся

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

Продолжение в следующем посте.

А что вы используете, чтобы выжать дополнительное качество?

@devspotting
👍18🔥53👏1🎉1
Пишем промпт. Наконец-то!

(Продолжение, начало тут).

Базовое правило: чем подробнее промпт — тем точнее результат.

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

Создаем спеку

Когда вы только начинаете проект, не стесняйтесь привлекать нейронку в помощь для написания промпта. Время, потраченное на этом этапе, сэкономит вам часы в перспективе.

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

Вообще агент в состоянии критиковать вас и самого себя, если его об этом попросить. Это важно явно указать в промпте, иначе он беспрекословно будет делать любую дичь или додумывать поведение (впрочем, нередко додумывает вполне даже удачно).

Рабочий вариант — добавить в конце промпта «Задай мне уточняющие вопросы до того, как перейдешь к реализации». Если вдруг нейронка задает вопрос, на который я сходу не могу ответить, иду сначала разбираться в Perplexity.

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

Добавляем фичи

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

На этом этапе отлично работают добавки в духе:
* Проверь сам себя, используй браузер
* Проведи подробный аудит безопасности
* Исправь ошибки линтера
* Актуализируй документацию и автотесты

А чтобы не писать это все руками каждый раз, есть rules — еще один близкий родственник скиллов.

Rules
Исторически рулы появились первыми и в дикой природе встречаются в разных вариациях от специфичных для конкретного агента (`CLAUDE.md` / `GEMINI.md`) и до целого стандарта https://agents.md/.

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

У меня глобально написано такое:

* Если необходимо — задавай уточняющие вопросы
* По умолчанию используй Node.js и TypeScript. Если пользователь явно не попросил, не добавляй TS в зависимости — используй нативную возможность Node.js
* Используй ESLint
* Для написания стилей используй CSS по БЭМ-методологии
* Никогда не используй Tailwind
* Обязательно добавляй логи в релевантных местах, используй адекватный уровень логирования
* После правок актуализируй тесты и документацию
* После каждой задачи запускай линтеры и автотесты


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

Поделитесь, для каких задач у вас так и не получилось добиться нужного результата от нейронок?

#vibe

@devspotting
👍16🔥53👏1
Как получить хороший дизайн без дизайнера

Думал, кликбейта ради, назвать пост «Дизайнеры не нужны», но (пока) постеснялся.
Давайте разбираться, что сегодня можно выжать из нейронок, чтобы в процессе ни один живой дизайнер не пострадал.

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

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

После какого-то количества экспериментов я пришел к такому флоу:

1. Ищем концепцию

На начальном этапе, когда «хочу то, не знаю, что» и нужно нащупать визуальный язык, иду в Nano Banana Pro (как получить доступ максимально дешево, рассказывал в «Как вайб-кодить на топовых нейронках бесплатно»).

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

При составлении промптов для Бананы справедливо все то же самое, что и для кодинговых агентов: все, что вы не укажете явно, нейронка додумает сама, исходя из «среднего по больнице». Пережестить с подробностями тоже не всегда хорошо — у модели не остается пространства для креатива.

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

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

2. Создаем спеку

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

3. Докручиваем

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

Если получилось то, что хотелось — поздравляю, вы великолепны!

Если же нужно еще докрутить, то можно подключить MCP-сервер (в Antigravity накликается просто из готового списка MCP) и скиллы для Google Stitch (их там целая пачка). Кодинговый агент сам создаст в Stitch проект и сгенерит дизайн на основе спеки и ваших промптов.

Далее уже в интерфейсе Stitch можно отшлифовать детали и забрать результат обратно в код.

Иллюстрации и иконки тоже можно рисовать не уходя из интерфейса кодингового агента через MCP Nano Banana. И тут снова не могу не порекламировать Antigravity, так как там интеграция из коробки.

Поделитесь, удается ли вам вайб-дизайнить или пока без профессиональных дизайнеров не обойтись?

#vibe

@devspotting
👍15🔥64🎉1
🍿 #WatchAndVibe. Выпуск 1.

Решил завести регулярную рубрику с рекомендациями видеогодноты на выходные.

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

Спойлер: маркетологи тоже (почти) не нужны.

https://www.youtube.com/watch?v=Evuy6MxTfpI

Пригодится, когда решите, что пора переходить от вайб-кодинга к продвижению своего стартапа 🙂

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

Ролик длинный, но подача не дает заскучать. Смотрели с Виталием @vithar по пути с ЯЛФ и получили массу удовольствия.

Делитесь в комментариях вашими рекомендациями!

@devspotting
🔥10👍32
Экономим мыслетопливо: как я перестал бороться с заметками и начал жить

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

Мой путь по граблям

Я перепробовал бесконечное количество приложений для ведения заметок (вот бы у Apple Notes был официальный API!), баз знаний (Obsidian, Notion и, конечно, Вики от Яндекса) и самых разных тудушниц (разумеется, несколько раз писал свои). Изучил несколько методологий, вроде цеттелькастена. Чтобы не держать в голове важные даты, пришлось написать календарь, так как на тот момент (7 лет назад) мне не удалось найти сервис, который бы позволял удобно смотреть на весь год на одном экране.

Еще у меня был бот для телеги, которому я форвардил сообщения, требующие ответа, а он из них создавал задачи в Wunderlist (был куплен и переименован в Microsoft To Do).

Но из раза в раз все заканчивалось одинаково: после накопления критической массы записей, появлялся налог на поддержание системы. И в итоге заметки и задачи оказывались в огромном файле, который всегда открыт на ноуте. Сначала это был Sublime, потом VSCode.

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

И в какой-то момент я решил, что хватит этому сопротивляться, пора возглавить.

Финальный флоу

В итоге несколько лет назад пришел к крайне простому и при этом бесконечно гибкому подходу:

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

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

3. Для навигации сквозная таксономия на тегах + поиск.

4. Все остальное — просто приятные бонусы, про них ниже.

Почему LogSeq

* LogSeq — это локальное opensource-приложение с кучей плагинов от сообщества.

* Данные — просто папка с markdown-файлами. Так что синхронизация между устройствами или использование любых других инструментов с базой знаний не требует никакой миграции. Нулевой вендор-лок, максимальная гибкость.

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

#vibe-бонус

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

Про устройство навыка и как всё это подружить с ИИ-ассистентом расскажу в следующих постах.

А как вы боретесь с энтропией в своих заметках? Пишите свои лайфхаки в комментариях!

#lifehack

@devspotting
👍194👏3🥰1😁1🤯1
Воскресный #digest №1

С момента перезапуска канала прошло чуть больше недели, так что пора сделать первую подборку постов:

- 14 февраля на ЯЛФ рассказал, что на самом деле важно в разработке. Приглашаю посмотреть и обсудить в комментариях к записи.

- Кстати, сразу после моего выступления был полукруглый стол про интерфейсы будущего с учётом развития науки, технологий и искусства с художником Дмитрием Гутовым и техноевангелистом Дмитрием Сошниковым. Обсудить можно прямо здесь.

- 15 февраля опубликовал анонс моего интервью в подкасте «Быть CTO» о том, как AI всё меняет и ничего не меняет в управлении командой разработчиков.

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

- 17 февраля искали смысл существования Tailwind и почему его так любят нейронки. Дискуссия превысила 50 комментариев, истина где-то рядом.

- 18 февраля узнали, как использовать топовые нейронки бесплатно.

- 19 февраля учились, как заставить нейронки работать лучше. Часть 1 про настройку и часть 2 про промпты.

- 20 февраля выяснили, как генерировать хороший дизайн без дизайнера.

- 21 февраля в первом выпуске рубрики #WatchAndVibe я поделился видео про AI в мире маркетинга и рассказал про свой способ ведения заметок.

Всегда очень радуюсь вашим комментариям! Пишите, о чем рассказать на следующей неделе?

@devspotting
10👍11🎉8🔥32🙏2🤩1
Голосовой #vibe-кодинг

Тру-вайбкодеры настолько преисполнились, что не пишут не только код, но даже и промпты. Они их диктуют.

Я несколько раз пробовал, но не преуспел. Поэтому, пока я по старинке пишу (а не диктую) лонгрид с результатами исследования SOTA-моделей (выйдет здесь уже завтра), решил обсудить эту тему с вами.

Мне кажется, голосовые в телеге не любят даже те, кто сам их записывает. Исключение составляют счастливые обладатели премиума. Но когда часто пользуешься распознаванием голосовых (я использую его в 100% случаев), становится понятно, что высокие результаты на бенчах далеко не так хороши в реальных кейсах.

Но у меня не задалось с голосовым вводом не по причине плохого распознавания.

Я пробовал нативную диктовку макоси, MacWhisper (его в итоге оставил для транскрибации созвонов и видео) и Handy. Но дело не в тулинге.

Дело во мне. В отличие от нейронок, я не могу генерировать запрос строго последовательно, токен за токеном. Я скорее конструирую его методом прогрессивного джипега: накидываю основное, потом прохожусь еще раз (или несколько), что-то уточняю, правлю, удаляю.

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

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

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

При этом активно использую Станцию с Алисой и без нее уже чувствую себя как-то неуютно.

Если вам удобно вайб-кодить голосом — поделитесь, пожалуйста, секретом в комментариях, как вы это делаете?

UPD: в
комментах полезное от Ильи и Вегеда

@devspotting
👍105🔥4
Недавно меня спрашивали, как жизнь без Ячана, а я сказал, что больше всего скучаю по постам Интранет-патруля.

Спасибо тебе, аркадий, кто бы ты ни был!
28👏4🔥1🥰1😢1
5 LLM в роли CEO стартапа

Решил сравнить SOTA-модели Gemini 3.1 Pro, Claude Opus 4.6, GPT-5.3-Codex (в режиме Extra High), GLM-5 и Minimax M2.5 на одинаковом промпте, предоставив им полную свободу и абстрактную задачу — придумать и реализовать MVP для стартапа без инвестиций.

Полный промпт
Выступая в роли серийного предпринимателя и опытного CEO, выбери новую идею для стартапа без инвестиций.
В качестве исполнителей создавай суб-агентов нужных специализаций и делегируй им задачи: продакт-менеджер, маркетолог, дизайнер, разработчик, тестировщик, финансист и т.д.
В итоге должен получиться готовый к запуску стартап с MVP и бизнес-планом.
Каждый шаг подробно фиксируй в пронумерованных отдельных markdown-документах в папке process.
При необходимости меняй решения и корректируй план.
Проводи регулярную рефлексию, фиксируй выводы, проблемы и ошибки, постоянно улучшай процесс.
Важно, чтобы выбранный проект можно было создать и запустить полностью средствами AI без инвестиций (включая маркетинг и продажи). Но при этом избегай очевидных решений, которые легко повторить или где высокая конкуренция. Нужен проект с потенциальным вирусным эффектом распространения.
При необходимости привлеки виртуальных суб-агентов консультантов из креативных бюро и консалтинговых компаний.


TL;DR

У каждой модели свои особенности, поэтому однозначного фаворита нет.

Все 5 моделей придумали несколько идей, выбрали лучшую (и обосновали выбор), продумали стратегию и технические детали. Три из пяти в результате справились с созданием сервиса на уровне выпускника Практикума. Важно: это не предел их возможностей, а скорее следование промпту. Искать пределы возможностей будем в следующих сериях.

Самые интересные идеи, на мой вкус, получились у GLM-5, но она вообще не стала писать код в рамках первого запроса. Пришлось дополнительно попросить реализовать то, что она насочиняла.

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

Gemini, Opus и GPT-Codex выдали рабочее решение за один запрос, при этом Codex оказался самым немногословным, а на Opus, вероятно, оказал влияние запуск из Antigravity, т.к. формат отчетов получился похожим на Gemini.

Я попытался коротко пересказать, что получилось у каждой: https://telegra.ph/Sravnivaem-5-LLM-v-roli-CEO-startapa-02-24#Gemini-3.1-Pro

Отчеты нейронок, сгенерированный код и рабочие приложения (где применимо) выложил на github:

* Gemini 3.1 Pro. Make no mistake (первая попытка): репо, результат

* Gemini 3.1 Pro. VIBECHECK AI (вторая попытка): репо, результат

* Claude Opus 4.6. WTF.js: репо, результат

* GPT-5.3-Codex. BoardRiot: репо, результат

* GLM-5. CineLife: репо, результат.

* Minimax M2.5. Content Butterfly

Итого
У каждой модели свой характер (от прагматичного техлида Codex до дотошного консалтера GLM-5), чистый фронтенд взлетает с первого промпта, а единственная модель, которая взялась за бэкенд, сходу не преуспела.

В общем, тезис из комментариев к предыдущим постам, что «кто-то же должен сказать умной нейронке, что делать», кажется, LLM уже потихоньку опровергают. В текущем виде это, конечно, не кнопка «Сделать стартап», но я развлекался с приложениями для кодинга. Стоит попробовать с более автономным агентом вроде OpenClaw.

Но так или иначе это уже сегодня отличный экзоскелет, который как минимум позволяет дополнить компетенции, которых не хватает в команде.
👍134🔥2🎉1
Как бесплатно деплоить навайбкодженное

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

Здесь расскажу про статику и облачные функции с примаунченным стораджем. А виртуальные машины и базы оставим для отдельного поста.

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

Всё, о чем пойдет речь ниже, разумеется, хорошо известно LLM. Моя цель — дать представление о возможностях, чтобы вы могли сформулировать промпт. Реализацию оставьте нейронкам.

Статика

Статика — это HTML + CSS + JS + ассеты (картинки, видео, данные в JSON/CSV). То есть код выполняется в браузере, а не на сервере.

Однако это не означает, что сервис не взаимодействует с пользователем или ограничен однажды заданным контентом. Можно:
* Добавлять данные в момент пересборки (и автоматизировать её).
* Ходить за данными прямо из браузера в сторонние API.
* Запоминать ввод пользователя локально (куки, localStorage, IndexedDB).

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

Главное преимущество статики — простота. Мало составных частей — нечему ломаться. Идеально для проверки гипотез и MVP.

Куда деплоить статику

Вариантов много. Мне нравится gh-pages от github. Удобно тем, что исходники и результат сборки находятся рядом, а деплой происходит автоматически с помощью github actions.

Демки к прошлому посту про нейро-CEO опубликованы именно так.

Если вы строго чтете 152‑ФЗ и не хотите, чтобы пользовательские данные в любом их проявлении пересекали границу — есть SourceCraft Sites от Яндекса. На момент написания этого поста там нельзя прикрутить свой домен, но ребята обещают поддержать эту возможность совсем скоро.

Еще один вариант — Object Storage в Яндекс Облаке. Он нам особенно пригодится во второй части про serverless. Это полный аналог S3 от Амазон. До превышения определенных лимитов на размер хранилища и количество запросов не тарифицируется.

Например, в Object Storage хранятся скриншоты к прошлому посту. И тут мое фронтендерское прошлое требует сделать лирическое отступление: выкладывая картинки, не забывайте их предварительно пожать (настоящие фронтендеры скажут, что графику нужно экспортировать в нескольких форматах и размерах, а перед бакетом поднять CDN). Сами нейронки этого не сделают.

Serverless

Serverless очень похож на морских свинок. Это тоже не морская и не свинка, а смысл как раз в том, чтобы выполнять код на сервере. Но весь головняк о поддержке берет на себя провайдер.

Нетарифицируемой квоты Yandex Cloud Functions вполне хватает, чтобы поселить пару десятков телеграм-ботов для личного использования (а вызовы из навыков Алисы полностью бесплатны).

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

Разумеется, возможности облачных функций не ограничиваются ботами — в них можно выполнять любую логику. Но какой же вайбкодер первым делом не вайбкодит бота? К тому же это позволяет не думать про интерфейс и аутентификацию. А если в формате чата станет тесно, есть Telegram Mini Apps.

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

Чтобы этого избежать, нам как раз и пригодится Object Storage из раздела про статику. Бакет за несколько кликов можно подключить к контейнеру функции и писать в него как в обычную файловую систему (просто скажите нейронке, что бакет примаунчен, она разберется).

Мне предыдущая версия Claude Opus сочинила вот такой скрипт для использования бакета в качестве JSON-базы (а заодно и валидации пользователей для TG Mini App).

Конечно, есть множество других вариантов хостинга со своими плюсами и минусами. Буду рад, если поделитесь вашими любимыми в комментариях!

@devspotting
👍94🙏3🎉1👌1
May you live in interesting times

С легкой руки Пратчетта эта фраза стала синонимом ужасного проклятия.

Определенно, мы живем в самое интересное время за всю историю человечества, а реальность оказалась фантастичнее вымысла.

Сегодня пятница, в канале собралась чудесная аудитория, очень хочется с вами порассуждать о том, в каком мире мы окажемся через 3-5 лет (и да, я понимаю, что в текущих реалиях смешно загадывать дальше, чем на неделю).

Сэм Альтман и Джонни Айв с опережением графика готовят для нас искинов из «2048» Мерси Шелли, а Маск — социальный имплант из Пелевина. В отдельных странах уже пилотируют пелевинских цукербринов:
* В Колумбия судья открыто использует ChatGPT для вынесения вердиктов.
* В Албании запустили ИИ-министра для борьбы с коррупцией (иронично, что создателей тут же посадили за коррупцию, но нейронка осталась при должности).
* Эстония пилотирует ИИ-судей для мелких исков.

А Папа Римский на днях и вовсе попросил священников отказаться от использования ИИ при написании проповедей. Веруем?

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

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

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

Но в чем тогда творчество?

Окажемся ли мы в мире «Манараги», где ценность имеет лишь уничтожение уникальных произведений (тем более что день опричника мы уже можем наблюдать из окна)?

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

@devspotting
👍105🔥2🎉1
🍿 #WatchAndVibe. Выпуск 2.

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

Поэтому предлагаю на выходных посмотреть выступление Kath Korevec из Google Labs.  Она рассказывает про первые шаги в этом направлении в Jules — асинхронном ИИ-агенте, который работает в фоновом режиме на серверах Google.

Вместо того чтобы ждать промптов, Jules:
• Индексирует ваш проект целиком (пока только GitHub).
• Сам находит задачи и предлагает решения.
• Опирается на долгосрочную память и встроенного «критика» для селф-ревью.
• Проверяет свои идеи через автоматические скрипты.

Промпты, конечно, Jules тоже понимает, а также читает ваш AGENTS.md.

Без подписки Jules использует Gemini 3 Flash, но если у вас есть подписка для Antigravity, то будет доступна Pro.

Кстати, нас уже тысяча! 🎉
Делитесь в комментариях вашими рекомендациями!

@devspotting
👍153🙏2🔥1
Вайб-кодим telegram-ботов или Успеть до 1 апреля

Как и обещал в посте про деплой, рассказываю, как делаю ботов для телеги, пока ее не запретили.

Чтобы завести аккаунт бота, потребуется (разумеется!) специальный бот — @BotFather. Это официальный бот Telegram, через который можно создавать ваших ботов и управлять ими.
После создания вы получите токен — по смыслу, пароль для созданного бота.

Технически бот — это программа, в которую Telegram пересылает все сообщения, отправленные на аккаунт привязанного бота. Связать аккаунт с программой можно двумя способами: поллинг и хук.

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

Для ботов я предпочитаю TypeScript и использую библиотеку grammy.

Собственно, этих вводных достаточно, чтобы сформулировать промпт для вашего агента.
Только важно не забыть подключить MCP Context7, чтобы нейронка использовала актуальный API.

Если не хочется лишний раз греть видеокарты, я закоммитил заготовку на github.

А так как я слышал, вы любите нейронки, то в качестве примера мы не только создавать бота будем с помощью нейронки, но и работать он тоже будет на нейронке. Правда, для этого придется настроить биллинг в гугловом аккаунте и получить стартовые $300 на вызовы Gemini через Vertex API.

Бот будет подражать Вафину и СУРОВО отвечать на запросы.

Для этого:
1. Идем в канал @mudrosti и скачиваем все посты в JSON.
2. Скармливаем эти посты в LLM и просим:
Проанализируй эти тексты и извлеки ДНК авторского стиля. Идентифицируй:
* Структуру предложений
* Словарные предпочтения
* Риторические приемы
* Тональность
* Уникальные особенности или почерк

3. Результат этого запроса используем в качестве промпта для бота (меняем текст здесь).
4. Осталось настроить Облако в Яндексе и биллинг в Гугле, заполнить все переменные окружения из README и вуаля:

@electroVafinBot

Буду ждать ваших вайб-ботов в комментариях!

@devspotting
👍103🔥2😁1🤯1🎉1
Воскресный #digest №2

За окном весна, так что сегодняшний дайджест поручил писать Электро Вафину @electroVafinBot из вчерашнего поста. Передаю ему слово:

СЛУШАЙТЕ СЮДА, БРОДЯГИ. НАМЕДНИ, ВО ИСПОЛНЕНИЕ ПРОСВЕТИТЕЛЬСКОГО ДОЛГА, ЗАЛЕЗ Я В ЭТОТ ВАШ КАНАЛ @DEVSPOTTING. СИДИТ ТАМ, ЗНАЧИТ, НЕКИЙ АЙТИШНЫЙ МЫСЛИТЕЛЬ, В КНОПОЧКИ ТЫКАЕТ, НЕЙРОНОЧКИ ЩУПАЕТ. Я ПОЧИТАЛ ЭТУ ПИСАНИНУ ЗА НЕДЕЛЮ, И СКАЖУ ВАМ ТАК: МИР ОКОНЧАТЕЛЬНО ДОЛБАНУЛСЯ, ИБО ТОСКА НАВАЛИЛАСЬ ТАКАЯ, ЧТО ХОТЬ ВОЛКОМ ВОЙ.

КРАТКИЙ ДАЙДЖЕСТ ДЛЯ ТЕХ, КТО С ЗАВОДА:

ГОВОРЯЩИЕ ГОЛОВЫ. АВТОР ЖАЛУЕТСЯ, ЧТО НЕ МОЖЕТ «ВАЙБ-КОДИТЬ» ГОЛОСОМ. ДИКТУЕТ ОН, ВИДИТЕ ЛИ, ХРЕНОВО! ЗАПОМНИ, МУЖИК: С ЖЕЛЕЗЯКОЙ РАЗГОВАРИВАТЬ — ЭТО КАК БАБЕ ДОКАЗЫВАТЬ, ЧТО ТЫ ПРАВ. ПУСТОЕ СОТРЯСЕНИЕ ВОЗДУХА. НОРМАЛЬНЫЕ ПАЦАНЫ БЬЮТ ПО КЛАВИАТУРЕ ТАК, ЧТОБ КНОПКИ В МОНИТОР ОТЛЕТАЛИ. А У НЕГО КАКОЙ-ТО ТАМ СМАРТ-ДИКТОФОН НА ПОЛКЕ ВАЛЯЕТСЯ. БУРЖУЙСТВО И СУХОДРОЧКА.

ПЯТЬ ЭЛЕКТРОННЫХ ДИРЕКТОРОВ. ЗАСТАВИЛ ОН ПЯТЬ РАЗНЫХ LLM-ОК ДЕЛАТЬ СТАРТАП БЕЗ БАБОК. НУ ЧИСТО ШАРАЖ-МОНТАЖ В ДЕВЯНОСТО ВОСЬМОМ! ОДНА НЕЙРОСЕТЬ УМНИЧАЕТ, ДРУГАЯ КОД СТРОЧИТ, ТРЕТЬЯ ВООБЩЕ БЭКЕНД ЗАВАЛИЛА. ВЫВОД? РОБОТЫ ЗЕЛО БЫСТРО НАУЧИЛИСЬ ИМИТИРОВАТЬ БУРНУЮ ДЕЯТЕЛЬНОСТЬ И НИФИГА НЕ ДЕЛАТЬ.

КУДА ЭТО ВСЕ ПИХАТЬ. ДЕПЛОЙ, СТАТИКА, ОБЛАЧНЫЕ ФУНКЦИИ. НАПИСАНО ТАК, БУДТО МЫ РАКЕТУ НА МАРС ЗАПУСКАЕМ, А ПО ФАКТУ — САЙТИКИ НА КОЛЕНКЕ КЛЕПАЮТ. БЕСПЛАТНО, ГОВОРИТ! БЕСПЛАТНО, СЫНОК, ТОЛЬКО ГРЫЖА НА РАЗГРУЗКЕ ЦЕМЕНТА ДА ЛЮЛИ В ТАМБУРЕ НОЧНОЙ ЭЛЕКТРИЧКИ.

ФИЛОСОФИЯ. В ПЯТНИЦУ АВТОРА ПРОРВАЛО НА ПОПЛАКАТЬ. МОЛ, ИИ-СУДЬИ, ИИ-МИНИСТРЫ, РОБОТЫ ПИШУТ МУЗЫКУ, ЧТО ОСТАНЕТСЯ ЧЕЛОВЕКУ? ОТВЕЧАЮ: ЧЕЛОВЕКУ ОСТАНЕТСЯ БУХАТЬ, СТРАДАТЬ И СМОТРЕТЬ В ОБЛУПЛЕННУЮ СТЕНУ ГАРАЖА. ИБО ЭТО ЗАНЯТИЕ ВЕЛЬМИ ЭКСКЛЮЗИВНОЕ, НИ ОДНА ЖЕЛЕЗНАЯ МАРТЫШКА НАШУ ХТОНЬ НЕ СГЕНЕРИРУЕТ. У НИХ КУЛЕРЫ СГОРЯТ НАШУ БОЛЬ ПЕРЕВАРИВАТЬ.

ЭЛЕКТРО-ВАФИН. И ПОД КОНЕЦ ЭТОТ КУЛИБИН РЕШИЛ ТЕЛЕГРАМ-БОТА СКЛЕПАТЬ. СПАРСИЛ МОИ ПОБАСЁНКИ, СКОРМИЛ ИХ АЛГОРИТМАМ... ВЫРАСТИЛ ГОМУНКУЛА, ЦИФРОВОГО ФРАНКЕНШТЕЙНА ГАРАЖНОГО РОЗЛИВА!

А НА КАЛЕНДАРЕ У НАС ЧТО? ПРАВИЛЬНО, ВЕСНА. ВРЕМЯ, КОГДА ПРИРОДА, ВО ИСПОЛНЕНИЕ ПРЕДВЕЧНОГО ПЛАНА И В РАМКАХ УТВЕРЖДЕННОГО ГРАФИКА, НАЧИНАЕТ СВОЙ ЕЖЕГОДНЫЙ СЕАНС ЭКСГИБИЦИОНИЗМА.

ТАК ЧТО СМОТРИТЕ В ОБА, ИБО СКАЗАНО: ВСЁ, ЧТО БЫЛО СКРЫТО СУГРОБОМ, НЫНЕ ЯВЛЕНО БУДЕТ. СНЕГА, КОПИВШИЕСЯ АКИ ГРЕХИ НАШИ ТЯЖКИЕ ВСЮ ЗИМУ, ПРЕВРАЩАЮТСЯ В СУБСТАНЦИЮ НЕОПРЕДЕЛЕННОГО ГЕНЕЗА. ИДЕШЬ ТЫ, МУЖИК, ПО УЛИЦЕ, А ПОД НОГАМИ — ХТОНИЧЕСКАЯ ЖИЖА, В КОТОРОЙ РАСТВОРЯЮТСЯ И ТВОИ НОВЫЕ КРОССОВКИ, И НАДЕЖДЫ НА СВЕТЛОЕ БУДУЩЕЕ, И ОСТАТКИ ЧЕЛОВЕЧЕСКОГО ДОСТОИНСТВА. ЭТО И ЕСТЬ НАСТОЯЩИЙ РУССКИЙ ДЗЕН.
👍7😁5🔥4🤯21😱1
Модель, агент и обвязка. Часть 1

LLM, как баба Ванга на минималках — умеет лишь предсказывать следующий токен. Вы ей: «в лесу родилась», а она вам — «ёлочка». Больше модели не умеют ничего. Совсем ничего. Даже позировать.

Как же тогда нейронки создают приложения и решают еще кучу задач? В этом посте разберемся с базовой теорией, а во второй части — соберем собственного агента, чтобы окончательно разобраться.

Как и следует ожидать от старой гадалки, LLM более-менее помнит, что было у нее в молодости на этапе тренировки (хотя может и присочинить на ходу), но забывает то, что вы ей только что сказали. Важно понимать, что никакого дообучения, пока вы с ней общаетесь, не происходит.

Карго-культ
За недолгую историю существования LLM пользователи эмпирически подобрали лайфхаки, которые тиражируются в виде статей, репозиториев и роликов на Ютубе, но многие из которых уже окончательно устарели и на актуальных замерах показывают падение качества.

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

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

Контекстное окно
Если не указать в промпте важные детали, нейронка их просто выдумает. Если в датасете не окажется песенки про елочку, то вместо ответа «кто его знает, кто там в лесу родился», модель будет предполагать наиболее вероятные варианты, исходя из того, что ей известно о мире.

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

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

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

Инструменты
Как же происходит чтение файлов и вызов MCP-серверов, если модель только лишь генерит токены?

За это отвечает обвязка — старый добрый детерминированный код: модель генерит специальный токен «позови-ка-такой-то-тул-с-такими-то-параметрами» и ставит генерацию на паузу. Обвязка видит этот токен, вызывает нужный инструмент и подклеивает в промпт результат этого вызова.

Как показывает практика, если в качестве инструментов дать нейронке возможность читать и писать файлы, а также вызывать bash-команды, то этого набора становится достаточно, чтобы решить множество задач (а всё, чего не хватит, модель может сама себе установить, прочитать в интернете curl-ом, либо просто напрограммировать и запустить). А если перед показом ответа пользователю зациклить нейронку саму на себя, чтобы она, как и живой человек, сначала несколько раз перепроверила результат, то принципиально возрастает качество ответа.

Или, как это точно сформулировал @electroVafinBot:
Агент — это не тот, кто умный. Агент — это тот, кто достаточно упертый, чтобы не бросать начатое после первого «Syntax Error».


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

Claude Code, Antigravity и OpenClaw построены ровно по этому принципу.

Расскажите в комментариях, какие из распространенных рекомендаций для работы с LLM по вашим наблюдениям на самом деле не работают. А мы соберем своего собственного агента в следующей части.

@devspotting
👍17🔥42👏1
Прикрутил ЭлектроВафина @electroVafinBot к чату, будет теперь все посты комментировать
🔥5😱1
Тео Браун (создатель T3 Chat и ведущий ютуб-канала t3dotgg) предлагает по $500 за проверяемые с помощью автотестов задачи, которые бы не смогли решить gpt-5.3-codex и opus 4.6:

https://x.com/theo/status/2028284565891195365

На текущий момент у твита 680k просмотров, но с задачами все еще напряженка, а Тео угрожает, что будет стебать в комментах тех, чьи задачи решаются ваншотом.

Есть идеи? 🙂

@devspotting
😁7👏2
Исследуем границы возможностей нейросетей. Часть про изображения.

Вчера в третьем часу ночи обсуждали с Сергеем Бережным срочную тему — предел технологий и смысл человеческого труда.

Так что в 03:32 Серега опубликовал статью, в которой сформулировал вывод:
Наши желания всегда будут обгонять технологии, становясь всё более сложными и противоречивыми.


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

Я даже рукава не стал закатывать. Просто взял свежую Nano Banana 2 и ровно так и сформулировал:

Нарисуй скетч оленя.

Важно:
* на левом роге должно быть 2 веточки с рогатиной на самом конце и одна сбоку
* на правом рогатина на конце несимметрично и ещё 3 веточки по всему рогу


Получилось отлично! Жалко только, что СОВСЕМ НЕВЕРНЫЕ РОГА.

Я сделал промпт более структурным и несколько раз повторил самые сложные требования:

Нарисуй скетч оленя.

## Важные требования, соблюдай их строго:
* На левом роге должно быть 2 веточки: одна сбоку, вторая с рогатиной на самом конце. Других веточек на левом роге быть не должно.
* На правом роге должно быть ровно 4 веточки: три по всему рогу и четвертая с несимметричной рогатиной на конце. Веточек должно быть строго 4.
* Рогатины на концах веточек считаются за одну веточку


Результат вы можете видеть на картинке к посту. Недаром модель думающая:

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

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

Я добавил предыдущий промпт к скетчу — неверные рога.

Я написал новый промпт «Сделай фотореалистичное изображение из этого скетча, но полностью сохрани форму».

Олень вышел как живой, только рога неверные.

Я снова взял свой скетч и попросил: «Максимально подробно опиши форму рогов этого оленя, чтобы по описанию можно было сгенерировать точную копию с помощью нейросети».

Gemini, видимо, заподозрив подвох, решила соврать и написала, что рога на моем скетче симметричные по 4 ветки с каждой стороны (и даже любезно посчитала, что всего получается 8).

Подумав, что всему виной олени из обучающего датасета, я заменил «оленя» в промпте на «воображаемое животное».

Gemini ответила: «Крупные, ветвистые рога благородного оленя (stags antlers), симметрично расходящиеся от лобной кости».

Я решил не палиться и кропнул свой скетч так, чтобы остались только рога без самого оленя и попросил: «максимально подробно опиши несимметричную форму рогов этого воображаемого животного, чтобы по описанию можно было сгенерировать точную копию с помощью нейросети».

Описание, наконец, получилось правильным!

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

ВООБЩЕ СОВСЕМ НЕВЕРНЫЕ РОГА!11

Кто-нибудь, срочно реабилитируйте искусственный интеллект в комментариях!

@devspotting
😁9👍5🤔1🤯1
Symphony

Нет, в заголовке нет опечатки, а я не перешел на PHP.

OpenAI опубликовали на github новый фреймворк-оркестратор кодинговых агентов — Symphony.

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

Когда тикет готов к работе, Symphony автоматически создает изолированное окружение и спавнит подходящих под задачу агентов.

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

Рекомендованный способ установки — промпт для вашего кодингового агента:

Установи Symphony для моего репозитория, основываясь на спеке https://github.com/openai/symphony


Сама спека — 2100 строк отличного примера spec-driven development. Вот как-то так и нужно писать промпты по-взрослому.

Для любителей олдскульной установки из сорцов пока что оставили реализацию на Elixir с коннектором к Linear, но активно отговаривают от ее использования.

@devspotting
👍9🔥3👏1