Дарья Воронкина
ML-инженер, преподаватель AI Talent Hub, ex-тимлид команды DataHub в OneCell, консультант по AI-native трансформации
Привет! Меня зовут Дарья Воронкина. Я строила и руководила командой DataHub в медтех-компании OneCell (цифровая патология — ИИ ищет опухоли и метастазы на гистологических стеклах), а сейчас консультирую компании по переходу в AI-native режим.
Расскажу, как примерно за месяц я перевела свою команду с ручных промптов на систему агентов, которая ведет операционку сама. Получилось быстро во многом потому, что за плечами годы ML-инженерии и роль лида — я уже привыкла мыслить системами, данными и процессами, оставалось переложить это на агентов. Дальше — что получилось, что сломалось и какие выводы я унесла. Будет полезно тем, кто уже собирает агентов и хочет довести их до прода.
Не ИИ работал на меня, а я на него
Поначалу я отдавала нейросети самое простое — текст и SQL. Рутину, которую делала руками сто раз: «напиши запрос к базе по таким условиям», «разбери этот кусок данных». До медтеха я преподавала математику и сидела в разметке, где огромная часть работы — повторение. Его я и начала делегировать.
В какой-то момент я поймала себя на телесном раздражении. Каждое мое рабочее утро превратилось в копипаст: сюда — контекст, оттуда — ответ, обратно — поправить, потом снова объяснить чату, кто я и какая у нас схема данных. Потолок обнаружился быстро. Один запрос — один ответ. Завтра модель не вспомнит, о чем мы говорили, и каждую сессию ей заново нужно объяснять, кто я, как устроена схема данных, какие у нас конвенции. На ввод контекста уходило больше, чем экономилось на ответе.
Это и есть граница между «пользоваться ИИ» и «построить ИИ-систему». Чтобы ее перейти, чату не хватает трех вещей:
-
памяти о том, кто вы и что было раньше;
-
доступа к вашим данным без ручного переноса;
-
способности выполнять задачу в несколько шагов без вашего присмотра на каждом.
За месяц я перестроила работу так, чтобы рутину держала система, а я принимала решения. Помогли годы в ML и роль лида — привычка видеть за задачей систему. Далее расскажу по шагам о своем опыте.
Первый кейс: команда агентов вместо часа ручного SQL
К нам потоком шли запросы вида «выгрузите данные по таким-то случаям». Раньше аналитик садился, писал SQL, валидировал, экспортировал — час-два на каждый запрос. Я выбрала этот процесс первым по трем фильтрам, которыми пользуюсь до сих пор: частота, боль и описуемость. Запросы шли постоянно, отъедали часы, и у них был четкий вход и выход — понятно, что значит «готово». Четвертый критерий добавила со временем: я сама должна уметь делать это руками, иначе не отличу хорошую работу агента от правдоподобной чуши.
Сейчас выгрузку делает не аналитик, а команда агентов. Она генерирует SQL, сама себя проверяет, валидирует результат и отдает сводку со списком ID. Шесть минут вместо часа-двух. Самая важная деталь — агенты перепроверяют друг друга до 100% уверенности перед выдачей. Это медданные, здесь «примерно правильно» не катит: ошибка в выгрузке — это потенциально неверный вывод о данных пациентов.
Team OS: операционка команды, которую держит не человек
Главный кейс родился из другой боли. Операционка съедала команду заживо. Стендапы, разбор задач, планирование, ретро, отчеты — это часы в неделю на каждого и главный источник выгорания. Люди приходят строить ИИ для онкологии, а тонут в координации. Я как лид тратила непропорционально много времени на «кто что делает и почему застряло», а не на сами решения.
И дело было в самой механике трекера. Jira не ведет операционку — ее ведете вы: руками накидать задачи, проставить статусы, собрать стендап, свести отчет. Трекер лишь хранит то, что вы в него занесли. Я хотела наоборот: чтобы рутину держала система, а человек принимал решения.
Так в марте 2026-го появился Team OS — операционная система команды на агентах. Не таск-трекер с ИИ-кнопкой, а среда, где агенты сами ведут операционку: предлагают задачи из бэклога, связывают их с планом развития сотрудника и целями компании, оценивают сложность, проводят стендапы, планирование и ретро. Для команды это не дополнило Jira, а заменило ее целиком.
Началось с DataHub. До этого агенты делали у меня точечные вещи — ту же выгрузку данных за шесть минут вместо часа. Team OS был первой попыткой отдать им не отдельную задачу, а целый командный ритуал — и первой, которая прижилась. Дальше мы раскатали подход на команду ERP/Scanner, и в периметре оказалось до восьми команд. Совпало это с курсом компании на AI-native: Team OS стал у нас первым кейсом, где привычный инструмент заменили не «ИИ-надстройкой», а связкой агентов целиком.
Эволюционировало это в две фазы:
Фаза 1 — все внутри Claude Code, в терминале. Скиллы как действия команды, память как контекст (схема данных, конвенции), интеграция с GitLab и Notion, хуки: на старте сессии система сама подтягивает задачи сотрудника из Notion и то, что в работе, из GitLab. Крутилось 24/7 на ML-машине через tmux. Каждому агенту-роли я дала личность реального человека — например, Торвальдса. Это не игрушка: с заданной личностью агент держит характер и не расползается. Условный Торвальдс не напишет сопли в коде.
Фаза 2 — веб-интерфейс и синхронизация. UI я собрала за десять часов через Claude Design с передачей в Claude Code. Перешла с бэклога на методологию GTD: туду-лист плюс сущность «проект». Главная фишка — синхронизация сессий: одной кнопкой система подключается к машине пользователя, тянет его рабочие сессии по всем задачам через крон-джобы и считает фактически потраченное время. Поверх — оценка часов план/факт, capacity-планирование и автотриаж, который показывает похожие прошлые задачи, чтобы переиспользовать контекст.
Честно про боль этой фазы: веб-интерфейс не может напрямую управлять действиями пользователя, только синхронизироваться с его локальной машиной. Местами сессия и память недосинхронизируются. Это архитектурное ограничение, с которым я вожусь до сих пор.
Как это устроено
Ядро — Claude Code, а не чат. Стек выглядит так:
-
CLAUDE.md и папка memory/ — контекст: кто мы, схема данных, конвенции, правила.
-
Скиллы (SKILL.md) — конкретные действия: что сделать и как.
-
Sub-агенты через оркестратор — он спавнит роли по очереди.
-
MCP — доступ к данным и сервисам: GitLab, Notion, базы.
-
Хуки — на старте грузят задачи, после действий трекают время.
-
Файлы состояния — через них агенты передают друг другу контекст в цепочке.
-
Оркестрация моделей по стоимости задачи: Opus на стратегию и архитектуру, Sonnet на код и рутину, Haiku на поиск и логи. Лить Opus на разбор логов — деньги на ветер.
Классический RAG я почти не использую — память у меня файловая. И вот здесь интересное.
Я собрала CoALA руками, не зная, что это CoALA
Когда я чинила память агентов, я делала это по болям, по одной. Агент забывает, кто я, — добавляю факты и правила в CLAUDE.md. Не знает, как делать конкретную операцию, — пишу скилл. Не помнит вчерашнюю сессию — включаю авто-память, где агент сам дописывает себе заметки.
Потом я узнала, что собрала ровно ту структуру, которую academia описала еще в 2023-м. Фреймворк называется CoALA — Cognitive Architectures for Language Agents (arXiv:2309.02427, Sumers, Yao, Narasimhan, Griffiths). Он раскладывает память языкового агента на четыре типа:
-
рабочая — контекстное окно, все, что в сессии прямо сейчас;
-
семантическая — факты и правила; у меня это CLAUDE.md и memory;
-
процедурная — навыки, «как делать»; у меня это скиллы;
-
эпизодическая — память о прошлом, что было в прошлых сессиях; у меня это авто-память.
Вывод из этого совпадения практический: если вы упираетесь в «агент тупой», почти всегда вопрос не в модели, а в том, какого типа память вы ему не дали. Сильная модель без памяти и роли плывет уже на втором шаге.
Где проходит граница автономии
У меня нет догмы «давайте все сделаем автономным». Само, по триггеру или расписанию, работает сбор и рутина: загрузка задач на старте сессии, агент-ресерчер датасетов (каждые шесть часов проверяет источники и досылает новое в тред), сам Team OS 24/7.
Руками я запускаю пайплайны и выгрузки, мерджи веток, стратегические решения и ответы на эскалации агентов. Правило простое: автономия — на сборе и рутине, человек в петле — на решениях и на доверии к результату. Особенно в медданных.
И отдельно про зрелость. Я не на одной ступени, а на спектре — это нормально. Флагман (Team OS и ERP-пайплайн) — уже мультиагентная цепочка с оркестрацией и автозапуском. Часть процессов живет на уровне простого скилла. Часть я осознанно оставила руками. Я не верю, что «мультиагент всегда круче»: часто один хороший скилл бьет сложную оркестрацию. Team OS ценен не количеством агентов, а тем, что держит операционку команды без меня.
И к этому вопросу каждый практик относится по-своему — от жесткого скепсиса до мультиагента в проде.
«95% задач решаются одним вызовом модели в детерминированном workflow. Мульти-агент добавляет точки отказа без выгоды для простых кейсов»
— Александр Пантелеев, CTO World Chess, преподаватель курса «ИИ-автоматизация» (ИТМО AI Talent Hub × karpov.courses)
«Уже мультиагентно — у меня даже есть сплоченная команда из ИИ-сотрудников. Например, поиск трендов: там 19 агентов разбирают новостную повестку».
— Виталий Лукин, директор по ИИ-агентам в X5, преподаватель курса «ИИ-автоматизация» (ИТМО AI Talent Hub × karpov.courses)
Противоречия тут нет: мультиагент оправдан масштабом задачи, а не модой на слово. Закрывает один скилл — берите скилл.
Ошибки, которые стоили дороже всего
Самый дорогой провал — это доверие к выводу, который выглядел правильным. Классика: агент сделал SQL с ROLLUP по полю, в котором был COALESCE, и тихо удвоил каждую строку. Цифры выглядят нормально, сводка красивая, а она вдвое больше правды. В медданных это не «упс» — а потенциально неверный вывод о пациентах.
Этот баг научил меня главному принципу: доверие к агенту строится на проверке, а не на вере. Теперь агенты валидируют сами себя и перепроверяют друг друга, а на дашборды я повесила алерты на некорректные метрики.
Второе наблюдение — про переход «работает у меня» → «работает в проде». Когда ты сидишь рядом с агентом, ты постоянно его незаметно подправляешь: «нет, не отсюда бери», «тут другой случай». Ты этого даже не замечаешь. В проде агент остается один — и вылезает все, что ты считал «и так понятным»: что данные лежат не там, где логично; что бывают странные случаи, которые ты руками всегда обходил; что половина правил жила только в твоей голове. Лечится скучно: выгрузить свою голову в память агента, написать тесты и оставить ему понятный путь «спросить, если не уверен».
Отдельная категория боли в проде — бесшумные сбои. Агент не падает с ошибкой, а «работает» просто медленно, наполовину или по кругу. Об этом рассказал Александр Пантелеев, который выводил в прод систему автоперевода на n8n:
«Webhook без защиты от зацикливания за полчаса накрутил 700+ лишних запусков и сжег половину дневного бюджета. HTTP-запрос к модели без таймаута однажды висел 31 час. А родительский таймаут в n8n незаметно наследуется дочернему сценарию — у меня агент успевал перевести 2 языка из 14, и контент-команда жаловалась, что переводы выходят только на немецком. Бесшумные сбои опаснее громких: упади оно с ошибкой — заметил бы сразу. „Работает в тесте“ и „работает в проде неделю подряд“ — две разные задачи, и вся разница в обработке ошибок. Закладывайте на нее половину времени, а не на happy path».
— Александр Пантелеев, CTO World Chess
Что это дало в цифрах
-
Team OS — главный по эффекту: на пике автоматизации давал возврат вложений до 700% за две недели и снимал с команды около восьми часов рутины в неделю.
-
datahub-dump — шесть минут вместо часа-двух, эффект ×12.
-
Суммарно по команде — порядка 200 сэкономленных часов.
-
Бонусом — прототип UI внутреннего продукта собрала за десять часов через Claude Design и Claude Code вместо недель разработки.
Красивые ROI-числа из презентаций я показываю осторожно — слишком легко натянуть. Мерю в часах и в том, перестал ли процесс меня бесить.
Три вещи, с которых я бы советовала начать
-
Возьмите одну рутину, которая бесит, повторяется и имеет четкое «готово». Не творчество и не стратегию. И такую, что умеете делать руками, — иначе не проверите агента.
-
Вложитесь в память и контекст раньше, чем в «умность» агента. Выгрузите свою голову в файлы: кто вы, какая схема, какие правила. Агент без контекста — дорогой попугай. С контекстом — член команды.
-
Оставьте человека в петле на решениях и проверке. Автоматизируйте сбор и рутину, но не доверие. И мерьте эффект в сэкономленных часах, а не в лайках на демо.
Как создать агента, если вы не ML-инженер?
После такого рассказа закономерно спросить: окей, у тебя получилось за месяц — а что делать тем, кто не имеет опыта в ML? Мой результат — это во многом тот самый бэкграунд: я уже мыслила памятью, состоянием и процессами, оставалось переложить это на агентов. Без него путь длиннее и идет ровно через грабли: контекст, бесшумные сбои, доверие к результату. Собирать это по разрозненным постам, статьям и собственным шишкам кому-то в кайф, но займет много времени.
Если же вам ближе систематизированный маршрут, чем годы набивания контекста, — посмотрите курс «ИИ-автоматизация: проектирование и запуск агентных систем» (karpov.courses × AI Talent Hub, ИТМО). Это та же дорога от первого скилла до агентной цепочки, но собранная в структуру: без воды и на вашей реальной задаче. Также Александр Пантелеев, и Виталий Лукин, чьи комментарии вы видели выше, преподают на курсе.
С курсом или без — главное, что я хотела передать этим текстом: агент начинает работать, когда вы дадите ему память, роль и проверки. Это доступно без сильного ML-бэкграунда — нужно перестать крутиться вокруг чата и начать выстроить вокруг себя систему.
ссылка на оригинал статьи https://habr.com/ru/articles/1045652/