AI не заменит разрабов, можно расслабить булки
https://vz.ru/news/2026/4/26/1413853.html - нашел оч смешную новость. Компании жалуются, что расходы на токены и так уже достигли размеров ФОТ сотрудников. Кожаные мешки оказались дешевле цифровых. А Uber вообще уже потратил все бабки на AI до конца года
Я это не фактчекал, но на правду похоже. Сам пару раз видел чеки на 500$+ в день на вайбкодинг
https://vz.ru/news/2026/4/26/1413853.html - нашел оч смешную новость. Компании жалуются, что расходы на токены и так уже достигли размеров ФОТ сотрудников. Кожаные мешки оказались дешевле цифровых. А Uber вообще уже потратил все бабки на AI до конца года
Я это не фактчекал, но на правду похоже. Сам пару раз видел чеки на 500$+ в день на вайбкодинг
😁15✍3❤1🎉1
Интеграции Агента с мессенджером
Основная (и единственная) проблема при интеграции агента с любым UI - это то, как менеджить разные контексты.
Это могут быть разные чаты / топики в мессенджере или явные команды, что текущий диалог завершен и пора начинать новый.
А если у тебя агент рассчитан на несколько пользователей, то нужно еще разграничивать их контексты и не забыть про безопасность.
Но эти задачи не какие-то особенные для агентной разработки. Любой веб-разработчик делал что-то такое и, я уверен, вы тоже справитесь.
В помощь могу предложить разве что вот такой код:
Чуть более развернутый пример я уже описывал в блоге AG2 - там пример с историей диалогов и переключением между ними
Но, я уверен, вы без труда справитесь с такой интеграцией. Если же вы хотите написать Web приложение, то советую посмотреть на фичи AG-UI протокола - там уже есть готовые фреймворки и на фронтенде. Про AG-UI я писал даже статью на Habr, но если все еще ничего не понятно, могу попробовать объяснить еще раз😅
#Agents
Основная (и единственная) проблема при интеграции агента с любым UI - это то, как менеджить разные контексты.
Это могут быть разные чаты / топики в мессенджере или явные команды, что текущий диалог завершен и пора начинать новый.
А если у тебя агент рассчитан на несколько пользователей, то нужно еще разграничивать их контексты и не забыть про безопасность.
Но эти задачи не какие-то особенные для агентной разработки. Любой веб-разработчик делал что-то такое и, я уверен, вы тоже справитесь.
В помощь могу предложить разве что вот такой код:
from autogen.beta import Agent, config, MemoryStream
agent = Agent("tg-agent", config=config.OpenAIConfig("gpt-5"))
dp = Dispatcher()
chat_state: dict[int, MemoryStream] = {}
@dp.message(F.text)
async def on_text(message: Message) -> None:
# получаем старый контекст или создаем новый
if not (stream := chat_state.get(message.chat.id)):
stream = chat_state[message.chat.id] = MemoryStream()
# дергаем агента с этим контекстом
reply = await agent.ask(
message.text,
stream=stream,
variables={"user_id": message.chat.id},
)
# отвечаем в TG чат
await message.answer(reply.content)
asyncio.run(dp.start_polling(bot))
Чуть более развернутый пример я уже описывал в блоге AG2 - там пример с историей диалогов и переключением между ними
Но, я уверен, вы без труда справитесь с такой интеграцией. Если же вы хотите написать Web приложение, то советую посмотреть на фичи AG-UI протокола - там уже есть готовые фреймворки и на фронтенде. Про AG-UI я писал даже статью на Habr, но если все еще ничего не понятно, могу попробовать объяснить еще раз😅
#Agents
👍9🙊1
Фоновые задачи
Самая последняя фича, за которую хвалят OpenClaw - возможность сказать что-то типа "мониторь сайт авиабилетов каждый час и покупай сразу, как они появятся в продаже".
Для этого агенту нужна поддержка cron-like задач и возможность регистрации новых...
Нужели опять инструменты? - конечно😂
Но для начала нам нужен какой-нибудь рантайм для выполнения задач по расписанию. Пусть это выглядит так (псевдокод):
Ну и, конечно, нам нужны инструменты для того, чтобы записывать новые задачи в этот рантайм
К сожалению, готовой батарейки в AG2 нет (пока что), но довольно скоро должна появиться. В любом случае, я уверен, что такие опытные разработчики справятся с этой трудной задачей и самостоятельно
#Agents
Самая последняя фича, за которую хвалят OpenClaw - возможность сказать что-то типа "мониторь сайт авиабилетов каждый час и покупай сразу, как они появятся в продаже".
Для этого агенту нужна поддержка cron-like задач и возможность регистрации новых...
Нужели опять инструменты? - конечно😂
Но для начала нам нужен какой-нибудь рантайм для выполнения задач по расписанию. Пусть это выглядит так (псевдокод):
import asyncio
from autogen.beta import Agent, config
cron = Scheduler()
agent = Agent("tg-agent", config=config.OpenAIConfig("gpt-5"))
async def main():
asyncio.create_task(cron.run())
await agent.ask("Check tickets each hour")
Ну и, конечно, нам нужны инструменты для того, чтобы записывать новые задачи в этот рантайм
class SchedulerToolkit:
def __init__(self, cron: Scheduler):
self.cron = cron
def schedule_task(task_prompt: str, cron: str) -> UUID: ...
def remove_task(task_id: UUID) -> None: ...
def list_tasks() -> list[UUID]: ...
agent = Agent(..., tools=[SchedulerToolkit(cron)])
К сожалению, готовой батарейки в AG2 нет (пока что), но довольно скоро должна появиться. В любом случае, я уверен, что такие опытные разработчики справятся с этой трудной задачей и самостоятельно
#Agents
👍8❤3
Что ж, цикл закончен - можете включать уведомления обратно😂
Переходим на режим постинга +- 2 раза в неделю
Зато теперь у меня есть базовый материал про разработку агентов. Когда я буду рассказывать про более сложные вещи - будет на что ссылаться🌚
Чтобы этот материал оставался для вас полезным, вы могли к нему возвращаться (и отправлять друзьям), сделаю навигацию:
- Общий принцип работы агентов
- Устройство контекста и его проблемы
- Зачем нужны и как работают инструменты
- Как устроена память агента
- Кто такие сабагенты
- Зачем их запускать в фоне
- Что такое Skills и как они устроены
- Как запихнуть AI-агента в Telegram
- Как заставить агента работать по расписанию
Если тема с устройством агентов вам заходит, в ближайшее я накидаю еще больше материала для погружения в детали.
Все относящееся к теме, я также буду маркировать тегом #Agents - ищите по нему
Переходим на режим постинга +- 2 раза в неделю
Зато теперь у меня есть базовый материал про разработку агентов. Когда я буду рассказывать про более сложные вещи - будет на что ссылаться🌚
Чтобы этот материал оставался для вас полезным, вы могли к нему возвращаться (и отправлять друзьям), сделаю навигацию:
- Общий принцип работы агентов
- Устройство контекста и его проблемы
- Зачем нужны и как работают инструменты
- Как устроена память агента
- Кто такие сабагенты
- Зачем их запускать в фоне
- Что такое Skills и как они устроены
- Как запихнуть AI-агента в Telegram
- Как заставить агента работать по расписанию
Если тема с устройством агентов вам заходит, в ближайшее я накидаю еще больше материала для погружения в детали.
Все относящееся к теме, я также буду маркировать тегом #Agents - ищите по нему
Telegram
FastNews | Никита Пастухов
Как работает агент
Начнем с очень базового вопроса - "что такое AI-АГЕНТ?"
Проблема в том, что никто точно не знает. Или просто я спрашивал не тех людей. Общепринятого формального определения нет. Но все, кто занимается разработкой агентов, +- интуитивно…
Начнем с очень базового вопроса - "что такое AI-АГЕНТ?"
Проблема в том, что никто точно не знает. Или просто я спрашивал не тех людей. Общепринятого формального определения нет. Но все, кто занимается разработкой агентов, +- интуитивно…
❤24👍2🔥1🍓1🫡1
Тут товарищ @GregorySeifu из комьюнити выпустил статью как, почему и зачем они мигрировали: Celery -> aio-pika -> FastStream
Спасибо ему большое за материал. Думаю, вам эта история тоже будет интересна 🙂
https://habr.com/ru/articles/1030082/
Спасибо ему большое за материал. Думаю, вам эта история тоже будет интересна 🙂
https://habr.com/ru/articles/1030082/
Хабр
Как мы переписывали логику очередей: Celery => aio-pika => FastStream
Наш путь активной работы с очередями RabbitMQ начался с классического Celery. Осознав критичность низкоуровневого контроля системы, принялись работать с aio-pika. Но и этот уровень слишком местами...
👍14🔥1
Elon Mask VS OpenAI
Сейчас многие заголовки гремят в стиле "Маск признался, что модели xAI дистиллировали OpenAI". Звучит хайпово (ведь подлый Маск настолько завидует OpenAI, что пытается скопировать их модели), но это и правда стандартная практика
Напомню, что Claude Sonnet 4.5 на старте говорил, что "Я - DeepSeek", DeepSeek говорил "Я - GPT", а сами Anthropic выкатывали кучу претензий к лабам, которые дистиллируют их модели. Так что не будем заострять на этом внимание
Но меня привлек сам факт конфликта - я как-то упустил, что за махач там происходит. А это действительно интересно
TL;DR: Маск занес 38кк$ в OpenAI в период 2015-2020 как пожертвование некоммерческой организации. С тех пор OpenAI приняли уже 13ккк$ инвестиций от Microsoft, организовало коммерческое подразделение и готовятся выйти на IPO (оценка 1кккк$, к слову). Маска бесит, что его оставляют за бортом AI движухи и он выдвигает дикие требования - "OpenAI меня обманули. Они больше не OpenSource, поэтомупусть вернут день обратно (это было бы логично) пусть OpenAI уволит Альтмана и Брокмана (соучредитель и президент OpenAI), поменяет организационную структуру на НКО и переведет 130ккк$ на ее баланс. А Microsoft пусть просто утрется
А вот такого отчета я добился от Claude после кучи уточняющих вопросов
Сейчас многие заголовки гремят в стиле "Маск признался, что модели xAI дистиллировали OpenAI". Звучит хайпово (ведь подлый Маск настолько завидует OpenAI, что пытается скопировать их модели), но это и правда стандартная практика
Напомню, что Claude Sonnet 4.5 на старте говорил, что "Я - DeepSeek", DeepSeek говорил "Я - GPT", а сами Anthropic выкатывали кучу претензий к лабам, которые дистиллируют их модели. Так что не будем заострять на этом внимание
Но меня привлек сам факт конфликта - я как-то упустил, что за махач там происходит. А это действительно интересно
TL;DR: Маск занес 38кк$ в OpenAI в период 2015-2020 как пожертвование некоммерческой организации. С тех пор OpenAI приняли уже 13ккк$ инвестиций от Microsoft, организовало коммерческое подразделение и готовятся выйти на IPO (оценка 1кккк$, к слову). Маска бесит, что его оставляют за бортом AI движухи и он выдвигает дикие требования - "OpenAI меня обманули. Они больше не OpenSource, поэтому
А вот такого отчета я добился от Claude после кучи уточняющих вопросов
Маск против OpenAI: что происходит в суде
На этой неделе в федеральном суде Окленда начался суд присяжных — Илон Маск против OpenAI, Сэма Альтмана, Грега Брокмана и Microsoft. Маск провел на свидетельской трибуне три дня (28–30 апреля) под жестким перекрестным допросом. Заседания возобновляются в понедельник, присяжные начнут совещаться примерно к 12 мая.
Суть претензий
Из 26 изначальных пунктов до присяжных добрались только два: нарушение благотворительного траста и неосновательное обогащение.
Логика Маска следующая: 38 миллионов долларов, которые он пожертвовал OpenAI как некоммерческой организации в 2015–2020 годах, юридически создали траст — компания обязалась навсегда остаться некоммерческой и open-source. Превращение в коммерческую структуру стоимостью ~850 миллиардов он называет «кражей благотворительности». Присяжным он объяснил проще: это дело «о защите благотворительности в Америке в целом».
Чего он хочет
Маск хочет:
- вернуть OpenAI к некоммерческой структуре
- отстранить Альтмана и Брокмана от руководства
- взыскать компенсацию в 130+ миллиардов долларов
Важная деталь: деньги он требует не себе, а в пользу некоммерческой части OpenAI.
Позиция OpenAI
Адвокат Альтмана Уильям Сэвитт во вступительном слове сформулировал ее просто и без прикрас: «Мы здесь потому, что мистер Маск не добился своего».
OpenAI утверждает, что сам Маск предлагал коммерческую структуру еще в 2015–2017 годах, ушел из совета директоров после провала попытки слить OpenAI с Tesla, а иск подал лишь в 2024-м — ровно через год после запуска xAI. На допросе выяснилась и вовсе неловкая деталь: Маск «не читал мелкий шрифт» term sheet 2018 года, где прямо упоминался план привлечь 10 миллиардов от Microsoft.
При чем тут Microsoft
Маск обвиняет Microsoft в пособничестве нарушению траста — ее 13+ миллиардов долларов инвестиций и 27%-я доля в коммерческой части OpenAI (стоимостью ~135 миллиардов) сделали «коммерческий захват» миссии возможным.
Microsoft отвечает на трёх основаниях: иск просрочен (Маск ещё в 2020-м публично писал, что «OpenAI захвачена Microsoft»), компания не знала ни о каком нарушении, а реальный мотив — конкуренция через xAI, а не забота о благотворительности.
Что на кону
Если Маск выиграет — IPO OpenAI (потенциальная оценка до 1 триллиона) может сорваться, Альтман и Брокман рискуют потерять позиции.
Юристы, впрочем, скептичны: суд по частному иску о благотворительном трасте крайне редко принимает решения о структурной перестройке компаний такого масштаба. Так что исход этой истории, вероятно, куда менее драматичен, чем сама постановка.
😁9❤1🤯1
Мои Джедайские техники продуктивности
В 2025 году перечитал "Джедайские техники" и собрал свою выжимку - про мыслетопливо, обезьяну, прокрастинацию, формулирование задач.
Получилось насколько постов, в которых я скрещивал теорию Дорофеева со своей практикой.
1. Тренируем заставлялку
2. Делаем через жопу
3. Основные проблемы с продуктивностью
4. Дела по 30 минут
5. Как расти по карьерной лестнице
6. Моя продуктивность
7. Что я изменил в своей системе
8. Эффективность VS Продуктивность
9. И еще раз о жопе
10. Эффективная Модель Кано
Тема эффективности мне всегда интересна, поэто я стараюсь изучать как можно больше материалов, отделяя их от инфоцыганства.
И все пропускаю через собственный опыт. Так что не надейтесь быстро от меня отвязаться... Я еще про вторую книгу Дорофеева ничего не писал🌚
#продуктивность #дорофеев
В 2025 году перечитал "Джедайские техники" и собрал свою выжимку - про мыслетопливо, обезьяну, прокрастинацию, формулирование задач.
Получилось насколько постов, в которых я скрещивал теорию Дорофеева со своей практикой.
1. Тренируем заставлялку
2. Делаем через жопу
3. Основные проблемы с продуктивностью
4. Дела по 30 минут
5. Как расти по карьерной лестнице
6. Моя продуктивность
7. Что я изменил в своей системе
8. Эффективность VS Продуктивность
9. И еще раз о жопе
10. Эффективная Модель Кано
Тема эффективности мне всегда интересна, поэто я стараюсь изучать как можно больше материалов, отделяя их от инфоцыганства.
И все пропускаю через собственный опыт. Так что не надейтесь быстро от меня отвязаться... Я еще про вторую книгу Дорофеева ничего не писал🌚
#продуктивность #дорофеев
Telegram
FastNews | Никита Пастухов
Прошло уже 5 лет, как я читал Максима Дорофеева и его "Джедайские техники" последний раз. И вот, вся "эффективность" выветрилась, я стал больше прокрастинировать, а выгорание уже дышит в спину...
Поэтому сейчас я сел перечитывать эту великолепную книгу (а…
Поэтому сейчас я сел перечитывать эту великолепную книгу (а…
❤5🔥2👍1😁1
OpenSource глазами мейнтейнера
Несколько разборов про разработку и продвижение OSS-проектов: от практических чеклистов до экономики (или её отсутствия).
– Гайд по OpenSource на GitHub — как стартовать, что важно, что не важно
– Полный гайд по OSS на GitHub — продолжение, более глубоко (в комменты тоже зайдите)
– Как зарабатывать на OpenSource — спойлер: никак
– Вайбкодеры в OSS — моя сгоревшаяя жопа
Серия не закрыта - буду докидывать новые истории по мере накопления. Тренд на AI захватил GitHub и, чую, скоро меня снова бомбанет
#opensource
Несколько разборов про разработку и продвижение OSS-проектов: от практических чеклистов до экономики (или её отсутствия).
– Гайд по OpenSource на GitHub — как стартовать, что важно, что не важно
– Полный гайд по OSS на GitHub — продолжение, более глубоко (в комменты тоже зайдите)
– Как зарабатывать на OpenSource — спойлер: никак
– Вайбкодеры в OSS — моя сгоревшаяя жопа
Серия не закрыта - буду докидывать новые истории по мере накопления. Тренд на AI захватил GitHub и, чую, скоро меня снова бомбанет
#opensource
Telegram
FastNews | Никита Пастухов
Гайд по OpenSource
Как-то я совсем профукал, что у Github есть ГАЙДИЩЕ по OpenSource – https://github.com/github/opensource.guide
Там есть клевые статьи о том:
– как контрибутить
– как запустить свой OSS
– как мейнтейнерам не выгорать
– как искать пользователей…
Как-то я совсем профукал, что у Github есть ГАЙДИЩЕ по OpenSource – https://github.com/github/opensource.guide
Там есть клевые статьи о том:
– как контрибутить
– как запустить свой OSS
– как мейнтейнерам не выгорать
– как искать пользователей…
🔥5👍3
FastNews | Никита Пастухов
Навигация по каналу Тут уже слишком много постов, поэтому собрал самое важное для вас в одном месте. 📚 Серии и циклы Большие темы, разобранные за несколько постов. У каждой серии — пост-саммари со всеми ссылками: – Агенты под капотом — посты про устройство…
Рабочая навигация
В канале накопилось так много постов, что я сам уже не понимаю, кто это вообще все написал😅 Да и людей тут значительно прибавилось - не все из присутствующих видели все грани моего безумия🌚
Поэтому подбил для вас навигацию:
📍О канале и обо мне - для тех, кто только подписался
📍Навигация - серии, лучшее по темам, хэштеги для фильтрации. Я прошелся по ВСЕМУ каналу и починил хештеги - теперь они имеют смысл
И ряд отдельных постов - подборок с навигацией по конкретным постам в серии.
- Агенты
- Опенсорс
- Продуктивность
Если давно подписаны и не помните, что тут было - теперь и вам удобно покопаться😅 Я сам нашел много интересного, о чем совсем забыл...
Например, мой любимый пост (про Винни-Пуха)
В канале накопилось так много постов, что я сам уже не понимаю, кто это вообще все написал😅 Да и людей тут значительно прибавилось - не все из присутствующих видели все грани моего безумия🌚
Поэтому подбил для вас навигацию:
📍О канале и обо мне - для тех, кто только подписался
📍Навигация - серии, лучшее по темам, хэштеги для фильтрации. Я прошелся по ВСЕМУ каналу и починил хештеги - теперь они имеют смысл
И ряд отдельных постов - подборок с навигацией по конкретным постам в серии.
- Агенты
- Опенсорс
- Продуктивность
Если давно подписаны и не помните, что тут было - теперь и вам удобно покопаться😅 Я сам нашел много интересного, о чем совсем забыл...
Например, мой любимый пост (про Винни-Пуха)
Telegram
FastNews | Никита Пастухов
Привет, давайте знакомиться!
Для тех, кто не знает, я:
• Никита
• Python (и не только) разработчик c 8летним опытом
• автор и мейнтейнер фреймворка FastStream
• мейнтейнер фреймворка AG2
• контрибутор многих других OpenSource проектов
• немного автор на…
Для тех, кто не знает, я:
• Никита
• Python (и не только) разработчик c 8летним опытом
• автор и мейнтейнер фреймворка FastStream
• мейнтейнер фреймворка AG2
• контрибутор многих других OpenSource проектов
• немного автор на…
👍4
Жесть, эти нейро-комментаторы так прокачались, что автоматом ищут наиболее релевантный пост, куда воткнуть свою рекламу🤯 Да и текст все более похож на человеческий
Для тех, кто не понял, что на картинке - некая Юля сначала воткнула рекламу какого-то тг бота под последним сообщением. А потом ТУТ ЖЕ удалила его и воткнула другой коммент под другим постом, где он выглядит уместнее
В общем, мне все тяжелее отличать живых людей от слопа🥲 Хотя, все достаточно просто - живые люди не комментируют😂
Для тех, кто не понял, что на картинке - некая Юля сначала воткнула рекламу какого-то тг бота под последним сообщением. А потом ТУТ ЖЕ удалила его и воткнула другой коммент под другим постом, где он выглядит уместнее
В общем, мне все тяжелее отличать живых людей от слопа🥲 Хотя, все достаточно просто - живые люди не комментируют😂
😁11👍5😎1
К слову, о недавно вышедшей gpt-realtime-2 - она действительно круто работает. Сейчас работаю над поддержкой LiveAPI в AG2 - с ним вы можете коммуницировать с агентом голосом всего в пару строк + получаете всю мощь инструментов, сабагентов, Skills и прочих встроенных фишек AG2
Я даже немного подтянул произношение английского, пока дебажил эту интеграцию😂 - это мой сценарий, я прошу модель поправлять мое произношение
Релиз
Еще есть что доделать, но это, в основном, всякие мелочи и нюансы. Пока поддерживает OpenAI и Gemini Live API (не знаю, у кого они еще есть), но параллельно с этим я делаю еще и API для STT + TTS кейсов - а там уже выбор пошире - будет коллаба с 11 Labs и Seedance. А у нас в России можно попробовать прикрутить Сберовский GigaChat как STT - я слышал, он хорошо работает с русским
В общем, если вы ищете агентный фреймворк, который отлично поддерживает еще и Live сценарии - то такое у нас тоже вот-вот будет🌚
#Agents
Я даже немного подтянул произношение английского, пока дебажил эту интеграцию😂 - это мой сценарий, я прошу модель поправлять мое произношение
import asyncio
from autogen.beta.live import (
LiveAgent,
SoundDevicePlayer,
SoundDeviceRecorder,
openai,
)
agent = LiveAgent(
name="assistant",
prompt="You are a helpful voice assistant.",
config=openai.RealTimeConfig("gpt-realtime-2"),
)
async def main() -> None:
async with (
agent.run() as context,
SoundDevicePlayer(context=context),
SoundDeviceRecorder(context=context),
):
print("Starting...")
await asyncio.Future()
if __name__ == "__main__":
asyncio.run(main())
Релиз
0.13 будет уже вот-вот, так что на днях сможете тоже поиграться с голосовыми агентами, если интересно. Вообще, релиз обещает быть жирным - там и LiveAgents, и Agents Workflow, и A2A, и MCP. Так получается, что все закрыли свои таски +- одновременно😂 Так что релиз застрял на этапе ревьюЕще есть что доделать, но это, в основном, всякие мелочи и нюансы. Пока поддерживает OpenAI и Gemini Live API (не знаю, у кого они еще есть), но параллельно с этим я делаю еще и API для STT + TTS кейсов - а там уже выбор пошире - будет коллаба с 11 Labs и Seedance. А у нас в России можно попробовать прикрутить Сберовский GigaChat как STT - я слышал, он хорошо работает с русским
В общем, если вы ищете агентный фреймворк, который отлично поддерживает еще и Live сценарии - то такое у нас тоже вот-вот будет🌚
#Agents
OpenAI
Advancing voice intelligence with new models in the API
Explore new realtime voice models in the OpenAI API that can reason, translate, and transcribe speech, enabling more natural and intelligent voice experiences.
🔥10😨4👍3❤1
Завтра на работу, а я уже все профукал
Майские закончились, пора на работу. Что ждет меня завтра?
- В Linear висят 12 тикетов
- на Github - 10 неотсмотренных PR'ов
- в Slack - 40+ непрочитанных сообщений
А в голове - ноль идей и полное непонимание, как это разгребать. Да, и это я еще не брал неделю выходных между праздниками🌚
Знакомая картина? У меня для неё есть пара костылей из книжек, которыми я вытаскиваю себя из выгорания.
1. Идеального понедельника не будет (Дорофеев)
В "Пути джедая" Дорофеев формулирует прекрасное:
То есть — никогда. Если ждать момент, когда "вот теперь нормально вкачусь" — можно ещё неделю накинуть. Глядишь, помолодеем.
2. Привычка начинать — самая тяжёлая (Клир)
В "Атомных привычках" Клир советует: не "сделай тренировку", а "переоденься в спортивную одежду". Не "напиши статью", а "открой пустой документ". Самое сложное в любом деле — это первое движение. Поэтому первое движение должно быть максимально тупым и дешёвым.
Мой план на завтра в той же логике:
– открыть Linear (НЕ разбирать беклог)
– открыть один тикет (НЕ решать)
– прочитать описание (НЕ начинать)
Если после этого включится — отлично, возьму задачу. Если нет — закрою ноут и пойду варить кофе. Главное — войти в контекст без обязаловки. Обезьянку не обманешь "сделай всё за один день", но "просто посмотри одним глазком" она проглотит.
И главное правило из той же книги:
Один пропущенный день — это отдых. Два подряд — это уже начало новой привычки пропускать. Именно поэтому я пишу этот пост в воскресенье вечером — потому что иначе во вторник пойму, что на канал я тоже забил, и умрет он сам по себе😅
А вы как втягиваетесь в работу? С каждого - комментарий с количеством непрочитанных в слаке🌚
#продуктивность #книги
Майские закончились, пора на работу. Что ждет меня завтра?
- В Linear висят 12 тикетов
- на Github - 10 неотсмотренных PR'ов
- в Slack - 40+ непрочитанных сообщений
А в голове - ноль идей и полное непонимание, как это разгребать. Да, и это я еще не брал неделю выходных между праздниками🌚
Знакомая картина? У меня для неё есть пара костылей из книжек, которыми я вытаскиваю себя из выгорания.
1. Идеального понедельника не будет (Дорофеев)
В "Пути джедая" Дорофеев формулирует прекрасное:
Заниматься важным делом нужно, только когда выспался, сыт, в хорошем настроении, на улице солнышко, ничего не болит, мелкие задачи переделаны, и никто не дёргает срочными вопросами.
То есть — никогда. Если ждать момент, когда "вот теперь нормально вкачусь" — можно ещё неделю накинуть. Глядишь, помолодеем.
2. Привычка начинать — самая тяжёлая (Клир)
В "Атомных привычках" Клир советует: не "сделай тренировку", а "переоденься в спортивную одежду". Не "напиши статью", а "открой пустой документ". Самое сложное в любом деле — это первое движение. Поэтому первое движение должно быть максимально тупым и дешёвым.
Мой план на завтра в той же логике:
– открыть Linear (НЕ разбирать беклог)
– открыть один тикет (НЕ решать)
– прочитать описание (НЕ начинать)
Если после этого включится — отлично, возьму задачу. Если нет — закрою ноут и пойду варить кофе. Главное — войти в контекст без обязаловки. Обезьянку не обманешь "сделай всё за один день", но "просто посмотри одним глазком" она проглотит.
И главное правило из той же книги:
Никогда не пропускай дважды подряд.
Один пропущенный день — это отдых. Два подряд — это уже начало новой привычки пропускать. Именно поэтому я пишу этот пост в воскресенье вечером — потому что иначе во вторник пойму, что на канал я тоже забил, и умрет он сам по себе😅
А вы как втягиваетесь в работу? С каждого - комментарий с количеством непрочитанных в слаке🌚
#продуктивность #книги
14🔥18👍8❤4
https://habr.com/p/1034102/
Контрибутор AG2 Семён выкатил статью на Habr, которую я давно должен был написать сам
Статья про интеграцию бекенд-агентов с Web UI через AG-UI протокол. Ну, и конечно, про DI (ваш любимый dishka) в агентах.
DI в LLM-агентах - больная тема, с которой я сам регулярно сталкиваюсь в агентских приложениях. Никто особо не думает о том, как прокидывать данные в агента из внешнего контекста (например, из HTTP запроса), как организовать бизнес-логику внутри инструментов. В общем, как подружить LLM логику с детерминированным кодом приложения.
Семён разбирает, как это делать правильно через dishka-ag2 — мост между AG2 и Dishka от другого контрибутора (спасибо Данил).
Особенно рекомендую раздел про транзакционную семантику tool calls — что происходит, когда модель параллельно вызывает 3 инструмента, и один падает. Спойлер: общей транзакции нет.
Внутри полный код, паттерны и антипаттерны, ссылка на репозиторий, где вы сами можете поиграться с кодом.
#Agents #программирование
Контрибутор AG2 Семён выкатил статью на Habr, которую я давно должен был написать сам
Статья про интеграцию бекенд-агентов с Web UI через AG-UI протокол. Ну, и конечно, про DI (ваш любимый dishka) в агентах.
DI в LLM-агентах - больная тема, с которой я сам регулярно сталкиваюсь в агентских приложениях. Никто особо не думает о том, как прокидывать данные в агента из внешнего контекста (например, из HTTP запроса), как организовать бизнес-логику внутри инструментов. В общем, как подружить LLM логику с детерминированным кодом приложения.
Семён разбирает, как это делать правильно через dishka-ag2 — мост между AG2 и Dishka от другого контрибутора (спасибо Данил).
Особенно рекомендую раздел про транзакционную семантику tool calls — что происходит, когда модель параллельно вызывает 3 инструмента, и один падает. Спойлер: общей транзакции нет.
Внутри полный код, паттерны и антипаттерны, ссылка на репозиторий, где вы сами можете поиграться с кодом.
#Agents #программирование
🔥12👍3🤓2
И снова к материалу про агенты, которым я вас задолбал😅
Последний раз, они мне самому уже надоели
Выпустил большой лонгрид на Habr, в котором объединил прошлые 12 постов в нормальный связанный текст + докинул примеры кода. Если хотите закрепить или в постах не хватило связности - welcome.
Если не хотите читать эту простыню еще раз - все равно заходим, ставим плюс вверх и поднимаем статью в выдаче😂 Не все же преисполнились на этом канале, надо и до остальных годный материал дотолкать🌚
Внутри статьи:
– Что такое Agent на самом деле (спойлер: LLM + обвязка, а не магия)
– Как управлять контекстом, чтобы агент не забывал о чём вы говорили 5 минут назад
– Tools, MCP, память, субагенты – все с кодом
– Почему 90% фреймворков для агентов – это маркетинг поверх 200 строк кода
https://habr.com/ru/articles/1029326/
Кто осилит до конца – поймёт, что собрать своего агента проще, чем разобраться в деплое клешней😅
#Agents
Последний раз, они мне самому уже надоели
Выпустил большой лонгрид на Habr, в котором объединил прошлые 12 постов в нормальный связанный текст + докинул примеры кода. Если хотите закрепить или в постах не хватило связности - welcome.
Если не хотите читать эту простыню еще раз - все равно заходим, ставим плюс вверх и поднимаем статью в выдаче😂 Не все же преисполнились на этом канале, надо и до остальных годный материал дотолкать🌚
Внутри статьи:
– Что такое Agent на самом деле (спойлер: LLM + обвязка, а не магия)
– Как управлять контекстом, чтобы агент не забывал о чём вы говорили 5 минут назад
– Tools, MCP, память, субагенты – все с кодом
– Почему 90% фреймворков для агентов – это маркетинг поверх 200 строк кода
https://habr.com/ru/articles/1029326/
Кто осилит до конца – поймёт, что собрать своего агента проще, чем разобраться в деплое клешней😅
#Agents
👍21🔥17🥰4❤🔥2
Всем большое спасибо за поддержку статьи: https://habr.com/ru/articles/1029326/
Она уже набрала больше 100 плюсов на Habr, что для моего материала абсолютный рекорд🤯 (предыдущий рекорд). Однако, просмотров всего 20к, что не очень много для статьи в горячем.
Вы все правы - я лажанул с названием😢 Попытка сыграть на кликбейте сыграла со мной злую шутку и отпугивает часть аудитории. Очень не хочется, чтобы такая БАЗА по агентам канула в лету - поэтому очень прошу:
Если статья вам зашла - помогите ее распространить: киньте в рабочие чатики, другие группы, своим подписчикам (у кого есть), друзьям, кому интересно. Очень хочется, чтобы на запрос "как написать своего агенты" индексировался именно этот материал, не зря же я его писал😂
ДЛЯ НОВЫХ ПОДПИСЧИКОВ
На этот канал подписалось уже 60+ человек, пришедшие со статьи. Большое вам спасибо за это! Но должен вас честно предупредить, о чем этот канал - он обо всем. Поэтому рекомендую вам ознакомиться с навигацией, прежде чем вы примите окончательно решение остаться. Потом я буду обижаться персонально на каждого отписчика🌚
НАВИГАЦИЯ
Она уже набрала больше 100 плюсов на Habr, что для моего материала абсолютный рекорд🤯 (предыдущий рекорд). Однако, просмотров всего 20к, что не очень много для статьи в горячем.
Вы все правы - я лажанул с названием😢 Попытка сыграть на кликбейте сыграла со мной злую шутку и отпугивает часть аудитории. Очень не хочется, чтобы такая БАЗА по агентам канула в лету - поэтому очень прошу:
Если статья вам зашла - помогите ее распространить: киньте в рабочие чатики, другие группы, своим подписчикам (у кого есть), друзьям, кому интересно. Очень хочется, чтобы на запрос "как написать своего агенты" индексировался именно этот материал, не зря же я его писал😂
ДЛЯ НОВЫХ ПОДПИСЧИКОВ
На этот канал подписалось уже 60+ человек, пришедшие со статьи. Большое вам спасибо за это! Но должен вас честно предупредить, о чем этот канал - он обо всем. Поэтому рекомендую вам ознакомиться с навигацией, прежде чем вы примите окончательно решение остаться. Потом я буду обижаться персонально на каждого отписчика🌚
НАВИГАЦИЯ
Хабр
Вам не нужен OpenClaw — напишите свой
Привет, Хабр! Меня зовут Никита Пастухов — автор FastStream , Principal Engineer и мейнтейнер AG2 (фреймворк для разработки агентов). Я уже 8 лет в разработке, последний год - по уши в агентах. И я...
👍23❤6😁2
О, классный подгон. Денис прогнал GPT по кодовой базе популярных OSS агентов и утечек исходников - и собрал лучшие практики разработки агентов в один большой Rule
Внутрь пока не заглядывал, но должно получиться неплохо. Попробую на практике на следующей неделе
Внутрь пока не заглядывал, но должно получиться неплохо. Попробую на практике на следующей неделе
👍3👀1
Forwarded from Denis Sexy IT 🤖
Там нет кода, есть текстовые справочники на темы – мне помогло:
Архитектура агентного harness
Как устроить runtime вокруг модели: контекст, инструменты, permissions, память, наблюдаемость и остановочные условия.
Agentic loop
Базовый цикл: модель → tool call → валидация → permission check → выполнение → observation → следующий шаг или финальный ответ.
System prompts и инструкции
Как проектировать слои промптов: global, workspace, domain-specific, task-level и runtime reminders.
Tools и permissions
Как делать инструменты узкими, типизированными, безопасными, проверяемыми и разделёнными по risk class.
Planning mode
Как отделять планирование от исполнения: read-only exploration, план-артефакт, approval и потом мутации.
Goal-like loop
Как задавать долгоживущие цели с budget, checkpoints, validation criteria и stop condition. Это вместо Ralph Loop.
Context, memory и auto-compaction
Как управлять контекстом, делать retrieval, сохранять рабочее состояние и сжимать историю без потери критичных данных.
Prompt caching и cost-aware context
Как строить стабильные prompt-prefixes, deterministic tool ordering и cache-friendly agent runtime.
Skills и progressive disclosure
Как подключать reusable workflows: короткий skill index сначала, полные инструкции только при необходимости.
MCP и external connectors
Как подключать внешние системы через governed connectors: namespacing, auth, permissions, audit logs и least privilege.
Security, approvals и sandboxing
Prompt injection, secrets, approval flows, draft-vs-commit, sandbox для open-world tools.
Observability и evals
Как логировать agent runs, tool calls, approvals, compactions, failures и тестировать harness на реальные failure modes.
Provider API patterns
Практики для OpenAI, Anthropic и OpenAI-compatible API без привязки к одному провайдеру.
Checklists и coverage audit
Готовые списки для проверки: перед запуском, перед добавлением tools, перед подключением skills/connectors и перед продом.
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - DenisSergeevitch/agents-best-practices: Provider-neutral Agent Skill for Codex, Claude Code, and agentic harness design.
Provider-neutral Agent Skill for Codex, Claude Code, and agentic harness design. - DenisSergeevitch/agents-best-practices
🔥13👍11
FastNews | Никита Пастухов
Всем большое спасибо за поддержку статьи: https://habr.com/ru/articles/1029326/ Она уже набрала больше 100 плюсов на Habr, что для моего материала абсолютный рекорд🤯 (предыдущий рекорд). Однако, просмотров всего 20к, что не очень много для статьи в горячем.…
Я на 100% уверен, что программа поддержки авторов Habr создана, чтобы я купил себе пива. Надо же как-то отпраздновать удачную статью🌚
А я тем временем уже готовлю новый материал - про
Если же вам интересны еще какие-то аспекты разработки агентов (или что-то другое) - накидайте в комментах
А я постараюсь разбавлять slop-flood последних недель постами не только про AI😂
А я тем временем уже готовлю новый материал - про
LiveAgent'ов (тех, что говорят, слушают и видят в прямом эфире). Статья будет приурочена к выходу Sutando агента - https://sutando.ag2.ai/. Его вот-вот выпустят из альфы, но опять же - никто не мешает вам написать такого же самому😅Если же вам интересны еще какие-то аспекты разработки агентов (или что-то другое) - накидайте в комментах
А я постараюсь разбавлять slop-flood последних недель постами не только про AI😂
🔥18👍7🍾2
FastNews | Никита Пастухов
По многочисленным заявкам немногочисленного Андрея попытаюсь изложить практические аспекты идологии TDD Коротенько не получилось, поэтому вот ссылка на фул. Краткие тезисы для ЛЛ: 1) Цикл TDD: красный тест – зеленый тест – рефакторинг, повторяем 2) Держим…
TDD в большом существующем проекте
На этом канале уважают #TDD, и я про него уже писал. Но это все были теоретические выкладки, и меня постоянно спрашивали - "приведи пример из практики", или "а как внедрять TDD в существующий проект?".
Чтож, сейчас в FastStream ведется работа над большой фичей (PR-2867) - поддержкой многоброкерности. И вот, одним из аспектов этой фичи является поддержка тестирования кросс-брокерных взаимодействий. Фича большая, сложная, поэтому она идеально иллюстрирует TDD-flow.
Итак, наша проблема: есть 2 брокера, которые публикуют сообщения друг другу.
Проблема в том, что текущая реализация
К слову, эту проблему я отловил, когда писал тесты на многоброкерность
Итак, решение, которое мы хотим видеть - тестовый брокер должен знать обо всех подписчиках всех брокеров одного типа. Что-то типа такого:
Это очень большое и сложное изменение, которое будет гораздо проще разбить на шаги. Каждый шаг будем проверять на существующих тестах (они не должны падать) - это наши чекпоинты. А в конце - новый тест должен проходить.
Итак, наши шаги:
1️⃣ Внутри
Публичный API тот же, поведение то же - но внутри уже множественность. Запускаем существующие тесты - они должны проходить. Коммитим.
2️⃣ Учу
Тесты не поломались, значит все хорошо. Коммитим.
3️⃣ Теперь
- наконец зелёный.
А потом уже Claude натянет изменения на другие брокеры по аналогии
Что важно: на каждом из шагов все существующие тесты продолжали проходить. Я ни разу не сидел в состоянии "я переписал половину ядра, все красное, но еще чуть-чуть - и все заработает". Каждый коммит - самостоятельный, откатываемый, не разносит чужие пайплайны. А если бы я не сквошил, это еще и ревьюить было бы просто😂
Так вот - формула, ради которой это все затевалось:
В эпоху, когда LLM пишут код тоннами, ценность тестов не падает, а только растёт. Тесты - это контракт поведения. Без них ни ты, ни нейронка не знаете, что значит "работает". Поэтому я и топлю за TDD. Пусть лучше нейронка пишет реализацию по моим тестам - меня не сильно волнует, что внутри, если все мои контракты на ожидаемое поведение выполняются.
#программирование #TDD
На этом канале уважают #TDD, и я про него уже писал. Но это все были теоретические выкладки, и меня постоянно спрашивали - "приведи пример из практики", или "а как внедрять TDD в существующий проект?".
Чтож, сейчас в FastStream ведется работа над большой фичей (PR-2867) - поддержкой многоброкерности. И вот, одним из аспектов этой фичи является поддержка тестирования кросс-брокерных взаимодействий. Фича большая, сложная, поэтому она идеально иллюстрирует TDD-flow.
Итак, наша проблема: есть 2 брокера, которые публикуют сообщения друг другу.
broker1 = RabbitBroker()
broker2 = RabbitBroker()
@broker1.subscriber("queue-1")
# broker2 публикует сообщения в queue-2 (broker1)
@broker2.publisher("queue-2")
async def handler1(msg): ...
@broker1.subscriber("queue-2")
async def handler2(msg): ...
Проблема в том, что текущая реализация
TestBroker не поддерживает кросс-брокерные взаимодействия - т.е. TestBroker(broker2) не знает про подписчиков broker1, и выкидывает SubscriberNotFound ошибку (хотя в реальности очередь слушается другим брокером).К слову, эту проблему я отловил, когда писал тесты на многоброкерность
Итак, решение, которое мы хотим видеть - тестовый брокер должен знать обо всех подписчиках всех брокеров одного типа. Что-то типа такого:
# TestRabbitBroker должен знать обо всем
async with TestRabbitBroker(broker1, broker2) as (br1, br2):
...
Это очень большое и сложное изменение, которое будет гораздо проще разбить на шаги. Каждый шаг будем проверять на существующих тестах (они не должны падать) - это наши чекпоинты. А в конце - новый тест должен проходить.
Итак, наши шаги:
1️⃣ Внутри
TestBroker меняю self.broker на self.brokers: list[...]:
class TestBroker:
def __init__(self, broker):
self.brokers = [broker] # было: self.broker = broker
Публичный API тот же, поведение то же - но внутри уже множественность. Запускаем существующие тесты - они должны проходить. Коммитим.
2️⃣ Учу
TestRabbitBroker(broker1, broker2) оборачивать оба брокера независимо - пока что эквивалент двух раздельных TestRabbitBroker(broker1) as br1, TestRabbitBroker(broker2) as br2. Никакого шеринга подписчиков, просто чтобы новый синтаксис заработал и as (br1, br2) корректно распаковывался.
class TestBroker:
def __init__(self, *brokers):
self.brokers = list(brokers)
Тесты не поломались, значит все хорошо. Коммитим.
3️⃣ Теперь
TestRabbitBroker(broker1, broker2) действительно учитывает подписчиков всех включённых брокеров - broker2.publish доезжает до подписчиков broker1. И теперь наш новый тест должен проходить:
async with TestRabbitBroker(broker1, broker2) as (br1, br2):
await br1.publish("hello", "queue-1")
handler2.mock.assert_called_once_with("processed: hello") # ✅
- наконец зелёный.
А потом уже Claude натянет изменения на другие брокеры по аналогии
Что важно: на каждом из шагов все существующие тесты продолжали проходить. Я ни разу не сидел в состоянии "я переписал половину ядра, все красное, но еще чуть-чуть - и все заработает". Каждый коммит - самостоятельный, откатываемый, не разносит чужие пайплайны. А если бы я не сквошил, это еще и ревьюить было бы просто😂
Так вот - формула, ради которой это все затевалось:
Если ты упёрся в "слишком большое изменение, чтобы сделать за раз" - это значит "пора резать на шаги, между которыми тесты проходят".
В эпоху, когда LLM пишут код тоннами, ценность тестов не падает, а только растёт. Тесты - это контракт поведения. Без них ни ты, ни нейронка не знаете, что значит "работает". Поэтому я и топлю за TDD. Пусть лучше нейронка пишет реализацию по моим тестам - меня не сильно волнует, что внутри, если все мои контракты на ожидаемое поведение выполняются.
#программирование #TDD
GitHub
feat: add multibrokers support by Lancetnik · Pull Request #2867 · ag2ai/faststream
Adds multibroker support across the application stack (internal application, FastStream app, ASGI integration) and updates related tests.
from faststream import FastStream, Logger
from faststream.n...
from faststream import FastStream, Logger
from faststream.n...
👍11❤4🔥2👏1