Зачем мы добавили в команду ИИ-агентов душнилу

—

от автора

Любой команде нужен человек, который вовремя испортит всем удовольствие. Идея почти согласована, а он спрашивает: «А откуда эти цифры?», «А это точно разрешено?», «А у похожего бренда ведь не получилось…»

Просить его помолчать не стоит, особенно перед запуском большого и дорогого проекта.

В СИБУРе мы поняли ценность такого коллеги, когда делали систему для оценки идей замены материалов: модели нужен оппонент, который проверит, на чём держится её убедительный ответ. Так среди агентов появился критик.

Меня зовут Елена Солдатова, я старший менеджер ключевых проектов развития рынка и электронной коммерции. Более 14 лет я работаю в ИТ как владелец продуктов и руководитель программ цифровизации. В этой статье расскажу, как наша система оценила медицинскую упаковку по строительным нормам и что пришлось переделать, чтобы сервисом захотели пользоваться эксперты. Деталями о технической стороне проекта поделится Дмитрий Твердохлебов, основатель Omnius.team.

Зачем нам это вообще было нужно?

Немного вводных: СИБУР производит нефтехимическое сырьё, а наши клиенты делают из него готовые изделия для десятка отраслей — пищевую упаковку, плёнку и пакеты, медицинские шприцы, ящики для фруктов, трубы, окна и многое другое.

Чтобы расширять применение полимеров, мы постоянно задаём себе вопрос: какие ещё изделия можно сделать полимерными? Это субституция — замена одного материала другим. Но между идеей и решением — большое исследование: свойства материалов, условия работы изделия, потребность рынка, нормативные требования и экономика замены. По каждой гипотезе сведения собирают из разных источников, сопоставляют и проверяют, применимы ли они к конкретному изделию.

Допустим, условную металлическую деталь предлагают сделать полимерной, чтобы уменьшить вес. Выдержит ли она нагрузку и рабочую температуру? Допустима ли замена по нормам? Сколько изделие будет стоить за всё время использования?

И главное, нужна ли она кому-то, даже если на все вопросы выше мы ответили «да»?

Поэтому каждую идею проверяем сразу с нескольких сторон.

Сойтись должно всё сразу: материал с подходящими свойствами может упереться в ограничения, а технически интересная замена — не иметь никакого экономического смысла.

Для этой исследовательской работы мы и собрали мультиагентную систему. Человек задаёт идею замены, агенты собирают сведения, оценивают её по разным направлениям и проверяют аргументы друг друга. Результат изучает эксперт и решает, достаточно ли оснований двигаться дальше, или нужны дополнительные данные.

Раньше оценка идеи занимала в среднем 88 рабочих дней: собрать информацию, разобраться в ней, проверить выводы, пройти согласования. Теперь с системой — до двух недель вместе с проверками и согласованиями.

Впечатляет? Ещё бы. Правда, далось это непросто.

Как выстроить архитектуру правильно?

Наша система прошла несколько этапов. В марте этого года мы тестировали первую версию. Затем вместе с экспертами дорабатывали исследовательскую логику, архитектуру и настройку под разные отрасли. За следующие месяцы проект прошёл три глубоких рефакторинга и два ускорения.

Первые ответы выглядели обнадёживающе, но, когда результат попадал к эксперту, начинались вопросы.

Где-то потерялась важная деталь. Тут упомянута не та нормативка. А здесь сравнили цены материалов и сделали вывод о выгоде, не учтя расходы на эксплуатацию.

Хуже всего то, что по самому ответу ошибку не заметишь: он подробный, логика, на первый взгляд, стройная. Вот только решение по нему принимать нельзя.

Поэтому мы разделили работу. 

В нашей системе 16 шагов: 14 ИИ-этапов и две детерминированные фазы. Агенты-исследователи собирают аргументы по разным направлениям, а критик проверяет, выдерживают ли они проверку, не упущены ли ограничения, достаточно ли данных для вывода и нет ли противоречий между частями анализа.

«Основной движок у нас работает на семействе моделей Google Gemini: Pro используем для сложных контекстных рассуждений, Flash — для более простых задач. Критиком выбрали Claude: он хорошо справлялся с проверкой, но выполнять на нём всю работу было бы слишком дорого.

Для обогащения запроса и поиска контекста используем Perplexity на Sonar Pro. Если сервис недоступен или возвращает подозрительно мало информации, переключаемся на Sonnet с Web Search от Anthropic. Но это резервный вариант: он работает медленнее и обходится примерно в пять раз дороже», — говорит Дмитрий Твердохлебов.

