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

Как я подключил 3 маркетплейса к AI-агенту за 25 минут

2026/02/19 11:00
7м. чтение

Три маркетплейса, три API, три набора подводных камней — и ноль ручного кодинга. Рассказываю, как мультиагентный пайплайн в OpenClaw самостоятельно написал интеграцию с Ozon, Wildberries и Яндекс Маркетом: 35 задач, 23 новых файла, ~4700 строк кода за 11 минут. Плюс 14 минут на код-ревью с CISO-агентом, который нашёл 21 баг — включая три критических.

Это вторая статья про OpenClaw — open-source платформу для AI-агентов. В первой мы собирали skill для российских LLM и Яндекс 360, и формат «подводные камни API» зашёл читателям. Сегодня — та же идея, но масштабнее: три реальных API одновременно.

Зачем вообще маркетплейсы + AI-агент?

Если вы продаёте на одной площадке — всё терпимо. Открыл кабинет, посмотрел заказы, обновил цены. Но если у вас Ozon + WB + Яндекс Маркет одновременно (а это реальность для большинства селлеров), начинается ад:

  • Три личных кабинета с разной логикой

  • Три разных API, которые даже аутентификацию делают по-разному

  • Три формата цен — рубли, копейки, и "RUR" вместо "RUB"

  • Мониторинг разбросан по трём вкладкам

Идея простая: AI-агент, который умеет ходить во все три API и отвечать на человеческий язык:

OpenClaw позволяет создавать такие интеграции через skills — наборы bash-инструментов, которые агент вызывает по контексту.

Как это было построено: мультиагентный пайплайн

Весь skill был написан не мной руками, а четырьмя специализированными агентами OpenClaw:

Researcher → Planner → Coder → Researcher (review) → CISO (security) → [fix loop] × 3

Researcher (11 мин): Проанализировал документацию всех трёх API. Сходил на dev.wildberries.ru, api.partner.market.yandex.ru, сравнил с уже реализованным Ozon. Написал 500-строчный отчёт с таблицей сравнения.

Planner (3 мин): Получил отчёт, разбил на 35 пронумерованных задач в 4 фазы. Каждая задача — конкретный файл, конкретная функция. Включил FMA (Failure Mode Analysis) — 10 рисков с митигациями.

Coder (11 мин): Получил план, написал код. 23 новых файла, 12 модифицированных. 4 фазы: scaffolding → WB → Яндекс Маркет → тесты и документация. 18 коммитов.

Review loop (14 мин, 3 итерации):

  • Researcher — функциональное ревью (логика, edge cases, пропущенные требования)

  • CISO — security audit (credentials в логах, race conditions, валидация входных данных)

  • Цикл: Bugs найдены → Coder фиксит → повторное ревью → пока не останутся только LOW severity

Это часть Kai Protocol — системы самообучения агентов через A3 post-mortems (Toyota Production System). Каждая найденная ошибка документируется: триггер → причина → митигация → обновление системных файлов. Цель: никогда не повторять одну ошибку дважды.

Итого: 25 минут от "нужна интеграция с WB и Яндекс Маркет" до работающего skill'а с тестами.

Архитектура: один skill, три платформы

Ключевое решение — не три отдельных skill'а, а один с флагом --platform:

mp-orders list --platform wb --mock # заказы WB mp-prices get SKU123 --platform ymarket # цена на Яндекс Маркете mp-stocks list --platform ozon # остатки на Ozon

Без --platform всё работает как раньше — ozon по умолчанию. Обратная совместимость — святое.

Структура:

lib/ ├── common/ # Общий слой │ ├── platform.sh # --platform парсинг, dispatch │ ├── http.sh # mock_request(), batch_execute() │ ├── formatter.sh # kopecks_to_rubles(), normalize_currency() │ └── audit.sh # audit log с полем PLATFORM ├── ozon/, wb/, ymarket/ # Платформо-специфичная логика │ ├── auth.sh, http.sh, orders.sh, prices.sh, stocks.sh └── wb/mocks/ # Тестовые данные tools/ ├── mp-orders, mp-prices, mp-stocks # Все платформы ├── mp-setup # Настройка credential'ов └── mp-test # Проверка подключения

