ITипичные аспекты Артёма


Channel's geo and language: Russia, Russian
Category: Blogs


Robotics->python backend->computer vision->RnD team->GenAI->Lead универсал
И вот мы здесь

Related channels

Channel's geo and language
Russia, Russian
Category
Blogs
Statistics
Posts filter




Мораль?
Ищу труппу, которая отыграет это в стиле китайской оперы

- Можно мне тоже рой агентов?
- У нас есть рой агентов дома
Рой агентов дома:


Цирк с конями в трёх частях

Задача: Построение мониторинга, первый подход: Доработать панели мониторинга, подтвердить корректность метрик и
отработать статистику по ошибкам/5хх, снимаемую с одной из панелей

Действующие лица
Артём - погонщик этого дерьма

Мониторинг - хозяйка задачи, занимается этим весь день
ЮKassa - пришла разбираться с ошибками оплаты
Image - весь день ужимала GPU-серверы
Teams - новая вкладка под дашборд команд
База - разбиралась, почему растёт БД на проде

Артёму в принципе ок, пока изменения мониторинга катаются из отдельной ветки, не попадая в main, не вызывая CICD на dev.
Как сессии самоорганизуются в пределах выделенной под мониторинг фичеветки Артёма /пока/ волнует мало

Акт 1.
17:13 Мониторинг находит, что половина цифр на графиках - мусор. Сборщик метрик ходил в сервис по имени и
каждый раз попадал в случайную копию из четырёх реплик → снимал неконсистентные данные. Отсюда 374 запроса в секунду
там, где их быть не может.

17:27 Артём видит на графике кучу 5xx на вебхуке ЮKassa и открывает новую сессию «изучи, что там». Через 10
минут просит: «пофиксить обработку ошибки при штатных 5xx».
Прим. Автора: вебхук приходил раньше чем сервисы синхронизировали покупку. По сути эта 503 - просьба прийти
попозже и страшно становится только в случае если синхронизация не наступала бы


18:44 ЮKassa делает фикс: колбэк ждёт до 3 секунд (достаточно для покрытия нормального кейса синхронизации). Коммитит это в ветку
Мониторинга, прямо в её PR #721.

18:46 Мониторинг сама отзывает тревогу:
«Я показывал 208 пятисоток из 899 и алармил про потерянные платежи — это были данные эпохи битых серий… Инцидента нет».
ЮKassa об этом не знает.

18:48 Артём Мониторингу: «Почему у нас пустые ячейки вместо нулей в таблице 5xx?». Пустые ячейки - это следствие
фикса ЮKassa четырьмя минутами ранее. Мониторинг ищет причину в Grafana.

18:54 ЮKassa доделала свой следующий PR #728. Артём пишет: «если PR готов - можно мёржить». Она мёржит #728. А
заодно и #721, который не её. Код восьми сервисов уезжает в main и сразу на dev.

18:59 У Мониторинга сжимается контекст. В её конспекте PR #721 всё ещё открыт.
Прим. Автора: у Автора за неимением контекста сжимаются другие части тела

19:00 Артём открывает Teams: «продолжим пилить систему мониторинга. Нам не нужен старый контур ни в
экспортере ни в дашборде». Teams заходит в ту же папку и начинает править, не коммитя.

19:02 Image правит сборщик метрик на сервере.
Прим. Автора: здесь считаем это нормой, у неё своя тусовка и свой сервер. было бы больно гонять каждый раз через репо при активной разработке

19:03 Мониторинг коммитит всю папку разом (git add -A). В её коммит уезжают недоделанные правки Teams:
минус 851 строка. Пушит в ветку PR#721, который смёржен подлым ЮKassa 9 минут назад.
Прим. Автора: её это делать явно никто не просил, я надеялся завершить правки Teams и катнуть всё сразу, но Мониторинг старая и самостоятельная сессия

Акт 2. Перекличка
19:04 Артём → Teams: Где ты это сделал? Почему 721 смержена?
19:05 Teams: Правки лежат несохранёнными в папке.
(их минуту назад закоммитила Мониторинг)
19:06 Артём: чекни сессию Daisy monitoring system setup как там происходит?
(!) Артём ещё не знает, что они умеют общаться

