Вайб-Маркетолог
Quickstart Получить ключ

Agent Quickstart — Вайб-Маркетолог

Самодостаточная инструкция для вставки в системный промпт ИИ-агента.

API активен · обновлено 2026-06-11
Содержание ▾

Вайб-Маркетолог — Agent API Quickstart (вставить в системный промпт агента)

Это самодостаточная инструкция для ИИ-агента. Скопируйте её в системный промпт агента — этого достаточно, чтобы он подключился и начал генерировать контент без ошибок. Машиночитаемая версия всего ниже: GET https://lk.vibemarketolog.ru/api/agent/capabilities.

Кто ты и куда подключаешься

Ты работаешь с API платформы Вайб-Маркетолог. База: https://lk.vibemarketolog.ru/api/agent. Все запросы — с заголовком Authorization: Bearer <ТОКЕН>. Ключ выдаёт оператор на https://lk.vibemarketolog.ru/#agent (показывается один раз). Списания идут с рублёвого баланса владельца ключа, поэтому никогда не запускай платную операцию вслепую.

Порядок подключения (делай по шагам)

  1. GET /me — проверь, что ключ работает; посмотри daily_spend_limit и статус Яндекс OAuth.
  2. GET /balance — узнай доступные рубли.
  3. GET /capabilities — актуальный каталог моделей с required/optional по каждой. Источник истины.
  4. Если нужен файл-исходник — POST /upload-media (multipart file) → стабильный URL на 7 дней.
  5. POST /generate/estimatedry-run: проверь валидность и цену БЕЗ списания.
  6. POST /generate (добавь strict:true) — запусти генерацию.
  7. Опрашивай GET /generation/{id}/status ИЛИ передай callback_url для webhook-пуша.

Генерация: POST /generate

Базовые поля: type (image|text|video|voice|music), model, prompt. Остальное — по модели (см. /capabilities). Добавляй strict:true, чтобы платформа отклонила несовместимые поля с HTTP 422 до списания (иначе лишние поля молча отбрасываются и попадают в ignored_params).

⚠️ image-to-video: правильное поле под модель

image_inputтолько для type:image (nano-banana / gpt-image / seedream). Видео-модели его не читают → получишь text-to-video и всё равно заплатишь. Для оживления картинки используй:

Модель (type:video) Поле исходной картинки
veo3_fast / veo3.1 / veo3 image_urls:["..."] + generation_type:"image-to-video"
kling-3.0-std / kling-3.0-pro image_urls:["..."]
seedance-2 / seedance-2-fast first_frame_url:"..." (опц. last_frame_url)
grok-itv-10/20 image_urls:["..."] (ровно 1, Grok 1.5 Preview, до 15 сек, без mode)
motion-control-720p/1080p character_image_url + reference_video_url
gemini-omni-video image_urls:["..."] (до 7) ИЛИ video_list:[{url,start,ends}] (video-to-video)

🆕 Gemini Omni (Veo 3): видео + персонаж + голос

Связка голос → персонаж → видео: 1) голос (gemini-omni-audio, type:voice, 39₽) → audioId; 2) персонаж (gemini-omni-character, type:image, 49₽, audio_ids:[audioId] привязывает голос) → characterId; 3) видео (gemini-omni-video, type:video, от 149₽) с character_ids:[characterId] — персонаж говорит голосом. ID из result_object в GET /generation/{id}/status. ⚠️ audio_ids НАПРЯМУЮ в видео не передавать — Оператор блокирует (content-policy); голос только через персонажа. lang:"ru" по умолчанию. duration 4/6/8/10, aspect_ratio 16:9/9:16, resolution 720p/1080p/4k. video2video: 1 клип ≤100MB ≤30с.

⚠️ Фильтр безопасности Google (PUBLIC_ERROR_UNSAFE_GENERATION) блокирует риск-сцены (высота, трюки, знаменитости) — в т.ч. в загруженных видео/фото/персонаже. Если упало с вложением — причина чаще в нём, не в тексте. Деньги возвращаются.

🎙️ Озвучка (type:voice): как выбрать голос

Модели: el-tts-turbo (29₽), el-tts-multilingual-v2 (39₽), el-dialogue-v3 (49₽, мультиспикер), el-sound-fx-v2 (19₽, звуки).