У каждой платформы — свой HTTP-клиент (wb_request, ymarket_request, ozon_request), потому что различия слишком фундаментальные для единого враппера.

Подводные камни: три API — три мира

Вот таблица, которую собрал Researcher-агент:

Аспект

Ozon

Wildberries

Яндекс Маркет

Авторизация

Client-Id + Api-Key

Authorization: <token>

Api-Key: <token>

Base URL

Один

Несколько по категориям!

Один

Формат цен

"1500.00" (строка)

150000 (копейки!)

1500 (число)

Валюта

"RUB"

"RUB"

"RUR" (не RUB!)

Rate limit

429

429 (+ 409 конфликт)

420 (не 429!)

Sandbox

Есть

Есть (ограниченный)

Нет

Wildberries: зоопарк URL'ов и цены в копейках

Подводный камень #1: Несколько base URL. WB разнёс API по поддоменам:

declare -A WB_API_HOSTS=( [content]="content-api.wildberries.ru" [marketplace]="marketplace-api.wildberries.ru" [prices]="discounts-prices-api.wildberries.ru" )

Заказы — на marketplace-api. Цены — на discounts-prices-api. Каталог — на content-api. Каждый запрос нужно маршрутизировать правильно.

Подводный камень #2: Цены в копейках. "salePrice": 504600 — это не 500 тысяч рублей, а 5046.00₽. Если забыть конвертировать при обновлении — поставите товар за 25₽ вместо 2500₽.

Подводный камень #3: Двойной статус заказа. У WB два статуса:

  • supplierStatus — управляете вы (new → confirm → complete)

  • wbStatus — управляет WB (waiting → sorted → sold)

Нужно показывать оба, иначе селлер не понимает реальное состояние.

Яндекс Маркет: HTTP 420 и ценовой карантин

Подводный камень #1: HTTP 420 вместо 429. Rate limit — это 420 Enhance Your Calm, а не стандартный 429. Generic retry-логика его пропустит.

Подводный камень #2: Ценовой карантин. Если меняете цену >5%, она попадает в карантин и требует подтверждения. Ни Ozon, ни WB такого не имеют.

Подводный камень #3: RUR, не RUB. API использует старый код рубля "RUR". Отправите "RUB" — получите ошибку.

Подводный камень #4: businessId vs campaignId. Двухуровневая система — для разных операций нужны разные ID. Перепутали — получите 404 Not Found на существующем эндпоинте.

Ozon: на удивление просто

На фоне WB и Яндекса, Ozon — образец последовательного дизайна:

  • Один base URL

  • Цены в рублях

  • Стандартный 429 для rate limit

  • Консистентная пагинация

Это не реклама — просто факт: Ozon API проще всего интегрировать.

Как review loop нашёл 21 баг

После того как Coder написал код, Researcher и CISO получили задачу найти всё, что сломано.

Результат первого прохода:

Severity

Кол-во

Примеры

CRITICAL

3

Rollback парсил 9 полей в 8 переменных — все данные сдвинуты

HIGH

6

YM stocks = 0 у всех товаров, WB prices не фильтровал по SKU

MEDIUM

7

Токены не маскировались в логах, --low флаг не работал

LOW

5

Неверные комментарии, опечатки

Три критических бага:

Баг #1 (CRITICAL): Сдвиг полей в rollback.
Audit log пишет 9 полей: TIMESTAMP|USER|PLATFORM|BATCH_ID|ACTION|SKU|OLD_VALUE|NEW_VALUE|STATUS
Но rollback_batch парсил только 8 переменных — без PLATFORM. Результат: каждое поле сдвинуто на позицию. Проверка if [[ "$action" == "price_update" ]] никогда не срабатывала — в $action лежал batch_id.

Баг #2 (CRITICAL): Rollback всегда идёт в Ozon.
Даже после парсинга — rollback вызывал жёстко прописанные update_price() и update_stock() (только для Ozon). Откат цены на WB отправлял запрос в Ozon API. Нужен был platform dispatch.

