Создатели AI-менеджера для маркетплейсов удалили агента и сократили код на 461 строку

Команда AI-менеджера для маркетплейсов через четыре дня после запуска удалила своего агента и переписала его ядро на Pydantic AI: 582 строки удалено, 121 добавлена, итого минус 461. Агент обошёл старый разбор фраз у семи должностей из девяти, но в диалогах отвечал поверхностно: по десятой части магазина из-за обрезки данных и узких обёрток. Теперь у него один инструмент на все 307 методов API Wildberries, плюс справка и поиск в интернете. • Судья ставил оценки 1–5: менеджер маркетплейсов набрал 4,28, но ловил не всё • Лимит хода подняли с 8 до 50 шагов и 15 минут, но это почти не помогло • Любая запись в кабинет идёт одним пакетом и только после «да» владельца

AI-обработка оригинала Хабр: Машинное обучение; редакция Hamidun News
Создатели AI-менеджера для маркетплейсов удалили агента и сократили код на 461 строку
Источник: Хабр: Машинное обучение. Коллаж: Hamidun News.
Слушать статью
Паспорт материала и цифры
ПараметрДанные
ПервоисточникХабр: Машинное обучение ↗
Главный редактор
Судья ставил оценки 1–5менеджер маркетплейсов набрал 4,28, но ловил не всё
Ключевой факт #2Лимит хода подняли с 8 до 50 шагов и 15 минут, но это почти не помогло
Ключевой факт #3Любая запись в кабинет идёт одним пакетом и только после «да» владельца

Через четыре дня после запуска команда, делающая AI-менеджера для продавцов на маркетплейсах, удалила своего агента целиком. По внутренним тестам он выглядел успешным, но живые разговоры показали другое: ответы звучали уверенно и при этом опирались на малую часть данных. Вместо того чтобы чинить, разработчики выбросили собственное ядро и перевели ход агента на Pydantic AI. Коммит получился показательным: 582 строки удалено, 121 добавлена.

Тесты говорили одно, разговоры другое

Для оценки команда собрала эталон: по восемь типовых задач на каждую должность и модель-судью, которая ставит ответу от 1 до 5 и видит данные, на которых агент отвечал. По этому эталону агент обошёл старый разбор фраз у семи должностей из девяти, а менеджер маркетплейсов набрал 4,28.

Затем авторы прочитали сами диалоги. Владелец спрашивает, почему просели продажи, а агент смотрит десять товаров из сотни: инструмент отдаёт «до 15 результатов», а таблица для модели ещё и обрезается. Вывод гладкий, но сделан по десятой части магазина. Судья такую ошибку не ловит, потому что данные, которые видел агент, с выводом сходятся. Это типичная слепая зона LLM-оценки: судья проверяет согласованность ответа с контекстом, а не полноту самого контекста.

Другие проблемы оказались того же происхождения:

  • Обёртка над отзывами отдавала свежие отзывы, а не все. Просьба «разбери всё за полгода» упиралась в отсутствие метода, и агент отвечал «пока не умею». Список таких просьб в админке рос быстрее, чем команда писала новые обёртки.
  • В описаниях инструментов стояли указания вроде «один-два вызова широкими словами» и «до 15». Модель им следовала даже там, где задача требовала двадцати вызовов.
  • Лимит хода в восемь шагов не хватал для задач уровня «разберись, почему падает ниша». Его подняли до 50 шагов и 15 минут, но эффект был небольшой: агент упирался не в число шагов, а в то, что каждый шаг давал лишь кусочек данных.

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

Почему выбросили ядро, а не починили

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

Поэтому цикл заменили на Pydantic AI. Редкие инструменты подгружаются через DeferredLoadingToolset только по поиску, а не лежат в контексте каждого шага. Из готового набора взяли поиск DuckDuckGo с восемью результатами и загрузку страницы по ссылке. Лимит запросов отключили: usage_limits.request_limit равен None. Собственные инструменты остались прежними и вызываются через те же функции, поэтому таблицы владельцу, журнал действий и правила записи не изменились.

Один инструмент вместо десятков обёрток