Возьмём экономику. Исследователь пишет: материал дешевле — значит, замена выгодна. Критик проверяет, что именно сравнивали. Если только закупочную цену, то до вывода о стоимости владения ещё далеко.

Критик, увы, тоже может ошибаться, поэтому живой эксперт проверяет и исходные аргументы, и замечания к ним. Но искать слабые места теперь — отдельная задача системы до того, как отчёт попадёт к человеку.

Что в результате: агенты выставляют баллы по своим направлениям, а итоговый вердикт определяется по заданным правилам.

В зависимости от баллов вердикт может быть разным: «только пилот», «нужна проверка» или «не заменять». Так человек понимает, какое действие следует из анализа: испытать идею в ограниченном масштабе, разобраться с недостающими сведениями или отказаться от замены и забыть как страшный сон.

Расскажу чуть подробнее про роль критика. Он формулирует возражения: какой вывод нужно оспорить, почему, насколько серьёзен риск и какие данные или испытания нужны для проверки. Эти замечания попадают в итоговый синтез и могут изменить рекомендацию: сузить область применения, добавить обязательные условия, ограничить замену пилотом или дать основание для отказа.

Пример. В одном из прогонов по многослойной полимерной упаковке критик усилил уже ранее известный риск: после стерилизации материал может расслоиться и потерять барьерные свойства. Критик указал, что нужны испытания до и после обработки. Благодаря этому рекомендация получила статус «только пилот».

Отмечу, что бесконечного спора здесь нет — есть только один этап критики. Повторное исследование запускает уже эксперт: добавляет уточнение и пересчитывает нужный раздел. А ещё, если синтез не принимает предложенное критиком основание для отказа, он должен явно объяснить причину.

Так система научилась охлаждать наш энтузиазм. Но выяснилось, что сделать это можно и по-другому.

Маленькая история большого косяка

Начинали мы со строительной тематики. При переходе в другие отрасли оказалось, что просто подставить в запрос новое изделие недостаточно.

В одном из разборов система оценивала медицинскую упаковку по строительным СНиПам. Нормативный анализ в ответе был, но к нашему вопросу не подходил. Отраслевику промах очевиден, а системе нужно объяснить, какие требования относятся к этому применению и на какие документы опираться.

Так появилась настройка под сегмент. Эксперт один раз подробно отвечает на вопросы в интерфейсе, исправляет сведения и добавляет документы. Дальше этими данными пользуются коллеги. Им не нужно заново объяснять системе особенности своей области, а агентам есть на что опереться.

Ещё одна история очень буквально указала на ограничения сервиса. Знаете, что такое обечайка?

Ну вы поняли. Поняли же?

Ну вы поняли. Поняли же?

Это оболочка вокруг стаканчика — например, со сметаной. Подходящего сегмента в каталоге системы не было, поэтому оценить гипотезу замены не удалось.

Стало понятно: пользователям нужна возможность добавлять новые сегменты. Нельзя один раз объяснить системе, что такое упаковка, и ожидать одинаково полезного анализа для любого её вида. Мы всё равно возвращаемся к конкретному изделию: что оно делает, в каких условиях используется и какие к нему требования.

Для разработки это разумно, а для пользователя — не очень: он пришёл за готовым ответом, а его просят помочь инструменту разобраться в задаче. Хотел сэкономить время, а приходится его тратить. Поэтому настройку упростили и объяснили: пользователь должен понимать, зачем вопрос и как ответ поможет в следующих разборах.

В общем, переход к новым отраслям стал совместной работой с экспертами. Они помогали настроить систему, а заодно находили ошибки…

Из чего выросли три правила системы?

АБС-пластик + тормоза = ?

В одном из ответов АБС-пластик превратился в «тормоза»: модель узнала знакомую аббревиатуру, но выбрала значение из другой области.

Можно посмеяться и исправить, но ошибка в названии меняет весь разбор: система ищет не те свойства и делает выводы не о том объекте. Хорошая структура отчёта сама по себе это не исправит.

Так появился отраслевой словарь. Термины нужно объяснять системе в контексте материалов и их применения: эксперт понимает их почти автоматически, а модели этого навыка пока не хватает.

Побочный эффект погружения в полимерную терминологию: Дмитрий временно стал звать кота Гомополимером. К коту годами не прилипала ни одна кличка — он отзывался только на «кот» и «котя». Спойлер: «Гомополимера» он тоже проигнорировал. Зато какой опыт для всех нас, включая кота.

Дешевле купить !== дешевле использовать

