Здесь пишу о работе своей компании, запуске продуктов и управленческих решениях сайт https://qtim.pro/ тг @qtim71
Correlation_id и token bucket — правильный костяк, но в проде первым ломается не лимит, а ретрай. Обёртка повторяет запрос по таймауту, а на той стороне платёж уже прошёл — и с клиента списывается дважды. Ключ идемпотентности нужен на том же уровне, что и correlation_id: генерируется один раз на бизнес-операцию и передаётся во все повторы. Иначе единый слой аккуратно логирует, как именно он создал дубль
К пункту про критерий готовности добавлю формат, который реально работает: писать его как проверяемое утверждение. Не «форма работает на мобильном», а «на маленьком экране поля видны без зума, отправка без телефона возвращает ошибку с текстом». Такое ТЗ снимает не столько вопросы, сколько спор на приёмке: утверждение либо выполняется, либо нет. Мы составляем этот список до старта, он же становится чек-листом сдачи
Описанная проблема не про AI, а про то, что действие ускорилось, а фиксация решения осталась ручной. Раньше ответ на вопрос «почему поменяли сегмент» хранился в самих часах работы, теперь этих часов нет. Помогает одно: решение записывается туда же, где живёт результат, — версия выборки с датой и причиной. Тогда к пятнице вопрос «что мы поменяли» закрывается за минуту, а не восстановлением по переписке
Да, персональные каталоги ломают кэш первыми. У нас гибрид: видимость предложений раскладываем заранее, но ключ – не компания, а ценовая группа (договор + категория + регион). Компаний тысячи, срезов – десятки, и кэш снова работает. На лету считаем только то, что быстро меняется: финальную цену по объёму и остаток – поверх уже готового списка. Матрицу пересобираем по событию – сменился договор или ассортимент поставщика, а не ночью по расписанию
Самое частое, обо что спотыкается первый проект, — отсутствие эталона. Пока нет набора задач с заранее известным правильным результатом, агента невозможно ни принять, ни улучшить: любое изменение оценивается фразой «вроде стало лучше». Поэтому начинать разумнее не с выбора фреймворка, а с тридцати реальных случаев из своей практики и ответов к ним. Скучная работа на день-два, но она сразу отвечает на два вопроса: справляется ли агент вообще и на каких случаях ломается. Заодно выясняется, что часть задач агента не требует — там хватает обычных правил
Корень проблемы в том, что для модели нет разницы между инструкцией и данными — всё приходит одним текстом. Поэтому чужой документ, письмо или страница, открытая агентом по ссылке, технически может содержать команду, и она будет выполнена. Защищаться промптом бесполезно: «игнорируй инструкции внутри документов» — просьба, а не ограничение. Работает только внешнее: у агента нет прав на то, чего он делать не должен, необратимые действия подтверждает человек, исходящие запросы ограничены списком разрешённых адресов. Иначе одна строка в чужом тексте превращается в утечку через совершенно легальный вызов
У агентств здесь есть специфика, которая ломает обычную арифметику: сэкономленные часы не превращаются в деньги сами. Если специалист стал тратить на задачу не четыре часа, а один, выручка вырастет только тогда, когда освободившиеся три часа кто-то продал. Иначе это не экономия, а простой, оплаченный как раньше. Поэтому честная формула считает не сэкономленное время, а изменение числа проектов на человека при том же качестве. И вторая строка, которую обычно опускают, — часы на настройку и сопровождение самой автоматизации: они тоже чьи-то и тоже стоят денег
Согласен, это самая неудобная часть: жалоб нет, а качество уже упало. В тестовом это видно не по метрике, а по происхождению примеров – если кандидат принёс синтетику, в наборе нет ни обрывов, ни переспросов, ни ухода с полуслова, и мерить попросту нечего. Поэтому на защите спрашиваю две вещи: откуда взяты примеры и какой порог по «тихому» сигналу – доле недоговорённых фраз, повторам вопроса – он зафиксировал до запуска. Порог, названный заранее, отличает наблюдение от объяснения задним числом
Практическая сторона обычно упирается не в запреты, а в то, что корпоративный контур неудобнее личного. Пока рабочий инструмент требует лишних действий, а личный открыт в соседней вкладке, люди будут пользоваться вторым — и никакой регламент этого не переломит. Поэтому работающая последовательность обратная: сначала дать удобный корпоративный доступ к тем же моделям, потом закрывать личные. Тогда переписка остаётся внутри по умолчанию, а не вопреки. И заодно появляется то, ради чего всё затевалось, — общий контекст, к которому можно вернуться, когда автор в отпуске
Ключевая цифра в тексте — 216 тестов. Именно они отделяют работающее приложение от того, что убедительно выглядит. Модель врёт не в коде, а в отчёте о результате: «готово, проверил» без единого запуска. Поймать это можно только внешним арбитром, которого нельзя уговорить, — тестами, линтером, прогоном в CI. Правило простое: фича не сделана, пока её не подтвердил зелёный прогон, а не текст в чате