FastNews | Никита Пастухов
Открыть в Telegram
Welcome! Я - Никита Пастухов: AI-энтузиаст и OpenSource разработчик (автор FastStream, AG2) Здесь я пишу обо всем, что мне интересно Чатик: @fastnewsdev_chat Чатик по FastStream: @python_faststream Мой GitHub: https://github.com/Lancetnik
Больше2 548
Подписчики
+324 часа
+247 дней
+48630 дней
Архив постов
Я сам себя заменю. Это мой карьерный план!
У Прокопова был интересный пост: 20 лет точил самурайский меч мастерства, а теперь можно купить сто тупых ножей из Икеи - и нарезать ими в десять раз больше моркови. Зачем теперь твоя заточка?
В комментах развернулась знатная дискуссия, и в ней я понял для себя важную вещь.
Я хорошо строю архитектуру кода. Но моя основная работа уже сейчас - не писать код. Моя работа - контролировать поток слопа от десятка человек, чтобы он отвечал стандартам качества проекта. Люди пушат говно - я разгребаю. Плачу кровавыми слезами, но разгребаю.
И вот к чему я пришел: как только я упакую свои стандарты в рулы, структуру проекта, гайдлайны и пайплайны проверок настолько хорошо, что LLM начнет генерить код нужного качества без меня - все. Уровень пройден.
Я сам себя заменил. Это будет level upМне возразили: "это лошади, приветствующие трактор". Не соглашусь. Лошадь не проектирует трактор. Инженер, который упаковал свой вкус и опыт в систему - не лошадь, а конструктор тракторного завода🌚 Разница принципиальная: меня заменяет не технология, а моя же экспертиза, оформленная в артефакты. И кто-то должен ее туда оформить. Инженерные практики уже разворачиваются в эту сторону: меньше пишем, больше читаем, строже стандартизируем. Куда это придет - честно не знаю. Экономика LLM-провайдеров до сих пор не сходится, и дивный новый мир может еще пару раз перевернуться по дороге. Но одно вижу уже сейчас: "я хорошо пишу код" перестает быть профессией. Профессией становится "я умею объяснить системе, что такое хорошо". #AI #карьера
Я как-то немного потерял смысл делать #digest агентского тулинга, т.к. там сейчас только инфошум...
Не рассказывать же вам о релизах моделей в конце концов? - ну ладно, вышли GPT Astra AGI 6🤯, Fable 5.1 и Muse Spark 1.3 (вдруг вы пропустили)
Но что-то полезное на прошлой недели все-таки нашлось:
• https://github.com/Nanako0129/sepia - еще один скилл, который "заставляет агента писать нормальные тексты". Но этот теперь опирается на настоящие исследования. А еще в нем есть отдельные правила под написание текста в популярных сценариях: описания Issue, PR и тд. Для себя я пока так и не решил эту проблему, так что будем посмотреть
• https://github.com/MrZoyo/deslop-GPT - а вот это пушка-бомба-мастхев. Во всяком случае по описанию. Скилл нацелен на удаление лишнего кода ~50% - распухшие тесты, ~25% - "театр верификации", ~25% - защитный код. Я что-то такое сделал в скиллах внутри FastStream, но пока только обкатываю. Так что этот скилл тоже попробую
+4
Для тех, кому лень слушать подкаст, всегда можно натравить нейронку сгенерировать из него комикс😂 Идея принадлежит @pmdmpmdmpm из чата
Версия в чате не сходилась с самим подкастом - GPT нагенерила дженерик историй вместо того, что я рассказывал. Поэтому я решил поиграться и сделать нормальный комикс. Из пяти попыток нормального ничего так и не вышло, поэтому держите самую мемную🌚
Ребята, мы с Максом @pylounge записали ультра кайфовый подкаст
Пообщались за FastStream, его историю, потравили байки, как я перешел дорогу Tiangolo и немного поразгоняли за ИИ, конечно
Буду очень благодарен за лайк под видео и просмотр❤️
https://www.youtube.com/watch?v=z8vwPn6hj7U
Хватит нести бред про миллион токенов
Я заебался это слушать. Каждый релиз модели - новое окно на 1кк, и каждый раз находится кто-то, кто выдает: теперь можно не думать о контексте.
Нельзя. Больше 200к пихать в модель бессмысленно, и это не просто мой опыт. Умные дядьки все посчитали.
В июле я про это уже писал: https://t.me/fastnewsdev/360. Тогда это опиралось на мой опыт, без единого пруфа. На днях поспорил в чате, услышал, что представления у меня устаревшие, и полез за пруфами. Собрал сильно больше, чем ждал😅
Lost in the middle, 2023 год
Стэнфордская статья, с которой все началось. Модели дают вопрос и пачку документов, а нужный двигают - в начало, в середину, в конец. Выходит U-образная кривая: края модель использует, середину теряет.
Но самое прикольное даже не это. Когда нужный документ лежал в середине, GPT-3.5 отвечал ХУЖЕ, чем когда ему вообще не давали документов. Контекст в этой позиции не бесполезен, а даже вредит.
И вторая находка: модели с расширенным окном показали ровно те же цифры, что и базовые. Уже в 2023 измерили - окно побольше не значит, что модель им пользуется.
Context Rot, 2025 год
Отчет Chroma на 18 моделях - Claude 4, GPT-4.1, Gemini 2.5. Отсюда термин.
Главное: деградация - это НЕ переполнение окна. Модель начинает врать задолго до лимита и на тривиальных задачах.
• чем меньше вопрос буквально совпадает с ответом - тем быстрее падение качества
• на перемешанном тексте модели работают даже лучше, чем на связном
Почему так
Внимание - это распределение фиксированной суммы. Модель раскладывает 100% внимания по всем токенам окна: чем их больше, тем меньше достается каждому. Между 8к и 256к разница в 32 раза. Плюс училась она на коротких текстах - двухсоттысячную позицию почти не видела. Отсюда и края: начало с концом конкуренцию выигрывают, середина проигрывает.
И главное - у модели нет адресной памяти. Она не достает факт, а размазывает по нему внимание вместе со всем остальным мусором. Поэтому хорошим поиском это не лечится, измерено отдельно: даже когда модель извлекает все нужное идеально, качество падает на 13.9-85%.
Самое демонстративное
LOCA-bench, февраль 2026. Агенту дают задачу и раздувают вокруг него окружение, не трогая задачу. Точность по длине:
• Claude-4.5-Opus: 96% на 8к, 84% на 32к, 65% на 64к, 34% на 128к, 14.7% на 256к
• GPT-5.2-Medium: 72%, 60%, 52%, 38.7%, 21.3%
• Gemini-3-Flash: 64%, 40%, 36%, 21.3%, 17.3%
У Opus заявленное окно - 200к, и на 256к от него остается 14.7%. Причем мои 200к тут выглядят даже щедро. Половина точности теряется уже к 100к.
Самое свежее
PredicateLongBench от NVIDIA, июль 2026. Модели совсем свежие - Opus 4.6, GPT-5.4, Gemini 3.1 Pro.
История повторяется: на сложных вариантах Opus 4.6 проваливается до 7%, а на самом тяжелом лучший результат - 10% у Gemini при 1% у Opus и GPT😑
Что с этим делать
Вывод ровно один: контекст надо не чистить, а не засорять.
Там же померили, что помогает при 128к: programmatic tool calling поднимает GPT-5.2 с 38.7% до 49.3%, context awareness тащит Gemini с 21.3% до 33.3%. А тупое удаление старого не дает почти ничего - очистка тулколлов +1.3 пункта, автокомпакция (привет,
/compact) местами вообще в минус.
Что из этого делаю я:
• Одна сессия - одна задача. Не тянуть диалог, пока он не превратился в тыкву
• План живет в файле, а не в диалоге. О чем и был пост про SDD
• Progressive disclosure. Пусть агент сам сходит за информацией, когда понадобится
• Никакой надежды на автокомпакцию. Померили на агентах: полный контекст 85.7%, он же со сжатием - 63.7%. Если использовать /compact - то только с указанием, что должно остаться
И перестаньте смотреть на чиселко максимального контекста при выборе модели. Его вам и так хватит.
Контроль контекста - не оптимизация и не тюнинг для задротов. Сейчас это ваша основная работа. Пока не поменяется архитектура моделей - придется приседать вокруг контекста руками.
Можете кидать этот пост любым приверженцам "А у X КОНТЕКСТ БОЛЬШЕ" - пусть спорят со мной в комментариях
#архитектура #AIПочему LLM вызывает привыкание?
Весной я писал, что Claude Code превращает работу в казино-разработку. Тогда это было просто ощущение, но теперь я нашел ему теоретическую базу.
Читаю книгу "На крючке" Нира Эяля - настольную книгу продактов про то, как строить продукты, формирующие привычку. Модель довольно простая, состоит из 4 шагов по кругу:
• Триггер - что заставляет открыть продукт
• Действие - минимальное усилие ради награды
• Переменное вознаграждение - награда, которую нельзя предсказать
• Инвестиция - ваш вклад в продукт, который повышает его ценность и цену ухода
По этой модели построены Instagram, Pinterest, Google и вся лента, в которой вы залипаете. Теперь примерьте ее на работу с LLM🌚
• Триггер - любой затык в задаче - раньше гуглил, теперь "спрошу у Claude"
• Действие - написать промпт, порог - ноль
Переменное вознаграждение - почему мы привязаны к LLM вообще
Продакты Instagram проектировали свою слот-машину годами: pull-to-refresh, непредсказуемая лента, лайки пачками. LLM не проектировал никто:
LLM - слот-машина из коробки. Переменное вознаграждение зашито в саму стохастическую природу моделиОдна и та же задача решается с первого промпта блестяще - или разваливается на ровном месте. Предсказать нельзя. Поэтому НУ ТЕПЕРЬ ТОЧНО ПОВЕЗЕТ - и депаешь токены дальше😎 По Эялю непредсказуемость награды - самый сильный механизм формирования привычки (голуби Скиннера, вот это все). Мы построили индустрию на механике игровых автоматов и удивляемся, что не хочется писать код руками😅 Инвестиция - почему мы привязаны к провайдеру в частности Четвертый шаг у Эяля самый недооцененный: каждый ваш вклад в продукт повышает цену ухода. Фотки в Instagram, доски в Pinterest, заметки в Evernote - все это нельзя забрать с собой. Теперь посчитайте свою инвестицию в LLM-провайдера: история чатов, память, которую агент накопил о ваших проектах, рулы, скиллы и конфиги под конкретный инструмент, наработанные привычки промптинга. Чаты между провайдерами не мигрируют. Каждый день работы - еще одна фишка на стол именно этого казино. Именно поэтому Anthropic весной выкатили импорт памяти из ChatGPT, Gemini и Copilot - специально чтобы снизить вам цену переезда к себе. Эяль пишет, что знание модели крючок не снимает. Подтверждаю: пост дописан, а депать токены я стал только больше🌚 Книгу, кстати, рекомендую. Ну что, родные, еще не слопнулись? #AI #книги
Нихрена интересного
Тут должен был быть воскресный #digest агентского тулинга, но ничего полезного за неделю не было. Если что-то проглядел, закиньте в чат, там же обсудим.
Вместо этого хочу рассказать о своем опыте с rtk. Это такая штука, которая заворачивает произвольные bash-команды и форматирует их вывод, уменьшая потребление контекста.
В июльском разборе скиллов я написал про него - "юзаю, но по мелочи". С конца мая он висел у меня глобальным хуком на всех bash-командах, а сейчас я решил посчитать, сколько он мне дал на самом деле.
Счетчик в интерфейсе показывал экономию 92,9%. На полной выборке в 32 000 команд вышло 22,1%. Медианный вызов сжал ровно ноль токенов - больше половины команд прошли сквозь rtk и вышли обратно такими же😑
Помесячно еще веселее: май 54,7%, июнь 56,1%, июль 15,1%, август 21,5%. И тут видно, что в мае я давал агенту вызывать rtk на любых командах, а к июлю повесил глобальный хук и ограничил его whitelist'ом команд🤷♂️
Проблема в том, что когда агент вызывал через rtk что хотел, он действительно сжимал МНОГО. Например, вызовы
pytest ужимались на 80%. И rtk весело репортил в статистике, что пожал 100500 токенов. Но вот только rtk не учитывал, что после его пережатия агент плевался "мне тут rtk вызов попортил, пойду запущу команду в обход". Вот я и ограничил ему список команд, на которые стоит запускаться. Но сделал я это эмпирически.
И вот, спустя месяц, я решил проверить, а как на самом деле работает rtk? Отправил агента парсить логи всех своих сессий с момента установки rtk и искать ровно эти паттерны - когда агент плюнул на rtk и пошел в обход. В общем, спойлер, я оказался прав - тесты запускать не стоит.
Но всплыло еще кое-что интересное: например, я завернул все вызовы grep в rtk. А по статистике оказалось, что он падал с ошибкой на любые флаги - в 23,7% кейсов. Сначала я хотел вообще снести rtk нахрен, но потом умный Claude полез в релиз-ноуты. Оказывается, я два месяца сидел с багом, который давно пофиксили. Так что я обновился, перенастроил конфиг и юзаю его дальше.
Сейчас в whitelist восемь позиций: cat / head / tail (у rtk это все один фильтр read), ls, grep, find, diff, wc, gh и весь git, кроме status и log. Все остальное идет мимо хука.
Смешное тут, что в README у rtk заявлено 100+ команд, и половина списка: pytest, ruff, mypy, tsc, eslint, prettier, curl. Все это я у себя выключил. Оставшиеся девяносто с чем-то - AWS, kubectl, pulumi, cargo, sbt, rubocop, rspec - я просто не запускаю, ни разу за три месяца. А из тех восьми, что дожили, 84% всей экономии дает один cat🌚
Спустя неделю после обновления цифры такие:
• на командах, где он запускается, экономия 44,5%
• отказы парсинга упали с 23,7% до 1,2% - это когда rtk падает сам
• медианный вызов на произвольных командах как был нулем, так и остался
Читается это так: rtk работает, чето экономит на командах, где ему разрешили, но 99% команд идут мимо него - ну и пусть идут. Главное, что агент перестал переспрашивать команды после форматирования rtk, так что пусть экономит свои крохи. Он все равно стоит хуком, контекст не ест.
Теперь к дайджесту.
Что интересного все-таки нашлось:
• Archify - прикольная рисовалка архитектуры по коду. Помогает визуально понять, что за архитектурные схемы вам агент пытается построить в коде;
• BrowserSkill от Tencent - отдает агенту твой настоящий залогиненный браузер, вкладку он обязан одолжить и вернуть. Ставится одной фразой самому агенту, дальше он справляется сам;
• claude-mem - память между сессиями, но ценен протокол доступа: search отдает индекс по 50-100 токенов на результат, детали тянутся потом и только по отфильтрованным ID. Заявлена экономия ×10;
• Skill Sunset - аудит накопленных CLAUDE.md и SKILL.md: ищет раздутые always-loaded файлы и протухшие правила. Локально, без единого вызова модели.
Все, что проходит фильтр рубрики, копится в репозитории awesome-engineering-ai - там же мои вердикты по тем, что успел потыкать.
#AIФича с Claude заняла у меня столько же, сколько заняла бы руками. Сам виноват
Да, я выпускаю итоги стрима почти через неделю. Вы меня поймали - зашел в репу FastStream, и не смог выйти. Сейчас активно готовим 1.0 релиз, поэтому нет времени писать посты🥲
В прошлую субботу я почти 3 часа вайбкодил фичу в прямом эфире. Конфиги для брокеров в FastStream - issue, которую я сам завел год назад и не трогал. Потому что она, сука, сложная.
Прошла неделя. PR все еще в драфте, и мне предстоит еще много работы.
Сначала про цифры
• 36 минут и 150к токенов были потрачены только на гриллинг. Это фаза, где агент задает вопросы, а я отвечаю
• 100к токенов - только на то, чтобы он прочитал кодовую базу перед первым тикетом
• 12 тикетов, 42 коммита, +8412/-1076 в 197 файлах
Где я сам налажал
1. Надо было сразу делать победа / поражение. Не знаю, сами скажите?
#AI #opensource
wayfinder, а не гриллинг. Гриллинг хорош на обозримой фиче - а эта обозримой не была, и я это знал заранее.
2. И надо было ревьюить по брейкпоинтам: сначала один брокер, потом ревью, потом остальные по аналогии. Я изначально так и хотел. Но был стрим, и я поторопился.
Получилось бы реализовать фичу Claude'ом в таком случае? ХЗ. Но ситуация была бы сильно лучше, чем сейчас.
Фича оказалась еще сложнее, чем я думал
По ходу она подняла наверх довольно существенную архитектурную проблему. Мне пришлось написать еще 4 спецификации вне стрима - чтобы перелопатить текущую реализацию и сделать эту фичу В ПРИНЦИПЕ ВОЗМОЖНОЙ.
Из сегодняшней точки я бы делал так: архитектурный PR отдельно, потом саму фичу медленно с ревью на каждом шаге, и катил бы не за один присест, а итерации в три.
Собственно, так я сейчас и поступлю: распилю PR на несколько отдельных, которые можно ревьюить независимо.
Но имеем что имеем - огромный пласт кода, из которого мне вытачивать нечто мержибельное. Код, кстати, более-менее адекватный, я его бегло проглядел. Просто нужно время на ревью и доделки.
Вердикт
Конкретно в этом случае - катить фичу клодом по времени ничуть не быстрее, чем самому. Я бы сделал эту же фичу руками где-то за неделю. С клодом получается то же самое, но гораздо нервознее🥲
В общем случае - сильно зависит от проекта. Там, где к архитектуре можно относиться халатно, - да, выигрыш есть. На проектах типа FastStream он отлично ваншотит мелочь (типа такой), а все, что сложнее, идет примерно с той же скоростью, что и руками.
Комбинированный подход - клод на ресерч, код руками - возможно, сработал бы вообще идеально. Но переделывать я не буду. Не хочу тратить еще столько же, и пока еще верю, что смогу смержить текущий PR.
А вот где он был великолепен
Пока я воевал с основной фичей, он вскрыл кучу мелких недостатков в смежных местах. И закрыл их отдельными PR'ами в фоновых сессиях - вообще без моего участия.
Два таких PR уже смержены. Плюс четыре issue, которые я завел за полчаса, и все четыре - про генерацию AsyncAPI:
• #3033 - гонять сгенеренную спеку через официальный парсер прямо в CI
• #3034 - литеральные скобки в адресах
• #3035 - NATS с filter_subjects рендерит пустой адрес
• #3036 - channel parameters для шаблонов адресов
Отдельно - pyright
Прямо во время стрима я запустил вторую сессию с одной задачей: проверить, проходят ли наши mypy-тесты на pyright. Предсказуемо, нет - нашлось 72 ошибки. Причем ошибки действительно были в FastStream, а не в проверках pyright. В общем, Claude самостоятельно разобрался и открыл PR, который уже смержили. Я просто сидел в другой сессии и занимался основной работой.
В общем, тот PR, ради которого я вообще стримил, висит. А то, что нашлось попутно, уже в мейне или ждет ревью😅 Ускорения я не получил. Зато Claude помог раскопать кучу багов (докинул мне работы, ага)
Чтож, у нас тут SLOP - 100 Лучших Prompt'ов недели на DVD
И вот мы реально пришли в эту точку. Скиллы я еще как-то мог оправдать (хотя это те же промпты), но теперь мы реально делимся чисто промптами🌚
Все дело в том, что топ недели - benjamin-plus от JetBrains. Это буквально промпт на 745 токенов. И установка у него максимально дурацкая:
cat injected-instruction.md >> AGENTS.md.
Прикол в том, что рулсет не сочинили, а выжали из ~1200 старых трасс агентов: как разведывать кодовую базу, как вызывать инструменты и тд. Т.е. должно работать не только на задачах кодинга
Замер был парный на 80 задачах. Итог: -17,9% стоимости и -22% токенов, качество не поехало. Но при условии, что текст скилла автоматом инжектится в каждую сессию. Он же, положенный папкой в ~/.claude/skills/, не экономит НИЧЕГО - агенты тратят доп шаги на то, чтобы найти этот самый SKILL.md🤯
Такое я ставить точно буду - вчера на стриме агент тратил по 100к контекста только на фазу разведки в репозитории FastStream. Это надо как-то решать (codegraph не помогал), так что попробую этим👍
Боль недели - переводчик с Клода на человеческий. Четыре независимые реализации за семь дней:
• NoBuzz - скилл /debuzz отдает последнюю реплику Клода в Gemini и печатает перевод дословно. Три режима - коллеге, менеджеру, директору;
• Vomit - то же лекарство локально и без второго вендора: Go-бинарь подменяет вывод через хуки. Автор честно пишет "полностью вайбкожено, тестировалось только на маке";
• claudish-to-english - плагин печатает человеческий пересказ рядом с оригиналом, локальная ollama по умолчанию.
Вендор ответил своим Concise output style. В тредах его списали заранее: "тот же салат из баззвордов, только без связок".
Тренд недели - жесткие гейты для агента:
• Procoder - коммит-гейт одним бинарем, где непроверенное считается провалом;
• agent-guard - ~60 строк шелла PreToolUse-хуком. rm -rf, git reset --hard и push --force до исполнения просто не доезжают;
• ProofRun - квитанция о том, что проверки реально гонялись на этом коде;
• Doberman - прозрачный MCP-прокси, выносит вердикт каждому вызову тула на пути исполнения.
Везде одна мысль: правило в CLAUDE.md - это просьба, и чем дальше сессия, тем чаще агент про нее забывает. От хука так просто отмахнуться не получится🤷♂️
Просто находки:
• Autoprompt - раскладывает промпт в многоагентный цикл, +14,61 пункта на Terminal-Bench 2.1. Ценой ×3 времени и ×2 токенов, и автор эту цену печатает рядом с выигрышем - за это жму F🫡;
• agent-codemode - агент пишет один скрипт вместо 40 вызовов MCP. На их замере 65 500 токенов в контекст превратились в 226;
• reclaim-code-entropy - упрощение кодовой базы, где каждый разрез надо доказать, а "ничего безопасного не нашлось" - валидный ответ;
• CUDA MCP Server - NVIDIA сама хостит доку и примеры, чтобы агент перестал выдумывать давно уехавший API;
• defending-code - Anthropic выложила свои security-скиллы: /threat-model и /vuln-scan прямо в Claude Code.
Все, что проходит фильтр рубрики, копится в репозитории awesome-engineering-ai - там же мои вердикты по тем, что успел потыкать.
С вами был воскресный #digest агентского тулинга. Свои находки закидывайте в чат, там же обсуждаем свой опыт использования.
#AIНапоминаю, что вы проголосовали против чистого вайбкодинга!
Поэтому сегодня в 13:00 на стриме
https://www.youtube.com/live/oE7fhJFcSJ8
Мы будем страдать и пилить вот этот вот Issue. Там очень много подводных камней, так что задачка должна стать испытанием как для меня, так и для клода🥲
На стриме пройдемся по всем этапам разработки начиная от установки скиллов, заканчивая реализацией и ревью. Постараюсь давать подробные объяснения на каждом из этапов.
Код можно больше не смотреть
Ладно, заявление получилось слишком провокационным. Но после стрима мы с Никитой Соболевым еще чуть-чуть пообщались - и я правда пришел к выводу, что В ОПРЕДЕЛЕННЫХ ПРОЕКТАХ, ОПРЕДЕЛЕННЫХ СИТУАЦИЯХ и при соблюдении ОПРЕДЕЛЕННЫХ УСЛОВИЙ LLM-сгенерированный код можно даже не ревьюить.
Как я к этому пришел: в процессе разработки фичи для DMR мы задизайнили большой эпик и побили его на таски. И вот, реализация первой таски Claude'ом была ужасной... просто отвратительной... Но я неожиданно для себя пришел к выводу, что "я бы смержил". Потому что тут выполняется сразу ряд критериев:
• это новая функция с единой ответственностью
• она никак не аффектит существующий код (ее никто не вызывает)
• у нее четкие архитектурные границы и интерфейсы меня полностью устраивают
Т.е. эта монструозная функция на 1000 строк кода может существовать для всего остального проекта как черный ящик. Меня совершенно не волнует, что внутри нее, если меня удовлетворяют ее API, а весь набор тестов на поведение - проходит.
Для опенсорса это все еще недопустимая ситуация - тут каждая строчка кода должна быть максимально вылизана. Хотя...
Но вот в настоящих CRUD'шлепских проектах - почему нет?
Если:
• ваш проект не требует SLA 4 девятки
• вы можете позволить себе иногда 500тить
• у вас есть опция оперативно доставлять фикс-апдейты до пользователей - Claude Code / Cursor катят по 3 патча в день по моим ощущениям
• у вас качественный агентский Harness и практики ИИнженерии - типа моего
• вы умеете выстраивать четкие архитектурные границы - модули должны быть строго изолированы друг от друга
• вы очень строго подходите к процессу тестирования - правки агента не должны ломать то, что уже работает
• ваш проект плотно обмазан всеми возможными статическими и динамическими проверками
При соблюдении всех этих критериев вы ИНОГДА можете смотреть код НЕ ТАК ПРИСТАЛЬНО - только проверять соблюдение архитектурных принципов, которые вы закладывали.
Возможно поэтому, дядя Боб (как большой знаток архитектуры, совсем не инфоцыган) утверждает, что больше не смотрит в код.
Black-box код требует сильной экспертизы в области архитектуры, четко налаженного пайплайна доставки патчей до пользователей и строгой системы автоматических проверок вокруг проекта. Ну и довольно существенной толерантности к говнокоду, конечно. Готовы к такой реальности?
#AI
В комментариях пишите свои идеи и лайкайте понравившиеся
Всем привет! У меня для вас идея🌚
В прошлый раз мне понравилось работать на стриме над реальной фичей с помощью Claude. Довольно anti-FOMO формат для тех, кто думает что их вот-вот заменят нейронки или не понимает, как с ними нормально работать
Поэтому я хочу повторить - только теперь соло. Запилим пару фичей, потыкаем
/wayfinder, сделаем новый проект или испортим пару уже существующих - пока не решил
Текущие идеи:
• навайбкодить инструмент для построения Loop'ов по пайплайну Matt'а поверх Claude
• настроить инфраструктуру eval'ов и оптимизаций скилла https://github.com/Lancetnik/slop-writer
• превратить это скилл в сервис
• запилить среднюю фичу в Faststream
• запилить пару фич в ассистента - https://github.com/ag2ai/ag2-assistant
• сделать бенчмарк для сравнения разных grep'ок - codegraph / graphify / etc.
Но если у вас есть свои идеи - закидывайте в комментарии и лайкайте друг друга. Делать будем то, что победит в результатах опроса / наберет больше всего лайков в комментах
Стрим планирую на субботу (22е), скажем, в 13:00 МСК
С вами очередной воскресный #digest агентского тулинга. Привет всем неотписавшимся!
Радар принес mcptoon - CLI-MCP Proxy, который ходит на MCP сервера вместо агента. Обещают какую-то дикую оптимизацию контекста за счет автодискавери тулов и переформатирования ответов в TOON.
И тут мне стало интересно, что за формат такой этот TOON, Token-Oriented Object Notation. Оказывается, ему почти год, 25k звезд, уже v4.1 версия, порты есть на Python, PHP, .NET, Kotlin и Elixir.
Что это. Та же модель данных, что у JSON, только записанная экономно: вложенность на отступах как в YAML, а однородные массивы сворачиваются в таблицу - поля объявляются один раз в заголовке, дальше идут только строки.
Mon,-2,snow
Tue,1,cloudy
Wed,3,sunny
Сколько экономит. Против JSON с отступами - минус 33% на смешанных данных и минус 59% на плоских. Лучше всего там, где записи однотипные: конфиг фиче-флагов - минус 55%, контакты с вложенными адресами - минус 66%.
Когда лучше остаться на JSON. Если данные неоднородные или глубоко вложенные. В их же замерах минифицированный JSON просто меньше: +5.6% на вложенных заказах, +19.9% на полуоднородных логах, и по смешанному треку целиком TOON ему проигрывает. То есть красивые "-60%" - это против JSON только в определенных кейсах.
Когда лучше CSV. Если данные плоские и честно табличные - CSV меньше процентов на шесть. Эти шесть процентов TOON тратит на объявленную длину массива и список полей в заголовке: покупает не размер, а надежность.
Т.е. TOON - это где-то между JSON и CSV по способу представления.
Про точность. Бенчмарк взрослый - 244 вопроса, 6 форматов, 4 модели, 5856 прогонов. TOON дает 72.2% против 71.4% у JSON, но это в пределах погрешности, и продавать это как "модель лучше понимает" я бы не стал. Интереснее другой замер: на вопросах "а данные вообще целые?" TOON дает 100%, а JSON - 50%. Объявленная длина массива ловит обрезанный список, а в JSON обрезанный список выглядит совершенно валидным.
Тренд недели - куча новых харнессов. За семь дней четыре новых, и это только те, что дошли до топов:
• DeepSeek Harness - 118 тысяч звезд за трое суток (чего?). Внутри все плагин: модели, тулы, скиллы, сессии, песочницы, планировщик и даже UI. К DeepSeek не привязан - Anthropic, OpenAI, Bedrock, Vertex, Codex по OAuth. Пока это developer preview, issues отключены, ломающие изменения обещают капсом
• Ante - один 15-мегабайтный бинарь на Rust: внутри TUI, свой ripgrep, локальный OCR и сборка llama.cpp, то есть агент работает офлайн и без Node (наконец-то). Terminal-Bench 82.7% с публичными прогонами. Но ядро приезжает прекомпилированным, исходников нет, телеметрия включена по умолчанию
• hax - еще один бинарный агент - теперь на C, ровно пять тулов и docs/philosophy.md со списком того, чего в нем не будет: ни MCP-маркетплейса, ни плагинов, ни IDE-панелей; Pi-agent, только бинарем
• Waku - не CLI, а нативный десктоп на Rust и GPUI поверх Amp, Claude Code, Codex, OpenCode и Cursor. Каждый промпт чекпойнтит рабочее дерево, поэтому откат едет вместе с кодом, а не только с логом чата
Экосистема при этом нарастает быстрее самих харнессов: у dsh за трое суток появился сторонний ModLens - плагин, который дает зрение текстовой модели, просто вставляешь картинку в чат.
Тут любопытно: каждый новый харнесс продает не фичу, а отказ. Ante отказывается от Node, hax - от плагинов и MCP, Waku - от Electron, dsh - от хардкода в ядре. Модель у всех примерно одна и та же, конкурировать в ней больше нечем - вот и соревнуются, кто меньше.
Все, что проходит фильтр рубрики, копится в awesome-engineering-ai - там же мои вердикты по тем, что успел потыкать.
💬 Чат | 🧭 Навигация | ⭐️ FastStreamПривет всем будущим отписчикам! За последние сутки на канале значительно прибавилось людей - и многие даже не знают, на кого подписались. Поэтому представлюсь: Никита.
• автор и мейнтейнер фреймворка FastStream - сейчас он активно идет к 1.0.0 версии спустя 3 года разработки
• мейнтейнер фреймворка для разработки AI агентов AG2 (бывший Microsoft/Autogen) - недавно вышли в 1.0.0
• разработчик AG2 Assistant - агента для ежедневных нужд
• контрибутор CPython, FastAPI и еще большой пачки OpenSource проектов
• последние полгода - лютый AI-амбассадор (этот пост написан с поддержкой AI)
Что тут вообще происходит
Все начиналось как канал про FastStream. Но получилось - про все, что мне интересно. Так я писал про продуктивность, книги, TDD.
Последний год я работаю AI-инженером, поэтому сейчас канал превратился в ИИнженерию: агенты, Skills, harness'ы и то, как собрать из этого рабочий конвейер, а не демку для твиттера. Например, по воскресеньям веду #digest агентского тулинга: что вышло за неделю и что из этого я реально поставил себе. Но это не значит, что все так и останется🌚
Я тут не продаю "10x продуктивность" - только анти-FOMO. Показываю свой сетап, реальные замеры и факапы. Например, недавно проспорил Никите Соболеву, что заваншотю фичу Claude'ом быстрее, чем он выпьет бутылку пива. Не заваншотил😅
С чего начать
Выборка того, как канал доехал от "мейнтейнер OpenSource" до "ушибленный на голову любитель ИИ"
1️⃣ Как заработать на OpenSource - разобрал бюджеты крупных OSS проектов. И признался, сколько мне за все время принес FastStream
2️⃣ Как отправить жопу мейнтейнера в космос - момент, когда LLM приехали ко мне в репозиторий
3️⃣ Вам не нужен OpenClaw - статья на Хабре, как написать собственного агента вместо того, чтобы настраивать чужого
4️⃣ Мой полный сетап скиллов для разработки - весь мой рабочий конвейер на текущий момент
И самое главное
У канала есть чат - и он живее самого канала. Там мы разбираем скиллы, спорим про агентов, кидаем всякие-разные находки и оффтопим. Посты тут иногда вырастают из тредов чата.
В общем, я вас предупредил - успейте отписаться сегодня. На всех, кто отпишется завтра - обижусь персонально!
В TG сейчас засилие слоп-контента (типа моего), тяжело найти АВТОРОВ, кого не стыдно почитать
Поэтому мы в Python-комьюнити собрали свою собственную подборку каналов: https://t.me/addlist/o2_hXmp5nSUyODNi
Многих из подборки вы, наверняка, знаете) но если нет - рекомендую обратить внимание. 100% годноты, практически всех авторов знаю лично, никто в слопе не замечен👍
+4
Лучший Skill для дизайна приложений
Зачастую во всех проектах я делаю fullstack решения. Это значит, что моя основная боль как разработчика - дизайн. Сделать "удобно" я еще кое-как умею, но "красиво" - точно мимо🥲 Поэтому за "красиво" у меня отвечает нейросеть. Проблема в том, что из коробки ни Claude, ни GPT "красиво" делать тоже не умеют (да и "удобно" у них так себе получается).
Я уже пытался решить эту проблему скиллами:
• taste-skill
• hallmark
• ui-skills
Но все они пытаются "привить агенту вкус" - будто, прочитав данный волшебный промпт, Claude преисполнится и начнет выплевывать дизайны уровня Apple. Это так не работает. Особенно когда ты дизайнишь не лендос в вакууме, а конкретный компонент в уже существующем приложении. В общем, узкоспециализированная шляпа получается🤷♂️
Решение я снова нашел у Matt'а. Его скилл
/prototype радикально отличается. Он не пытается "привить агенту вкус". Его задача очень тупая - вместо генерации ТОГО САМОГО ДИЗАЙНА агент генерирует 3-4 варианта одного и того же компонента / раздела / страницы. Причем прямо в вашем приложении, с большим тоглом
Текущий дизайн | Вариант 1 | Вариант 2 | Вариант 3
Поэтому следующим шагом будет "сделай X как в варианте 1, а Y как в варианте 3" - и вот вам уже вариант 4, который можно шлифовать в деталях. Эти варианты - действительно ПРОТОТИПЫ. Их задача:
максимально быстро и дешево по токенам дать вам совершенно разные взгляды на дизайн, не аффектя текущее поведение и код приложенияМой пайплайн: • скриним кусок интерфейса, говорим "переделай с помощью /prototype". В качестве ограничений - пожелания по UX/UI, в которых уже уверены • из понравившихся кусков собираем вариант-франкенштейн • доводим прототип до окологотового состояния: выравниваем UI со стайлгайдами приложения, правим мелочи • делаем
/to-spec на реализацию в основном коде (весь конвейер разбирал тут)
• в свежей сессии делаем /implement на эту спеку
• радуемся😎
На скринах я как раз прототипирую дизайн вкладки скиллов в AG2-Assistant
#AIВоскресный радар агентского тулинга. Свои находки закидывайте в чат, там же обсуждаем свой опыт использования.
Топ недели - обмен сообщениями между сессиями в Claude Code. Сессии теперь пишут друг другу сами: одна нашла ломающее изменение - предупредила ту, что строит поверх. Это всего два тула,
ListAgents и SendMessage, плюс команда /peers. Передается только текст: ни истории, ни файлов
⚠️с 14 августа входящие включаются в auto по умолчанию - если не хочешь, чтобы в твою сессию стучались чужие, crossSessionInbound выставляется руками (accept / hold / refuse). Что смущает: это оркестрация без оркестратора, агенты договариваются между собой, а отвечать за результат все равно тебе.
Пока не экспериментировал, но точно буду - я и так довольно часто передаю инфу между сессиями через /handoff-документы. Наверняка, у Matt'а скилл под это уже в разработке
Тренд недели - куча тулов по управлению контекстом. Три инструмента за неделю жмут токены, и каждый в своем месте:
• headroom - жмет выхлоп тулов, логи и RAG-чанки до того, как их увидит модель: 60-95% на JSON, около 20% на обычном кодинг-агенте;
• Sift - режет определения тулов: показывает агенту два тула вместо сотен. Лечит overtooling: пятнадцать MCP-серверов вываливают 150+ схем еще до того, как модель прочла задачу;
• LeanCTX - собирает все сразу: кешированный ре-рид файла за ~13 токенов вместо ~2000, память между чатами и гард на то, что агент трогает.
Боль недели - LOOP-инженерия. Пять инструментов за семь дней про одно и то же:
• LoopX - контрол-плейн для долгой задачи: держит вне агента цель, гейты, todo и доказательства, а агент делает по одному ограниченному ходу;
• cezar - наоборот, много коротких одновременно: панель на localhost, задачи разъезжаются по изолированным worktree, можно смешивать движки по шагам одного воркфлоу - Claude Code на реализацию, Codex на ревью;
• Multica - та же оркестрация, но с доской задач: агент получает issue, сам берет в работу и поднимает блокеры;
• SwarmForge - Дядя Боб выложил свой оркестратор: tmux, каждый агент в своем worktree, а вместо конфига - раскладки ролей. two-pack это coder плюс cleaner, six-pack - плюс архитектор, hardener и QA. Спека тут не документ, а роль с правом не пропустить дальше;
• Cowchat - комнаты, куда подключается любой агент, умеющий открыть сокет, плюс голосование запечатанными бюллетенями: голоса не видны, пока не проголосовали все - чтобы агенты не сходились во мнении просто потому, что прочитали чужой ответ.
В принципе, моя практика со скиллами Matt'а тоже привела к тому, что реализация спеки - это чисто механические усилия по управлению контекстом. Кажется, скоро буду приделывать к этому пайплайну какой-нибудь Loop
Просто находки:
• oh-my-pi - агент, которому вкрутили IDE: rename идет через LSP (едут ре-экспорты и алиасы, а не текст), а вместо print'ов - настоящий дебаггер;
• humanizer - вычищает из текста следы LLM по вики-гайду "Signs of AI writing", но умеет калибровку голоса: даешь свой прошлый текст, и он подстраивается под твои привычки. Попробую, только не чистить выхлоп постфактум, а держать просто в контексте - чтобы агент внятнее писал мне по ходу сессии и генерировал нормальные описания PR / Issue;
• Patchloom - структурные правки файлов вместо sed и регекспов: JSON, YAML и TOML правятся по селектору с сохранением комментариев и форматирования, знает AST двадцати языков;
• ui-ux-pro-max - скилл, который выдает агенту вкус: локальная база из 67 стилей, 161 палитры и 99 UX-гайдлайнов, по ней агент ищет перед тем, как рисовать интерфейс. Еще один скиллсет для дизайна, ага;
• agent-browser - самый пресный способ дать агенту браузер: snapshot -i отдает кнопки, ссылки и инпуты по ref'ам вместо простыни DOM.
Что радар проспал - несите в комменты, обязательно посмотрю и заберу в следующий выпуск.
Все, что проходит фильтр рубрики, копится в репозитории awesome-engineering-ai - там же мои вердикты по тем, что успел потыкать.
#AI #digestMatt Pocock буквально 3 часа назад выпустил обновление своих скиллов
САМОЕ ВАЖНОЕ: всеми любимый
/grilling (я использую его всегда и везде, именно им мы работали на стриме) превратился в /batch-grilling по дефолту
Теперь вопросы будут задаваться не по одному, а сразу раундами. Якобы так сессию intent discovery можно пройти гораздо быстрее. Matt оптимизировал этот скилл на своих пректах уже месяца 2, так что хочется верить, что баланс найден
https://github.com/mattpocock/skills
В общем, я пошел обновляться и тестировать - как раз в новый проект скатываюсь. Результаты тестирования скорее всего закину в чат
И релиз-ноуты от самого Matt'а
Updated Skills: - /grilling now asks you questions in rounds, not one-by-one - /prototype now uses HTML instead of a TUI for building logic prototypes - easier to share and far richer - /writing-for-agents renamed from /writing-great-skills, use it for ANYTHING your agents read (AGENTS.md, system prompts, docs) New Skills: - /wizard: tired of provisioning infra? Get your agent to build you a TUI to walk you through it - /to-questionnaire: hit a grilling question you can't answer? Turn the session into a doc you can walk through on a call with a colleague - /wait-what: no idea what the model said? Refocus it in your domain language and simplify with ASD-STE100