Другая ошибка была серьёзнее: расчёт упускал стоимость эксплуатации. 

Допустим, вариант дешевле на старте, но его чаще приходится обслуживать или менять. Остановившись на цене покупки, можно выбрать решение, которое в итоге обойдётся дороже.

Поэтому понадобилась методика стоимости владения: что включать в затраты и за какой период сравнивать варианты. Иначе в одном разборе «выгоднее» будет означать дешёвый материал, а в другом — меньшие расходы за всё время использования.

Правило такое: если данных об эксплуатации не хватает, это видно в результате — и эксперт понимает, что перед ним предварительная оценка, которую ещё предстоит дополнить.

Ссылка на норму vs вопрос закрыт

В одном из случаев агент сослался на отменённую норму: нашёл документ, вставил ссылку в отчёт и сформулировал на этой базе вывод. Но опираться на него при решении о замене было нельзя.

Так появилось правило проверки актуальности нормативных документов. Найти подходящий по теме текст — это только часть работы. Нужно ещё выяснить, можно ли использовать его прямо сейчас.

Снова вспомню медицинскую упаковку: у нормы проверяем и актуальность, и применимость. Действующий строительный документ не станет подходящим для другой отрасли только потому, что его не отменили.

Как превратить красивое демо в рабочий инструмент?

Здесь помогли три свойства.

Первое — скорость. Ожидание результата оставалось долгим. Нужно разобраться в настройке, запустить анализ, дождаться результата и проверить его. Чем сложнее этот путь, тем труднее встроить инструмент в повседневную работу.

Поэтому мы упростили настройку, добавили понятную инструкцию и занялись скоростью: чем больше действий до первого полезного результата, тем сложнее начать пользоваться системой.

Что конкретно сделали: независимые поисковые вызовы внутри одного раунда агента стали выполнять параллельно. Одновременно запускаются и две пары независимых этапов: нормативная проверка с расчётом экономики и анализ рынка со сравнением потребительских качеств. 

А ещё мы дополнительно ограничили ожидание отдельных вызовов и число поисковых раундов на некоторых этапах, сократили объём загружаемых страниц и убрали дублирование данных в контексте итогового синтеза. Так мы сокращаем последовательное ожидание и риск затяжных прогонов.

Второе — объективная польза. Система должна помогать проверять гипотезы и принимать решения по проектам. За отчётом стоит исследование: поиск источников, проверка свойств материала, нормативов и экономики замены. Если агенты провели его неверно, эксперт заново собирает данные и проверяет гипотезу вручную — и быстрый прогон времени не экономит.

Отчёт должен помогать в проектах развития: в одном случае — переходить к пилоту, в другом — собрать недостающие данные, в третьем — отказаться от замены и не тратить на неё следующие месяцы.

Поэтому «не заменять» — тоже полезный результат. Система не обязана поддерживать любую идею с полимером: важно понять, какие идеи выдерживают проверку и куда имеет смысл двигаться дальше.

Третье — стабильность, которую обеспечивает постоянная поддержка инструмента. Новые сегменты, документы, замечания экспертов и смена моделей требуют работы после запуска: один раз настроить анализ на все случаи нельзя.

Со стороны кажется, что мы всего лишь автоматизируем сбор информации. Но приходится разбираться буквально во всём: как рассуждает эксперт, почему доверяет одному аргументу и сразу отбрасывает другой, где замечает ограничение, когда неспециалист видит вполне хороший ответ.

Вопросов ещё много, гораздо больше, чем ответов.

А дальше куда?

Дальше хотим подключать новые отрасли, ускорять анализ и перейти к самостоятельному поиску идей замены материалов. Как и с людьми: рано или поздно хочется, чтобы коллега не только выполнял поручения, но и сам что-то предлагал.

Пока система помогает проверить идею, с которой пришёл человек, но хотим поручить ей и поиск таких возможностей.


Многим кажется, что лучший ИИ — тот, который быстро помогает находить решение. А мне стало ясно, что во многих делах, которые мы делегируем ИИ, важнее его способность возразить: «А почему вы вообще решили, что это сработает?»

Благодаря этому вопросу идею ещё можно проверить до пилота и затрат. Так что коллегу, который портит всем удовольствие своей духотой, мы точно оставляем в команде.

А как бы вы строили такую систему? Выделяли бы критика в отдельного агента? Какие модели выбрали бы и как проверяли бы, что спор помогает находить ошибки? Ну и главный вопрос.

А вы знали, что такое обечайка?

ссылка на оригинал статьи https://habr.com/ru/articles/1103812/