Языковые модели умеют вести связный диалог, но это не означает, что они способны выполнять задачи. Пользователь, который просит найти USB-C зарядку до 25 долларов с доставкой за два дня, ожидает от агента конкретных действий: запроса к каталогу, фильтрации по трём условиям, выбора правильного варианта товара. Supervised fine-tuning — обучение на демонстрациях — справляется с простыми сценариями, но не масштабируется на комбинаторное пространство реальных e-commerce диалогов. Именно здесь появляется EcomRLVE-GYM.
Фреймворк расширяет RLVE-Gym — библиотеку из 400 сред для алгоритмических задач вроде сортировки и судоку — до многоходовых диалогов с инструментами. Принципиальное отличие: агент не просто генерирует текст, а совершает действия — вызывает API каталога, добавляет товары в корзину, инициирует возврат. Результат каждого действия проверяется программно: никакого LLM-судьи, никакой человеческой разметки. Это делает обучение воспроизводимым и масштабируемым.
| Environment | What the agent must do |
|---|---|
| Product Discovery | Find products that satisfy all the user's constraints |
| Substitution | An item is out of stock — find a similar, compatible alternative |
| Cart Building | Add the exact products, variants, and quantities the user asked for |
| Return + Replacement | Identify the right order line, initiate a return, suggest a replacement |
| Order Tracking | Resolve which order the user means and report its current status |
| Policy QA | Answer a deterministic question about store policy (return window, shipping rules, etc.) |
| Bundle Planning | Recommend a complete shopping list for a project within a budget |
| Multi-Intent Journey | Handle a conversation that chains 2–5 of the above tasks in sequence |
Всего в EcomRLVE-GYM восемь сред. Каждая покрывает отдельный сценарий: поиск товаров по ограничениям, подбор замены для позиции не в наличии, сборка корзины с точными вариантами и количеством, оформление возврата, отслеживание статуса заказа, ответы на вопросы о политике магазина, формирование бандла под бюджет и мультизадачные диалоги, где пользователь последовательно ставит от двух до пяти задач. Все среды используют единую трёхчастную функцию награды: задачная метрика (например, F1 по совпадению товаров), бонус за эффективность и штраф за галлюцинации — рекомендацию ID товаров, которые агент не запрашивал в текущей сессии.
Сложность задач регулируется по 12 независимым осям — от числа ограничений пользователя до доли товаров, которые заканчиваются в процессе диалога.

Сложность каждой задачи контролируется единым параметром d от 0 до 12, который одновременно меняет 12 независимых аспектов. На лёгком уровне пользователь формулирует два ограничения, почти никогда не опускает детали, а в результатах поиска нет отвлекающих позиций. На сложном уровне ограничений восемь, пользователь примерно в 80% случаев что-то не уточняет, четверть результатов поиска — нерелевантные товары, а половина позиций заканчивается в процессе диалога. Остальные восемь осей охватывают бюджет ходов, опечатки и сленг во вводе, переключения контекста и размер истории заказов.
Адаптивный куррикулум отслеживает успешность агента в каждой среде независимо и повышает сложность только после того, как агент стабильно проходит текущий уровень. Это позволяет избежать двух типичных проблем обучения с подкреплением: задач, слишком простых для извлечения сигнала, и задач, настолько сложных, что градиент не обновляется.
Модель Qwen 3 8B обучалась методом DAPO — вариантом алгоритма PPO, адаптированным для языковых моделей, — в течение 300 шагов. Среда сборки корзины (E_CART) хорошо иллюстрирует требования к агенту: нужно найти товар, выбрать правильный вариант (цвет, размер, тип разъёма), добавить с нужным количеством, при необходимости уточнить у пользователя недостающие детали и обработать список из нескольких позиций. Агент использует шесть инструментов, включая поиск по каталогу и запрос доступных вариантов. Ошибка в варианте — например, Lightning вместо USB-C — немедленно снижает F1, а симулированный пользователь исправляет агента прямо в диалоге. Проект создан в рамках PyTorch OpenEnv Hackathon и продолжает развиваться.