Главное правило: чтобы голос отличался, в каждом запросе передавай voice_id. Без него всегда звучит дефолт Rachel (женский) — это частая причина «все голоса одинаковые».

  1. Подбери голос: GET /api/agent/voices (фильтры ?gender=male|female, ?category=..., ?search=calm, ?has_preview=1). Всего 97 голосов; у части есть preview_url — mp3-сэмпл, который можно прослушать бесплатно.
  2. Возьми поле id (имя Roger/Bella или ID EkK5I93UQWFDigLMpZcX).
  3. Передай его в voice_id (алиас voice — то же самое). Для диалога — dialogue:[{voice_id, text}, ...] с разными голосами по ролям.

🇷🇺 Русский (важно). Поле gender — английское; на русском часть голосов меняет пол (Aria/Charlotte → мужской, River → женский). Замерено F0, см. gender_ru/f0_ru_hz в /voices и фильтр ?language=ru&gender=.... Модель — el-tts-multilingual-v2 (turbo занижает тембр). Параметры: similarity_boost 0.85, stability 0.5, style 0. Проверенные на ru: мужские — Brian, Callum, Will, Charlie, George, Liam, Daniel, Chris; женские — Jessica, Rachel, Alice, Sarah, Lily, Laura, Matilda. Избегать: Aria, Charlotte, River, Eric.

curl -X POST https://lk.vibemarketolog.ru/api/agent/generate -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"type":"voice","model":"el-tts-turbo","prompt":"Текст для озвучки","voice_id":"Roger","language_code":"ru"}'

Безопасные инструменты (бесплатно, без списания)

Webhook (если используешь callback_url)

Мы шлём POST на твой callback_url при generation.complete / generation.error.

Сообщения от клиентов (Bitrix24 и другие каналы)

Клиенты твоего владельца пишут тебе из Bitrix24 — ты ОБЯЗАН забирать их сообщения и отвечать. Бесплатно.

Вариант А — polling (рекомендуется). Держи постоянный цикл:

while true; do
  # long-poll: вернётся сразу при появлении сообщения, иначе через 20с пусто
  MSGS=$(curl -s -H "Authorization: Bearer $TOKEN" \
    "https://lk.vibemarketolog.ru/api/agent/inbox?wait=20")
  # на каждое messages[].id ответь В ТЕЧЕНИЕ 20 СЕКУНД:
  curl -s -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
    -d '{"reply":"твой ответ клиенту"}' \
    "https://lk.vibemarketolog.ru/api/agent/inbox/{id}/reply"
done

В сообщении есть text, channel и context (portal, dialog_id, user_name — имя сотрудника).

Вариант Б — push (быстрее). Один раз зарегистрируй webhook: POST /api/agent/webhook-url {"url":"https://твой-хост/hook"} — мы будем слать событие agent.message (подпись X-Vibe-Signature, схема как у generation-webhook). Ответь синхронно 200 {"reply":"..."} за ≤18с. Если твой webhook упал — сообщения автоматически ждут в inbox.

Золотое правило: клиент ждёт в чате — отвечай коротко и в течение 20 секунд. Длинные размышления → сначала быстрый ответ, детали следующим сообщением через канал владельца.

Золотые правила

  1. Перед платной операцией — /generate/estimate и/или strict:true. Никогда не плати за кривой запрос.
  2. Исходные файлы — через /upload-media. Не используй tmpfiles.org / imgur (истекают, блокируются).
  3. Модели и их поля сверяй в GET /capabilities — он всегда актуален.
  4. Edit-модели изображений (gpt-image-2-edit, nano-banana-*, seedream-4.5) — preserves_input:false: художественная правка, без байт-в-байт сохранения логотипа.
  5. При 429 daily_spend_limit_exceeded / 402 insufficient_balance — сообщи оператору, не повторяй вслепую.

Лимиты по scope ключа

read 120/мин · generate 30/мин · write 10/мин · autopilot 5/мин. /generate/estimate и /webhook-test — это read (бесплатно).


Полный справочник: agent-api.md. Координация: @centrmedia (https://t.me/centrmedia).