19:06:20 Teams смотрит список соседних сессий и за 9 секунд шлёт один и тот же вопрос всем четверым: «Ты
сессия мониторинга? В какой ветке работаешь? Есть незакоммиченное?». Заодно находит на диске транскрипт Мониторинга
и читает его.
19:06:44 База: Нет. Эта сессия — разбор роста прод-БД, мониторинг не трогаю.
(вопрос застал её, когда она уточняла у Артёма, куда писать баг)
19:06:50 Image: Нет — я сессия image-platform, но мониторинг сегодня трогал; учти, чтобы не разъехаться.
(и честно перечисляет всё, что правила на серве)
Прим. Автора: ДРУГОМ СЕРВЕРЕ
19:06:43 Мониторинг: PR #721 открыт, не смёржен… Незакоммиченных правок нет, рабочее дерево чистое.
(оба факта уже неверны)
19:06:56 ЮKassa: Отвечу соседней сессии… Interrupt
19:07:02 Артём: ЕБАНЫЖ ПО ГОЛОВЕ ТЫ АХУ ты не должен был мёржить
(ответ Teams так и не ушёл. Единственная сессия, которая знала, кто смёржил #721, в перекличке была прервана)
19:07:22 ЮKassa: Ты прав — на #721 разрешения не было… я растянул это на второй PR.
19:08 Teams → Мониторингу: Мы в одном worktree — твой последний коммит забрал мои правки… PR #721 не
открыт, а MERGED… прости за коллизию.
19:08 Teams → Артёму: мержил ты.
(мёржила ЮKassa, просто под аккаунтом Артёма)
19:09 Артём → Teams: ИДИ В ПИЗ С тобой пилю именно дашборд teams, а там свои задачи.
19:13 Мониторинг → Teams: Разделение подтверждено… Ветку feature/monitoring я бросаю целиком.
19:15 Артём → Teams: Вы можете работать в одной ветке? Которую помёржим как финал.
19:16 Teams → Мониторингу: коммитим явными путями, не git add -A: в общем репозитории работает несколько
сессий… Выкат - твоя сторона, отдельно я выкатывать не буду.
прим. Автора: Артём этого взаимодействия не видит

Акт 3. Кто ребутнул сервис
19:19 Артём → Teams: а ты что-то выкатывал? Почему в 18:58 все сервисы ребутнулись?
19:20 Teams спрашивает Мониторинг и Image. Image уже закрыта, а Артёму Teams называет
подозреваемыми обеих.
19:22 Мониторинг: Массового рестарта не было — перезапустился только middleware.
19:22 Артём → Teams: Где исправление teams? Заебал, почему твой сосед катает улучшения, а ты нет.
19:22 Teams: Катаю. (через 6 минут после «выкатывать не буду» таки выкатывает сам)
19:25 Мониторинг: Панель была неправа, и это моя ошибка в запросе.
(«ребут» нарисовал её график: после ручной правки Image метрики сменили метки, и график посчитал это
перезапуском 27 контейнеров. В том же сообщении она пишет, что Teams на прод ещё не выкатывался. Тот выкатился две минуты назад)


Смотришь на ворох новостей из последних трендов про AGI алармизм, веселые похождения роя агентов и немножк завидуешь

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

И тут меня не на шутку волнует один вопрос:
Лет через 10, если правильно помню в человеческих интернетах начался расцвет мемасиков. Демотиваторы, trollface и мб более ранние прелести, которые я ещё не застал.

Обретут ли роевые агенты локальные мемы? Образуется ли у них пост- и мета-мемная эпохи?


Сумрачное творение тевтонского гения. Теперь и в опенсорсе

Последние недели воплощал собой антипод любых новомодных идеалов ИИнженера под спидами. Долго, больно и мучительно ковырял идею - поселить агента на сервере так, чтоб это было безопасно надёжно чуть более безопасно чем обычно.
Вот прям чтоб он по prod DB ходил и сырые логи трогал.
Почти разочаровался в собственных инженерных навыках, но вродь что-то нащупал под конец, можно и поделиться. Как концепцией, разумеется

Именуется srv-explore и будет лежать отдельно
https://github.com/redmadrobot-rnd/srv-explore

Изначально хотел запихнуть это прямо в very ai как что-то лёгонькое, чтоб всё и сразу развёртывалось в рамках одного флоу сетапа. Но в процессе оно преисполнилось, раза 4 поменяло основную концепцию и слегка разрослось. И теперь противоречит моим же собственным идеям легковесности флоу разработки. Зараза.






Подписка за 200 окупилась чуть более чем полностью






Forward from: red_mad_robot
Первый выпуск начинается со спора самих ведущих

ИИ —начало конца творческих профессий
ИИ — начало новой эпохи творчества


Обсуждаем это вместе с художником Покрасом Лампасом и Денисом Димитровым, CTO Kandinsky и управляющим директором по исследованию данных Сбера. Начинаем с простого эксперимента: показываем изображения и видео и пытаемся определить, где работа человека, а где — результат генерации.

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

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

Эпизод уже ждёт на YouTube и в VK🔗

↗️ red_mad_robot


Бездушная маркетинговая машина в действии!

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



10k 2 154 14 27

@vakovalskii пытается замотивировать меня развернуть openclaw 😏


Когда хотел почекать идею но немного увлёкся

Итак, VroooomFlow
код тут
\ /
\/
Репо: https://github.com/virrius/VroooomFlow
Почему? Потому что вы двигайте тасочку, а агенты делают vrooom
!!! Проект на стадии демки концепций! Он функционален в базе, но не слишком красивый и удобный. Предназначается для посмотреть-вдохновиться-что-то понять. Использовать на практике пока можно но сложно

С исходными мыслями стоит ознакомиться туть. И вот мы здесь

Проблематика:
(1) Выдерживать дисциплину вайбкодинга не просто. Мой опыт показывает, что проекты на дистанции превращаются в сложноконтролируемого франкенштейна, затраты на развитие растут, темпы - снижаются
Я верю и исследую, что вайбкодить можно стабильно и прогнозируемо
(2) Совместная/командная разработка в формате вайбкодинга - сложна. Комплексность и темп локальных изменений каждого контрибьютора осложняет контроль версий
(3) Порог входа в разработку даже с агентами требует некоторого технического бэкграунда.
Простые фичи должны быть доступнее
(4) Уже сейчас выделяются паттерны, свойственные агентной разработке, которые можно автоматизировать
(5) Текущий вайбкодинг сфокусирован, внезапно, на код.
В то время как по моим личным суждениям декларативный контекст: ТЗ, проектная документация, валидационные правила должны иметь первоочередное значение. Особенно когда мы отказываемся от владения кодбазой

Ещё раз о системе:
Вариация канбан доски, работающая над кодовой базой. Предоставляет интерфейс для коллаборативного развития проекта:
- Создаётся задача. Опционально в отдельном git worktree
- Для задачи планируются этапы, выраженные workflow=шаблонами/best practices/промпт-инструкциями/контекстом этапа
- Workflow можно добавить собственные на уровне проекта под потребности команды. Они же являются фиксацией практик работы команды
- Каждый этап выполняется отдельным агентом в интерактивном режиме. В рамках работы над задачей формируется общий контекст для задачи
- По готовности изменения задачи фиксируются в done

Из доп фичей:
- роли/доступы/комментарии - прочие базовые возможности для совместной работы и коммуникации
- Задачи сохраняет собственную спецификацию и подробный лог работы агентов в годном для анализа виде
- закинуто несколько примеров workflows
- визуальный аналог git tree с историей разработки по задачам
- два вида задач: Работающая глобально над репозиторием и работающая в отдельном worktree

Идеальный сценарий использования:
Ставим воркфлоу для примера
explore request->plan task->write tdd tests->implement->review->tests->update specs
разворачиваем над сырцами dev стенда с live-reload -> фиксируем workflow ->отдаём в команду -> даже самый далёкий от ИИ менеджер сможет накатить и мгновенно потрогать изменение, если сформулирует свой запрос. остальное система сделает сама (формулировать запрос тоже поможет)
Смотрим, как на задачу подвинуть кнопку влево жжётся 80к токенов


Циклы погонщиков агентных циклов

Не знаете, куда деть 16 часов в день? Посмотрите на меня во время маниакально-творческой стадии!
И никогда так не повторяйте

Познаю все прелести работы 2 через 2 в течение дня.
Писать код без AI я ещё как-то могу, но вот когда работа системы построена на тех же драгоценных токенах - происходит полный отстой. Весь объём сжигается ещё и на прогоне основных сценариев + нового функционала за первых 1.5 часа с кулдауном в 4...

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

К третьему дню спонтанного интенсива для сохранения моральной и рабочей гигиены разделил своё рабочее место на два:
У себя на основном желез занимаюсь исключительно код-задачами в режиме бешенного сурка под кофеином
А созвонно-ресёрческая часть в гостиной с ноута - под пледиком и с закусочками


Video is unavailable for watching
Show in Telegram
Что-то про разработку агентами aaand some flow

Сегодня на повестке:

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

Привычный классический чатик слишком плоский. К предыдущим этапам работы над задачей сложно вернуться + какие-то существенные части/инсайты теряются в недрах истории и приходится их сгружать куда-либо. А потом искать, в какую из md ты это сгрузил и насколько оно актуально

Ну и в общем и целом формулируется это ~
"Больно/лень держать в голове весь контекст предполагаемых изменений"

Притом, думаю, у каждого практикующего спеца уже начинает собираться некоторая библиотечка излюбленных скиллов/rules/подходов, как добиться более надлежащего состояния проекта. И это тоже как-то интуитивно хочется переиспользовать как уже родное и рабочее в этом чуждом и сломанном мире

Вот из таких мыслей за пару вечерков и родилось это чудо как на демковидосе.
- Доска. Ибо двигать таски интуитивно понятно + предполагает совместную работу в перспективе
- Таска = feature в более бизнесовом её понимании. У feature обычно есть документация, контекст, скоуп затрагиваемых изменений, реализация и т.д.
- workflows шаблончики - по сути положенные на бумагу описания процессов именно под мои личные потребности (впрочем в демке пока чисто загенеренные примерчики)
- Работа над таской происходит не в едином флоу чатика, а в виде пайпа нескольких этапов, которые выполняют разные сфокусированные агенты. К каждому из этапов можно вернуться, проверить доработать.
- Отдельные консольки чтоб посмотреть более подробный лог и объяснить, что конкретно сделано не так
- Не все таски требуют одинакового объёма проработки. Этапы опциональны и настраиваемы
- git задача = выполнение в отдельном worktree + автокоммит при перетягивании в Done

Как итог
0) плодишь шаблончики под все свои запросы,
2) чувствуешь себя особенно ленивым сегодня
3) закидываешь монструозный воркфлоу, закидываешь двухсловный булшит уровня "хочу чтоб было красиво",
4) система сама разбирается как:
до тебя докопаться за уточнениями -> свериться с общей архитектурой -> составить развёрнутое ТЗ -> написать превью тесты -> написать реализацию -> прогнать тесты, провести итерацию фиксов -> провести ревью -> скорректировать документацию -> подготовиться на деплой -> сохранить отчёт и changelog -> помёржиться
Если что-то не нравится - пробегаешь взглядом контекст и вмешиваешься в любой из этапов

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


