Уже неделю чувствую себя ненормированно свободным, впервые за долгое время проснулось кодовдохновение. А потому - делюсь! Много мыслей и немного кода.
В чем экзистенциальный ужас платформенной разработки? Приходится поддерживать и учитывать разные платформы, их версии, ограничения. И как бы я ни бегал от мрака версионности, всё-же напоролся на примере sgr core
Итак, проблема:
Фреймворк построен на Structured Output, но его поддерживают далеко не все конфигурации локальных/проприетарных LLM. Что самое страшное, даже если поддерживают, то не всегда однородно! Требуемые JSON схемы могут различаться.
Если фреймворк может работать, а может не работать на неопределённом множестве моделей - это ужасненько.
Structured output(SO) по моему скромному мнению это железная база, без которой сложно представить взаимодействие агентов
Примеры:
- Кто-то гарантирует ответ строго по формату, а кто-то может допустить ошибки даже при заданной схеме
- Кто-то поддерживает вложенные AnyOf и прочие агрегаты схем, а кто-то нет
- Где-то можно прокинуть ограничения
min_length=1, max_length=3, а где-то нет, они в лучшем случае будут проигнорированы- Кто-то хавает литералы и сопутствующие им enums, а кто-то отказывается
Как общий знаменатель пришла мысля создать решение, которое бы эмулировало независимый от ллмки SO без реальной в нём потребности на стороне провайдера . Идея "попроси модель сделать как надо" далеко не нова, и тем не менее было полезно посмотреть, насколько хорошо и стабильно это могут делать современные LLM
Концепция:
class
ToolInstantiator принимает в свой init Pydantic модель, и имеет два основных метода интерфейса:- Сгенерить промпт с описанием схемы для LLM
- Провалидировать полученный ответ LLM на предмет возможности билда инстанса Pydantic модели
На каждом следующем этапе промпт,выдаваемый классом, учитывает ошибки и проблемы предыдущей итерации, корректируя/фокусируя LLM
Путём некоторых экспериментов было выявлено, что прямая json схема для LLM сложновата ввиду нотации и неконсистентной информации о полях и их типах. А ещё иногда модельки путались и выдавали JSON schema аналогичную промптовой в ответ. Поэтому появился класс-помогатор
SchemaSimplifier, разбирающий схему и преобразующий в более минималистичную нотациюЕщё была интересная концепция, где каждое поле валидировалось по отдельности и даже если модель выдала в общем не полностью корректный JSON, часть верных полей принимались и не требовались на дальнейших итерациях генерёжки. Идея была отброшена ввиду нелицеприятности кодреализации такой фичи.
Лучше никому не видеть мою попытку в конвертацию типов raw context regex parsing -> json string->python type -> pydantic validator
Вот тут реализация - почти хорошо
работает следующим образом
for attempt in range(max_retries):
async with self.openai_client.chat.completions.stream(
messages=messages + [{"role": "user", "content": instantiator.generate_format_prompt()}],
) as stream:
completion = await stream.get_final_completion()
try:
content = completion.choices[0].message.content
tool_instance = instantiator.build_model(content)
return tool_instance
except ValueError:
continue
GitHub
sgr-agent-core/sgr_agent_core/services/tool_instantiator.py at 5b5c74bb8082eef5dd3b0b7cb2c865cee17af10c · vamplabAI/sgr-agent-core
Schema-Guided Reasoning (SGR) has agentic system design created by neuraldeep community - vamplabAI/sgr-agent-core
🔥4❤2
А дальше был бенчмарк на всех моделях, до которых я смог дотянуться.
Тестировалось четыре кейса из числа тулов фреймворка:
- ReasoningTool, где было много ограничений на длину строк и списков
- WebSearchTool - прост
- CreateReportTool - сгенерить объёмный вывод
- NextStepToolSelector - по динамически составляемой схеме сделать корректный инпуту выбор function_name_choice
Так много GPTшек тут ибо на прогонах обнаружил, что разные версии очень неравномерно по выдаваемому результату себя ведут.
gpt-4o>>gpt-5-mini>gpt-5>>gpt-4.1
Upd: глянул приложенную версию бенча, там всё даже слишком хорошо, почти все задачи закрылись с первых попыток. Так было далеко не на всех итерациях и некоторые модельки включая gpt-5 любили забывать кавычки внутри кавычек и уходить в самоповторы все пять раз.
Тем не менее, если хитрый вайбкодинг бенча меня нигде не попутал, сама по себе возможность получения такового прогона говорит о качестве современных моделек на задачах генерёжки JSON форматированного текста
Тестировалось четыре кейса из числа тулов фреймворка:
- ReasoningTool, где было много ограничений на длину строк и списков
- WebSearchTool - прост
- CreateReportTool - сгенерить объёмный вывод
- NextStepToolSelector - по динамически составляемой схеме сделать корректный инпуту выбор function_name_choice
Так много GPTшек тут ибо на прогонах обнаружил, что разные версии очень неравномерно по выдаваемому результату себя ведут.
gpt-4o>>gpt-5-mini>gpt-5>>gpt-4.1
Upd: глянул приложенную версию бенча, там всё даже слишком хорошо, почти все задачи закрылись с первых попыток. Так было далеко не на всех итерациях и некоторые модельки включая gpt-5 любили забывать кавычки внутри кавычек и уходить в самоповторы все пять раз.
Тем не менее, если хитрый вайбкодинг бенча меня нигде не попутал, сама по себе возможность получения такового прогона говорит о качестве современных моделек на задачах генерёжки JSON форматированного текста
🔥5👌2💯1
tool_instantiator_openai_20260207_001022 (1).html
299.6 KB
Файл бенча отдельно, чтоб пост красивее выглядел💅
От @evilfreelancer прилетело дельное замечание по поводу объёма бенча.
Посчитал расширенные результаты + сделал дополнительный бенч на усложнённых кейсах, где надо не просто сгенерить схему, а выбрать подсхему и заполнить её в виде вложенного объекта в соответствии с контекстом.
Схема в пост не влезла, поэтому будет на скрине
Первый файл: 10 попыток на модель, 4 базовых кейса
Второй файл: 10 попыток на модель, 2 продвинутых кейса
Модельки:
- gpt-oss-120b
- qwen3-30b-a3b-instruct-2507
- glm-4.7-flash:30b
- gpt-oss:20b
- gpt-4o
- gpt-4o-mini
- gpt-5-mini
- gpt-5-nano
temperature: 0.3
Тест кейс с примером контекста для модельки:
Посчитал расширенные результаты + сделал дополнительный бенч на усложнённых кейсах, где надо не просто сгенерить схему, а выбрать подсхему и заполнить её в виде вложенного объекта в соответствии с контекстом.
Схема в пост не влезла, поэтому будет на скрине
Первый файл: 10 попыток на модель, 4 базовых кейса
Второй файл: 10 попыток на модель, 2 продвинутых кейса
Модельки:
- gpt-oss-120b
- qwen3-30b-a3b-instruct-2507
- glm-4.7-flash:30b
- gpt-oss:20b
- gpt-4o
- gpt-4o-mini
- gpt-5-mini
- gpt-5-nano
temperature: 0.3
Тест кейс с примером контекста для модельки:
nextstep_tools_6 = [
ReasoningTool,
WebSearchTool,
ExtractPageContentTool,
AdaptPlanTool,
CreateReportTool,
ClarificationTool,
]
NextStepTools6 = NextStepToolsBuilder.build_NextStepTools(nextstep_tools_6)
test_cases.append(
(
NextStepTools6, # type: ignore
"The user has found several relevant web pages during their research on 'Machine Learning in Healthcare'. "
"They have URLs of articles and research papers that contain detailed information they need: "
"https://www.nature.com/articles/s41591-021-01614-0 and "
"https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6568067/. "
"The user wants to extract the full content from these specific pages to analyze the information "
"and include it in their research report.",
"extractpagecontenttool", # Expected tool name
"NextStepTools (6 tools)", # Case name
),
)
👍2
basic_bench_10_runs.html
1.5 MB
Телега, которая не даёт всё прикладывать к одному посту, меня угнетает =(
💯1
(!)Поток мыслей(!)
Хочу для разнообразия от технички что-нибудь измыслить и пованговать чтоб сначала говорить "А я это ещё тогда говорил" а потом "надо же как интересно получилось"
Итак, есть два поинта. Первый подготовительный, почему это вообще может работать
(1)
На меня снизошло озарение, что по сути мы в работе с агентами движемся к светлому декларативному будущему над императивными инструментами
Нам всё ещё необходимо дотошно представлять поведение выстраиваемой системы примерно на уровне алгоритмов и структурно-архитектурной логики чтоб хотя бы прицениться к возможностям/перспективам реализации. Эти принимаемые решения о поведении весьма многообразны, зависят от опыта/видения/настроения разработчика и могут различаться вплоть до основополагающих принципов организации проекта.
Кто-то эвентики пуляет, кто-то шину данных пильнёт, кто-то подумает нунахер и построит на сырых запросиках. А! О! Или на очередях.
Большая проблема разработки - построение технологических систем в современных масштабах требует дичайшей когнитивной нагрузки. Для этого, разумеется, придумываются целые слои абстракций и инструментови всё становится ещё хуже, что делает возможным работу почти со всем имеющимся зоопарком для команды из 3-5 людей, помноженных на необходимую скорость поставки и требования к обслуживанию.
Как процесс - мы с самого начала находимся в стадии автоматизации, подменяя изначальную сложность системы чем-то более высокоуровневым и имеющим проблему уже конфигурирования оного
> Фундаментальные проблемы решаются сложной абстракцией
> Сложная абстракция получает в конфигурируемые интерфейсы
> Конфигурационная надстройка упрощается и дробится на специализированные более простые технологии
> технологии получают экосистему для их встраивания и сопровождения
> Начинается новый виток абстрации
Как некоторый поинт:
У нас в профессии уже сейчас наработано достаточно инструментов, опыта, кодоартефактов чтобы при должной адаптации под агентов можно было исходить из декларативного подхода, что более и более успешно доказывает claude/codex/cursor в локальных задачах и современные PAAS и MLOps платформы на глобальных
Хочу для разнообразия от технички что-нибудь измыслить и пованговать чтоб сначала говорить "А я это ещё тогда говорил" а потом "надо же как интересно получилось"
Итак, есть два поинта. Первый подготовительный, почему это вообще может работать
(1)
На меня снизошло озарение, что по сути мы в работе с агентами движемся к светлому декларативному будущему над императивными инструментами
Нам всё ещё необходимо дотошно представлять поведение выстраиваемой системы примерно на уровне алгоритмов и структурно-архитектурной логики чтоб хотя бы прицениться к возможностям/перспективам реализации. Эти принимаемые решения о поведении весьма многообразны, зависят от опыта/видения/настроения разработчика и могут различаться вплоть до основополагающих принципов организации проекта.
Кто-то эвентики пуляет, кто-то шину данных пильнёт, кто-то подумает нунахер и построит на сырых запросиках. А! О! Или на очередях.
Большая проблема разработки - построение технологических систем в современных масштабах требует дичайшей когнитивной нагрузки. Для этого, разумеется, придумываются целые слои абстракций и инструментов
Как процесс - мы с самого начала находимся в стадии автоматизации, подменяя изначальную сложность системы чем-то более высокоуровневым и имеющим проблему уже конфигурирования оного
> Фундаментальные проблемы решаются сложной абстракцией
> Сложная абстракция получает в конфигурируемые интерфейсы
> Конфигурационная надстройка упрощается и дробится на специализированные более простые технологии
> технологии получают экосистему для их встраивания и сопровождения
> Начинается новый виток абстрации
Как некоторый поинт:
У нас в профессии уже сейчас наработано достаточно инструментов, опыта, кодоартефактов чтобы при должной адаптации под агентов можно было исходить из декларативного подхода, что более и более успешно доказывает claude/codex/cursor в локальных задачах и современные PAAS и MLOps платформы на глобальных
❤8🕊1
Если принять (1) за правду, что мы начинаем жить в более декларативном мире
(2)
Происходит какаето гиперфиксация непосредственно на кодинге, его вайб собрате в то время как имеет место быть более глобальный процесс. По крайней в публичных холиварах я чаще вижу "как можно не контролировать код?!" чем "Где найти x100 заказчиков с деньгами для теста гипотез"
Вангую: Цель тренда - заменить ВЕСЬ процесс разработки на декларативно-агентную систему.
Представим очень грубо, что у нас есть глобальный пайплайн-комбайн с задачей
- найти заказчика (ну или хотя бы продукт холдера)
-положить его на громадный фреймворк сбора информации
- Собрать хотелки
- Проанализировать хотелки
- Прикинуть хотелки с возможностями
- Прикинуть как возможности соотносятся с реальным миром, rpsами, байтами данных и затратами на электричество
- Реализовать
- Развернуть
- Выставить вкусный счёт
Чтоб оно выглядело как солидный процесс надо расставить ещё какое-то количество стрелочек и циклов между этими этапами.
Здесь хорошо выделить три части
1) Exploration - выделить всё существенное и запустить сопутствующие процессы проработки
-> Изначальный бизнес контекст формируется, расширяется, уточняется
2) Формализация бизнес контекста - организация всё ещё высокоуровневой информации в домен. Натягивание структуры, общеизвестных паттернов. К реализации будет предполагается именно то, что описано на этом этапе.
-> Имеющийся контекст сужается
3) Разработка - фривольная трансляция некоторого подготовленного бизнес домена на императивные структуры формальных ЯП или куда пониже.
-> автоматизация как цель
Или ещё проще: расширение-сужение-трансляция
Текущие процессы/фреймворки/подходы направлены на то, чтобы для всех этих этапов сократить количество сопутствующих потерь информации. А они так или иначе будут. И сопоставить это с человеческими возможностями, скоростями, проблемами коммуникаций
Если представить агентную систему, которая может простраивать все три этапа, то стоимость и скорость одного такого прохода изменится порядка 10^4-5 раз. И в этом случае центральным стоит задать вопрос "Что мы хотели и что получили" - сравнения некоторой узкой идеи, не подвергшейся расширению человеком на первом этапе, и финального результата. Прелесть в том, что этих результатов можно управляемо и итерируемо создать необходимое количество за считанные дни. Разрыв от идеи до реализованного концепта - минимален.
Единственное, здесь принципиальный момент, что если заменять, то сразу всё, ибо если где-то в этом процессе останется человек, то он тут же станет боттлнеком, а боттлнеки как известно, должны заменяться в первую очередь и удвоенными силами.
(2)
Происходит какаето гиперфиксация непосредственно на кодинге, его вайб собрате в то время как имеет место быть более глобальный процесс. По крайней в публичных холиварах я чаще вижу "как можно не контролировать код?!" чем "Где найти x100 заказчиков с деньгами для теста гипотез"
Вангую: Цель тренда - заменить ВЕСЬ процесс разработки на декларативно-агентную систему.
Представим очень грубо, что у нас есть глобальный пайплайн-комбайн с задачей
- найти заказчика (ну или хотя бы продукт холдера)
-положить его на громадный фреймворк сбора информации
- Собрать хотелки
- Проанализировать хотелки
- Прикинуть хотелки с возможностями
- Прикинуть как возможности соотносятся с реальным миром, rpsами, байтами данных и затратами на электричество
- Реализовать
- Развернуть
- Выставить вкусный счёт
Чтоб оно выглядело как солидный процесс надо расставить ещё какое-то количество стрелочек и циклов между этими этапами.
Здесь хорошо выделить три части
1) Exploration - выделить всё существенное и запустить сопутствующие процессы проработки
-> Изначальный бизнес контекст формируется, расширяется, уточняется
2) Формализация бизнес контекста - организация всё ещё высокоуровневой информации в домен. Натягивание структуры, общеизвестных паттернов. К реализации будет предполагается именно то, что описано на этом этапе.
-> Имеющийся контекст сужается
3) Разработка - фривольная трансляция некоторого подготовленного бизнес домена на императивные структуры формальных ЯП или куда пониже.
-> автоматизация как цель
Или ещё проще: расширение-сужение-трансляция
Текущие процессы/фреймворки/подходы направлены на то, чтобы для всех этих этапов сократить количество сопутствующих потерь информации. А они так или иначе будут. И сопоставить это с человеческими возможностями, скоростями, проблемами коммуникаций
Если представить агентную систему, которая может простраивать все три этапа, то стоимость и скорость одного такого прохода изменится порядка 10^4-5 раз. И в этом случае центральным стоит задать вопрос "Что мы хотели и что получили" - сравнения некоторой узкой идеи, не подвергшейся расширению человеком на первом этапе, и финального результата. Прелесть в том, что этих результатов можно управляемо и итерируемо создать необходимое количество за считанные дни. Разрыв от идеи до реализованного концепта - минимален.
Единственное, здесь принципиальный момент, что если заменять, то сразу всё, ибо если где-то в этом процессе останется человек, то он тут же станет боттлнеком, а боттлнеки как известно, должны заменяться в первую очередь и удвоенными силами.
🔥6👍3😁2🥴2
Контент!
Я тут работу меняю, так что пока продолжу развлекаться вольной философией и безудержным коммитингом в
Надо чего-нибудь выдать про эффект пятилетки за три дня и те чудеса эффективности, которые даёт волшебная кнопочка "Claude! Do something! "
Чтоб быть в тренде, так сказать
Одна из трансформирующих инженерное мышление вещей в моём всё уплотняющемся взаимодействии с ИИ - недавно осозналось - насколько много обвязочного кода можно по-быстрому нагенерить, поиграть с ним и без зазрения совести за собой подтереть.
Конкретный кейс:
В пресловутом sgr задумал я поменять протокол стриминга. Для того чтобы что-то менять нужно сначала понять, как модельки присылают кусочки thinking, content, tool calling и ещё невесть чего.
А потом позакидывать всякие ситуации на предмет читаемости разными приëмниками + инкапсуляции,конченных конечных символов
Любое изменение протокола требовало прогона нескольких объемных запросов к разным ллмкам и просмотр их вывода
Раньше это бы решалось самозабвенным прожиганием токенов каждый раз, когда надо было отследить результат
Сейчас же это потребовало небольшой песочницы, в ходе которой сначала навайбкодилось сохранение всех эвентов со стримов llm, потом их рестриминг наружу с некоторой внутренней реорганизацией под реалии моих изменений протокола
Поднимаем апишку и вуаля! Можно гонять хоть после каждой запятой
Кейс2:
Когда надо было засунуть в БД пару миллионов записей бинарных данных и посмотреть что произойдёт.
В общем случае проще было бы покопаться а статейках и выудить похожий на правду бенч
Фокус в том, что в обычной ситуации мой ленивый мозг на полуавтомате отбрасывает подобные решения как неперспективные:
- Занимают день-два.
- В скоуп задачи не входят
- Писать их неблагодарно.
- И вообще противно
- И выглядят страшно
- Переиспользовать не получится
Ну нахер
В отличие от вайбкодинга, например, фронта - когда направленно ожидаешь за часик получить некоторое визуальное чудо - эти возможности не всплывают как крутые опции, а всё ещё происходят мимо в режиме автофильтра
Я тут работу меняю, так что пока продолжу развлекаться вольной философией и безудержным коммитингом в
sgr-agent-coreНадо чего-нибудь выдать про эффект пятилетки за три дня и те чудеса эффективности, которые даёт волшебная кнопочка "Claude! Do something! "
Чтоб быть в тренде, так сказать
Одна из трансформирующих инженерное мышление вещей в моём всё уплотняющемся взаимодействии с ИИ - недавно осозналось - насколько много обвязочного кода можно по-быстрому нагенерить, поиграть с ним и без зазрения совести за собой подтереть.
Конкретный кейс:
В пресловутом sgr задумал я поменять протокол стриминга. Для того чтобы что-то менять нужно сначала понять, как модельки присылают кусочки thinking, content, tool calling и ещё невесть чего.
А потом позакидывать всякие ситуации на предмет читаемости разными приëмниками + инкапсуляции,
Любое изменение протокола требовало прогона нескольких объемных запросов к разным ллмкам и просмотр их вывода
Раньше это бы решалось самозабвенным прожиганием токенов каждый раз, когда надо было отследить результат
Сейчас же это потребовало небольшой песочницы, в ходе которой сначала навайбкодилось сохранение всех эвентов со стримов llm, потом их рестриминг наружу с некоторой внутренней реорганизацией под реалии моих изменений протокола
Поднимаем апишку и вуаля! Можно гонять хоть после каждой запятой
Кейс2:
Когда надо было засунуть в БД пару миллионов записей бинарных данных и посмотреть что произойдёт.
В общем случае проще было бы покопаться а статейках и выудить похожий на правду бенч
Фокус в том, что в обычной ситуации мой ленивый мозг на полуавтомате отбрасывает подобные решения как неперспективные:
- Занимают день-два.
- В скоуп задачи не входят
- Писать их неблагодарно.
- И вообще противно
- И выглядят страшно
- Переиспользовать не получится
Ну нахер
В отличие от вайбкодинга, например, фронта - когда направленно ожидаешь за часик получить некоторое визуальное чудо - эти возможности не всплывают как крутые опции, а всё ещё происходят мимо в режиме автофильтра
🕊6👍1
> Общаешься со знакомой-ресёрчером.
> Осознаёте, что оперируете сходными определениями, но они как-то между собой не бьются
> Разбираетесь
*> делюсь =)
https://www.linkedin.com/pulse/least-3-ralphs-irina-nosal-trczf/
> Осознаёте, что оперируете сходными определениями, но они как-то между собой не бьются
> Разбираетесь
*> делюсь =)
https://www.linkedin.com/pulse/least-3-ralphs-irina-nosal-trczf/
Linkedin
There are at least 3 Ralphs
I started reading about Ralph loop because I thought it was one specific agent architecture. Then I had one of those annoying moments where the more I read, the less precise the term became.
👍5🤝2
Ну и активностей сегодня
По примерным подсчётам, большинство из горячо мной любимой публики должно было видеть это сообщение уже 2-3 раза.
Как раз думал, как бы прикольно вкинуть, что я теперь аффилирован с этой командой, но после такого заявления что-то ещё добавлять - только портить
П.с. А не, есть одна штука: Куда бы я не пришёл всё вокруг само превращается в RnD 😅
По примерным подсчётам, большинство из горячо мной любимой публики должно было видеть это сообщение уже 2-3 раза.
Как раз думал, как бы прикольно вкинуть, что я теперь аффилирован с этой командой, но после такого заявления что-то ещё добавлять - только портить
П.с. А не, есть одна штука: Куда бы я не пришёл всё вокруг само превращается в RnD 😅
👍3🔥3❤2
Forwarded from _rnd
Раньше канал назывался red_mad_dev.
Теперь это _rnd — публичный блог практики R&D red_mad_robot.
Это рабочая площадка для инженеров и ресёрчеров. Здесь будут наши мысли, эксперименты, короткие и длинные технические разборы, ссылки на научные статьи и git-репозитории.
Про что будем писать:
• какие гипотезы тестируем и какие результаты получаем
• какие архитектурные решения принимаем и почему
• где ошибаемся и что это меняет
• как исследования превращаются в прикладной AI
• что происходит в индустрии и что об этом думаем
Если вам интересны reasoning-архитектуры, RAG-системы, агентные пайплайны, LLM-инфраструктура и реальный продакшн AI — вы в правильном месте.
Поехали
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍3🕊3
https://t.me/sgragentcore/8
Вжуух!
Всего пара месяцев вечерочков после работы и мы это сделали
Я почти морально готов приближаться к 1.0.0
Вжуух!
Всего пара месяцев вечерочков после работы и мы это сделали
Я почти морально готов приближаться к 1.0.0
Telegram
SGR Agent Core
SGR Agent Core 0.7.0
Кратенько и по порядку, в этом релизе:
0️⃣ В документацию добавили страницу Highlights.
1️⃣ В ядро доехал долгострой RunCommandTool, причём не просто "запусти команду", а с разделением на safe и unsafe режимы, workspace-настройками…
Кратенько и по порядку, в этом релизе:
0️⃣ В документацию добавили страницу Highlights.
1️⃣ В ядро доехал долгострой RunCommandTool, причём не просто "запусти команду", а с разделением на safe и unsafe режимы, workspace-настройками…
🔥7🎉5
График красивый, а ситуация страшная.
Ну давайте рассматривать
Мой стиль сейчас ближе к coding with ai с production уклоном, где я всё ещё уделяю внимание коду. Нет особо мотивации предельно ускоряться и проверять какие-то гениальные рыночные идеи (Обычно у меня их нет, а если и появляются, всегда можно сделегировать в сторону Валеры)
Как заядлому сквошеру коммитов и вообще любителю поработать день-два и выкатить мини MR +1000-400 наверн сложно было ожидать каких-то бьющих рекорды циферок. Тем не менее, что-то становится понятнее:
- 2020-2022 моя типичная деятельность как усреднённого разработчика с некоторым уклоном в ресёрч.
У меня есть некоторое мнение, что комп чуть новее этой эпохи и сохранились далеко не все репо. По ощущениям я тогда работал активнее
- 2023 я становлюсь достаточно крутым чтобы успевать и там и тут, появляются сайд проекты/стартапушки с меньшим количеством обязательств, диаграммок и сопровождения -> производительность на графике растёт
- конец 2023-2024 я полноценно перехожу в район team/tech lead позиции, по сути из практического кода остаются только сайды
-2025 всё ещё остаюсь кем-то вроде бизнес кабанчика. Метаюсь-вопросики обкекиваю в виде основной деятельности. В первой половине 2025, как можно видеть, меня операционка прижала прям плотно
- Бодрый столбик в 77 коммитов в 2025 ознаменовал появление Cursor в его пригодной для моей работы форме. Вся дальнейшая активность на графике поддерживается исключительно на кодинг агентских примочках и некотором возросшем ощущении комфорта от работы в целом
Ну давайте рассматривать
Мой стиль сейчас ближе к coding with ai с production уклоном, где я всё ещё уделяю внимание коду. Нет особо мотивации предельно ускоряться и проверять какие-то гениальные рыночные идеи (Обычно у меня их нет, а если и появляются, всегда можно сделегировать в сторону Валеры)
Как заядлому сквошеру коммитов и вообще любителю поработать день-два и выкатить мини MR +1000-400 наверн сложно было ожидать каких-то бьющих рекорды циферок. Тем не менее, что-то становится понятнее:
- 2020-2022 моя типичная деятельность как усреднённого разработчика с некоторым уклоном в ресёрч.
У меня есть некоторое мнение, что комп чуть новее этой эпохи и сохранились далеко не все репо. По ощущениям я тогда работал активнее
- 2023 я становлюсь достаточно крутым чтобы успевать и там и тут, появляются сайд проекты/стартапушки с меньшим количеством обязательств, диаграммок и сопровождения -> производительность на графике растёт
- конец 2023-2024 я полноценно перехожу в район team/tech lead позиции, по сути из практического кода остаются только сайды
-2025 всё ещё остаюсь кем-то вроде бизнес кабанчика. Метаюсь-вопросики обкекиваю в виде основной деятельности. В первой половине 2025, как можно видеть, меня операционка прижала прям плотно
- Бодрый столбик в 77 коммитов в 2025 ознаменовал появление Cursor в его пригодной для моей работы форме. Вся дальнейшая активность на графике поддерживается исключительно на кодинг агентских примочках и некотором возросшем ощущении комфорта от работы в целом
❤🔥7🕊2
Так можно было?!
Непроизвольно впечатлился возможностям современной индустрии когда залетал в репо https://github.com/openai/symphony для вдохновения
И это же... гениально! Можно не выкладывать систему/код, выложить описание, спеки и приписку "Закиньте в вашего агента, он разберётся"
Если б рядом не лежал эликсирный прототипчик, я б искренне отнёс это к некоторой форме современного айтишного перфоманса
Непроизвольно впечатлился возможностям современной индустрии когда залетал в репо https://github.com/openai/symphony для вдохновения
И это же... гениально! Можно не выкладывать систему/код, выложить описание, спеки и приписку "Закиньте в вашего агента, он разберётся"
Если б рядом не лежал эликсирный прототипчик, я б искренне отнёс это к некоторой форме современного айтишного перфоманса
👍2🤯2🤣1
Media is too big
VIEW IN TELEGRAM
Что-то про разработку агентами aaand some flow
Сегодня на повестке:
Я хз как у вас, но у меня дико не хватает дисциплины выдерживать качественный ритм при фул-агентной разработке (это когда код в глаза не видишь). Рано или поздно ловишь себя в моменте, что либо устаревают описания, либо тесты, либо вместо генерации кода начинает происходить казино.
Привычный классический чатик слишком плоский. К предыдущим этапам работы над задачей сложно вернуться + какие-то существенные части/инсайты теряются в недрах истории и приходится их сгружать куда-либо. А потом искать, в какую из md ты это сгрузил и насколько оно актуально
Ну и в общем и целом формулируется это ~
Притом, думаю, у каждого практикующего спеца уже начинает собираться некоторая библиотечка излюбленных скиллов/rules/подходов, как добиться более надлежащего состояния проекта. И это тоже как-то интуитивно хочется переиспользовать как уже родное и рабочеев этом чуждом и сломанном мире
Вот из таких мыслей за пару вечерков и родилось это чудо как на демковидосе.
- Доска. Ибо двигать таски интуитивно понятно + предполагает совместную работу в перспективе
- Таска = feature в более бизнесовом её понимании. У feature обычно есть документация, контекст, скоуп затрагиваемых изменений, реализация и т.д.
- workflows шаблончики - по сути положенные на бумагу описания процессов именно под мои личные потребности (впрочем в демке пока чисто загенеренные примерчики)
- Работа над таской происходит не в едином флоу чатика, а в виде пайпа нескольких этапов, которые выполняют разные сфокусированные агенты. К каждому из этапов можно вернуться, проверить доработать.
- Отдельные консольки чтоб посмотреть более подробный лог и объяснить, что конкретно сделано не так
- Не все таски требуют одинакового объёма проработки. Этапы опциональны и настраиваемы
- git задача = выполнение в отдельном worktree + автокоммит при перетягивании в Done
Как итог
0) плодишь шаблончики под все свои запросы,
2) чувствуешь себя особенно ленивым сегодня
3) закидываешь монструозный воркфлоу, закидываешь двухсловный булшит уровня "хочу чтоб было красиво",
4) система сама разбирается как:
Если что-то не нравится - пробегаешь взглядом контекст и вмешиваешься в любой из этапов
p.s.: в изначальном видосике у меня был двенадцатиминутный подкаст с подобными же рассуждениями, но я решил пожалеть почти всех и немного ускорил. А судорожные дёргания мышкой остались. Увы
Сегодня на повестке:
Я хз как у вас, но у меня дико не хватает дисциплины выдерживать качественный ритм при фул-агентной разработке (это когда код в глаза не видишь). Рано или поздно ловишь себя в моменте, что либо устаревают описания, либо тесты, либо вместо генерации кода начинает происходить казино.
Привычный классический чатик слишком плоский. К предыдущим этапам работы над задачей сложно вернуться + какие-то существенные части/инсайты теряются в недрах истории и приходится их сгружать куда-либо. А потом искать, в какую из md ты это сгрузил и насколько оно актуально
Ну и в общем и целом формулируется это ~
"Больно/лень держать в голове весь контекст предполагаемых изменений"
Притом, думаю, у каждого практикующего спеца уже начинает собираться некоторая библиотечка излюбленных скиллов/rules/подходов, как добиться более надлежащего состояния проекта. И это тоже как-то интуитивно хочется переиспользовать как уже родное и рабочее
Вот из таких мыслей за пару вечерков и родилось это чудо как на демковидосе.
- Доска. Ибо двигать таски интуитивно понятно + предполагает совместную работу в перспективе
- Таска = feature в более бизнесовом её понимании. У feature обычно есть документация, контекст, скоуп затрагиваемых изменений, реализация и т.д.
- workflows шаблончики - по сути положенные на бумагу описания процессов именно под мои личные потребности (впрочем в демке пока чисто загенеренные примерчики)
- Работа над таской происходит не в едином флоу чатика, а в виде пайпа нескольких этапов, которые выполняют разные сфокусированные агенты. К каждому из этапов можно вернуться, проверить доработать.
- Отдельные консольки чтоб посмотреть более подробный лог и объяснить, что конкретно сделано не так
- Не все таски требуют одинакового объёма проработки. Этапы опциональны и настраиваемы
- git задача = выполнение в отдельном worktree + автокоммит при перетягивании в Done
Как итог
0) плодишь шаблончики под все свои запросы,
2) чувствуешь себя особенно ленивым сегодня
3) закидываешь монструозный воркфлоу, закидываешь двухсловный булшит уровня "хочу чтоб было красиво",
4) система сама разбирается как:
до тебя докопаться за уточнениями -> свериться с общей архитектурой -> составить развёрнутое ТЗ -> написать превью тесты -> написать реализацию -> прогнать тесты, провести итерацию фиксов -> провести ревью -> скорректировать документацию -> подготовиться на деплой -> сохранить отчёт и changelog -> помёржитьсяЕсли что-то не нравится - пробегаешь взглядом контекст и вмешиваешься в любой из этапов
p.s.: в изначальном видосике у меня был двенадцатиминутный подкаст с подобными же рассуждениями, но я решил пожалеть почти всех и немного ускорил. А судорожные дёргания мышкой остались. Увы
🔥6👏2
Циклы погонщиков агентных циклов
Не знаете, куда деть 16 часов в день? Посмотрите на меня во время маниакально-творческой стадии!
И никогда так не повторяйте
Познаю все прелести работы 2 через 2 в течение дня.
Писать код без AI я ещё как-то могу, но вот когда работа системы построена на тех же драгоценных токенах - происходит полный отстой. Весь объём сжигается ещё и на прогоне основных сценариев + нового функционала за первых 1.5 часа с кулдауном в 4...
Сидишь, теребишь почти как надо запроганную тасочку и думаешь, не купить ли ещё пару подписок, чтоб наверняка. Потом вспоминается, что есть ещё основная работа, и вопрос куда деть оставшееся время отпадает сам собой.
К третьему дню спонтанного интенсива для сохранения моральной и рабочей гигиены разделил своё рабочее место на два:
У себя на основном железе занимаюсь исключительно код-задачами в режиме бешенного сурка под кофеином
А созвонно-ресёрческая часть в гостиной с ноута - под пледиком и с закусочками
Не знаете, куда деть 16 часов в день? Посмотрите на меня во время маниакально-творческой стадии!
Познаю все прелести работы 2 через 2 в течение дня.
Писать код без AI я ещё как-то могу, но вот когда работа системы построена на тех же драгоценных токенах - происходит полный отстой. Весь объём сжигается ещё и на прогоне основных сценариев + нового функционала за первых 1.5 часа с кулдауном в 4...
Сидишь, теребишь почти как надо запроганную тасочку и думаешь, не купить ли ещё пару подписок, чтоб наверняка. Потом вспоминается, что есть ещё основная работа, и вопрос куда деть оставшееся время отпадает сам собой.
К третьему дню спонтанного интенсива для сохранения моральной и рабочей гигиены разделил своё рабочее место на два:
У себя на основном железе занимаюсь исключительно код-задачами в режиме бешенного сурка под кофеином
А созвонно-ресёрческая часть в гостиной с ноута - под пледиком и с закусочками
😢3🕊2😁1
Когда хотел почекать идею но немного увлёкся
Итак, VroooomFlow
код тут
\ /
\/
Репо: https://github.com/virrius/VroooomFlow
Почему? Потому что вы двигайте тасочку, а агенты делают vrooom
С исходными мыслями стоит ознакомиться туть. И вот мы здесь
Проблематика:
(1) Выдерживать дисциплину вайбкодинга не просто. Мой опыт показывает, что проекты на дистанции превращаются в сложноконтролируемого франкенштейна, затраты на развитие растут, темпы - снижаются
Я верю и исследую, что вайбкодить можно стабильно и прогнозируемо
(2) Совместная/командная разработка в формате вайбкодинга - сложна. Комплексность и темп локальных изменений каждого контрибьютора осложняет контроль версий
(3) Порог входа в разработку даже с агентами требует некоторого технического бэкграунда.
Простые фичи должны быть доступнее
(4) Уже сейчас выделяются паттерны, свойственные агентной разработке, которые можно автоматизировать
(5) Текущий вайбкодинг сфокусирован, внезапно, на код.
В то время как по моим личным суждениям декларативный контекст: ТЗ, проектная документация, валидационные правила должны иметь первоочередное значение. Особенно когда мы отказываемся от владения кодбазой
Ещё раз о системе:
Вариация канбан доски, работающая над кодовой базой. Предоставляет интерфейс для коллаборативного развития проекта:
- Создаётся задача. Опционально в отдельном git worktree
- Для задачи планируются этапы, выраженные workflow=шаблонами/best practices/промпт-инструкциями/контекстом этапа
- Workflow можно добавить собственные на уровне проекта под потребности команды. Они же являются фиксацией практик работы команды
- Каждый этап выполняется отдельным агентом в интерактивном режиме. В рамках работы над задачей формируется общий контекст для задачи
- По готовности изменения задачи фиксируются в done
Из доп фичей:
- роли/доступы/комментарии - прочие базовые возможности для совместной работы и коммуникации
- Задачи сохраняет собственную спецификацию и подробный лог работы агентов в годном для анализа виде
- закинуто несколько примеров workflows
- визуальный аналог git tree с историей разработки по задачам
- два вида задач: Работающая глобально над репозиторием и работающая в отдельном worktree
Идеальный сценарий использования:
Ставим воркфлоу для примера
разворачиваем над сырцами dev стенда с live-reload -> фиксируем workflow ->отдаём в команду -> даже самый далёкий от ИИ менеджер сможет накатить и мгновенно потрогать изменение, если сформулирует свой запрос. остальное система сделает сама (формулировать запрос тоже поможет)
Смотрим, как на задачу подвинуть кнопку влево жжётся 80к токенов
Итак, 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 ->отдаём в команду -> даже самый далёкий от ИИ менеджер сможет накатить и мгновенно потрогать изменение, если сформулирует свой запрос. остальное система сделает сама (формулировать запрос тоже поможет)
🔥5🥴2
ITипичные аспекты Артёма
2025 всё ещё остаюсь кем-то вроде бизнес кабанчика
This media is not supported in your browser
VIEW IN TELEGRAM
@vakovalskii пытается замотивировать меня развернуть openclaw 😏
Please open Telegram to view this post
VIEW IN TELEGRAM
😁14🤣4❤2👀2👍1