Главное изменение — принцип. Раньше агенту давали инструменты и объясняли, как ими пользоваться. Теперь он получает доступ, инструмент и справку, а способ использования выбирает сам.

Весь API Wildberries стал одним инструментом, через который доступны 307 методов, плюс отдельный инструмент с официальной справкой. Карточки, цены, остатки, заказы, поставки, реклама, отзывы, чаты и финансы доступны агенту в том же объёме, что и самому API. Если метода нет в справке, инструмент возвращает подсказку сверить через справочный вызов. Методы чтения выполняются сразу и целиком, без обрезки. Так же подключён API сервиса аналитики MPStats. Библиотеку знаний из промпта убрали: справка лежит рядом с API, остальное агент ищет в интернете сам.

Одно правило пережило переписывание: любая запись в кабинет только после «да» владельца. Изменилась механика. Записи за ход копятся в один пакет, например «поменять цену у трёх товаров, поднять ставку в двух кампаниях, ответить на четыре отзыва». Владелец видит список в формате «было → станет» и отвечает один раз. Пакет выполняется по порядку и останавливается на первой ошибке.

Среди небольших улучшений: параллельное чтение (пока агент смотрит заказы, он уже проверяет остатки и рекламу), правки строго по одной, потоковый вывод текста со статусами вроде «читаю отзывы за март», запоминание удачных вызовов API в проекте и продолжение хода с того же места после сбоя модели или поиска.

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

Сюжет

Вопросы и ответы по материалу

Что известно по теме: тесты говорили одно, разговоры другое?

Для оценки команда собрала эталон: по восемь типовых задач на каждую должность и модель-судью, которая ставит ответу от 1 до 5 и видит данные, на которых агент отвечал. По этому эталону агент обошёл старый разбор фраз у семи должностей из девяти, а менеджер маркетплейсов набрал 4,28. Затем авторы прочитали сами диалоги. Владелец спрашивает, почему просели продажи, а агент смотрит десять товаров из сотни: инструмент отдаёт «до 15 результатов», а таблица для модели ещё и обрезается. Вывод гладкий, но сделан по десятой части магазина. Судья такую ошибку не ловит, потому что да

Что известно по теме: почему выбросили ядро, а не починили?

Собственное ядро включало цикл, вызовы инструментов, повторы при обрывах, сжатие старых шагов и группы инструментов. Всё это требовало поддержки, а уникального в нём не было: читатели прошлой статьи справедливо заметили, что это обычный ReAct. Ценность продукта лежит в других местах: в инструментах для площадок, в правилах записи в кабинет и в подаче ответа владельцу. Поэтому цикл заменили на Pydantic AI. Редкие инструменты подгружаются через DeferredLoadingToolset только по поиску, а не лежат в контексте каждого шага. Из готового набора взяли поиск DuckDuckGo с восемью рез

Что известно по теме: один инструмент вместо десятков обёрток?

Главное изменение — принцип. Раньше агенту давали инструменты и объясняли, как ими пользоваться. Теперь он получает доступ, инструмент и справку, а способ использования выбирает сам. Весь API Wildberries стал одним инструментом, через который доступны 307 методов, плюс отдельный инструмент с официальной справкой. Карточки, цены, остатки, заказы, поставки, реклама, отзывы, чаты и финансы доступны агенту в том же объёме, что и самому API. Если метода нет в справке, инструмент возвращает подсказку сверить через справочный вызов. Методы чтения выполняются сразу и целиком, без о

ЖХ
Жемал Хамидун — CPO Alpina Digital, продакт-менеджер AlpinaGPT. Делает AI-продукты с 2019 года. Hamidun News — pet project, который вырос в production-агрегатор с 6000+ читателей.
✦ Единое AI-пространство · Nomad

Протестируйте новые LLM и мультимодальные модели в одном окне

Платформа Nomad AI (nomadnet.ai) даёт прямой доступ к Claude Opus 5.5, GPT-6, Gemini 3.1, DeepSeek и автономным агентам без VPN, зарубежных карт и зоопарка подписок.

Открыть Nomad AI →Автономный Nomad Agent
Что вы думаете?
Загружаем комментарии…