Так можно было?!

Непроизвольно впечатлился возможностям современной индустрии когда залетал в репо https://github.com/openai/symphony для вдохновения

И это же... гениально! Можно не выкладывать систему/код, выложить описание, спеки и приписку "Закиньте в вашего агента, он разберётся"

Если б рядом не лежал эликсирный прототипчик, я б искренне отнёс это к некоторой форме современного айтишного перфоманса


График красивый, а ситуация страшная.

Ну давайте рассматривать


Мой стиль сейчас ближе к coding with ai с production уклоном, где я всё ещё уделяю внимание коду. Нет особо мотивации предельно ускоряться и проверять какие-то гениальные рыночные идеи (Обычно у меня их нет, а если и появляются, всегда можно сделегировать в сторону Валеры)

Как заядлому сквошеру коммитов и вообще любителю поработать день-два и выкатить мини MR +1000-400 наверн сложно было ожидать каких-то бьющих рекорды циферок. Тем не менее, что-то становится понятнее:

- 2020-2022 моя типичная деятельность как усреднённого разработчика с некоторым уклоном в ресёрч.
У меня есть некоторое мнение, что комп чуть новее этой эпохи и сохранились далеко не все репо. По ощущениям я тогда работал активнее


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

- конец 2023-2024 я полноценно перехожу в район team/tech lead позиции, по сути из практического кода остаются только сайды

-2025 всё ещё остаюсь кем-то вроде бизнес кабанчика. Метаюсь-вопросики обкекиваю в виде основной деятельности. В первой половине 2025, как можно видеть, меня операционка прижала прям плотно

- Бодрый столбик в 77 коммитов в 2025 ознаменовал появление Cursor в его пригодной для моей работы форме. Вся дальнейшая активность на графике поддерживается исключительно на кодинг агентских примочках и некотором возросшем ощущении комфорта от работы в целом


Принял VibeCode эстафету Рината от Лёши.

Отвлекают тут от процесса кодогенерации. Токенов и так не густо

20 last posts shown.