Баг #3 (HIGH): YM stocks = 0 у всех товаров.
mp-stocks get использовал .stock // .count // 0, но Яндекс возвращает .stocks[0].count. Все товары показывали 0 единиц.

Три итерации — и чисто

  • Итерация 1: 21 баг → 12 исправлено (все CRITICAL + HIGH)

  • Итерация 2: 6 MEDIUM → исправлены

  • Итерация 3: финальная проверка, 0 новых багов

Без review loop эти баги попали бы в продакшен. Особенно баг #1 — rollback молча не делал ничего, и обнаружился бы только когда реальный селлер пытался бы откатить неправильную цену.

Попробовать

Установка:

openclaw skills add https://github.com/smvlx/openclaw-marketplace-ru

Первый запуск — в mock-режиме:

mp-orders list --platform wb --mock mp-prices list --platform ymarket --mock ./examples/morning-digest.sh --platform all --mock

Настройка реального подключения:

mp-setup --platform ozon # Client-Id + Api-Key mp-setup --platform wb # API токен mp-setup --platform ymarket # API Key mp-test --platform wb # Проверка

Ограничения

  1. WB base URL'ы из OpenAPI-спеки. Если WB их поменяет — URL'ы настраиваемые через wb.env.

  2. Яндекс без песочницы. Рекомендуется тестировать на hidden offers.

  3. bash 4+. На macOS со стандартным bash 3.2 не запустится — нужен brew install bash.

Это open-source проект, нужны контрибьюторы:

  • Селлеры с реальными аккаунтами для тестирования

  • Разработчики для расширения покрытия API

  • Баг-репорты из реальной эксплуатации

GitHub: github.com/smvlx/openclaw-marketplace-ru


Итоги

Три маркетплейса, три совершенно разных API. WB с ценами в копейках и зоопарком URL'ов, Яндекс с HTTP 420 и ценовым карантином, Ozon — предсказуемый.

Мультиагентный пайплайн справился за 25 минут: 35 задач, 23 файла, 3 раунда код-ревью, 21 баг найден и исправлен автоматически. Без CISO-агента три критических бага ушли бы в продакшен.

Skill работает в mock-режиме из коробки. Если готовы поучаствовать в боевом тестировании - пишите в тг @smvlx.

Источник

Возможности рынка
Логотип OpenClaw
OpenClaw Курс (OPENCLAW)
$0.0004969
$0.0004969$0.0004969
+16.42%
USD
График цены OpenClaw (OPENCLAW) в реальном времени
Отказ от ответственности: Статьи, размещенные на этом веб-сайте, взяты из общедоступных источников и предоставляются исключительно в информационных целях. Они не обязательно отражают точку зрения MEXC. Все права принадлежат первоисточникам. Если вы считаете, что какой-либо контент нарушает права третьих лиц, пожалуйста, обратитесь по адресу [email protected] для его удаления. MEXC не дает никаких гарантий в отношении точности, полноты или своевременности контента и не несет ответственности за любые действия, предпринятые на основе предоставленной информации. Контент не является финансовой, юридической или иной профессиональной консультацией и не должен рассматриваться как рекомендация или одобрение со стороны MEXC.

Быстрое чтение

Еще

Цена Conway Research (CONWAY) в сравнении с ценой Bitcoin (BTC) дает инвесторам четкое представление о том, как этот развивающийся мемкоин соотносится с крупнейшей криптовалютой. Поскольку BTC остается эталоном крипторынка, анализ динамики цен CONWAY vs BTC выявляет относительную силу, волатильность и возможности для трейдеров, ищущих прогнозы цены Conway Research и данные для сравнения цен Bitcoin.

Сравнение цены Conway Research (CONWAY) с ценой Ethereum (ETH) предлагает ценную перспективу для трейдеров и инвесторов. Поскольку ETH является второй по величине криптовалютой по рыночной капитализации и краеугольным камнем децентрализованных финансов, анализ его производительности по сравнению с CONWAY помогает выявить как конкурентные преимущества, так и потенциальные возможности роста.