Providers

OpenRouter

OpenRouter надає уніфікований API, який маршрутизує запити до багатьох моделей через одну кінцеву точку й API-ключ. Він сумісний з OpenAI, тому більшість OpenAI SDK працюють після зміни базового URL.

Початок роботи

  • Отримайте свій API-ключ

    Створіть API-ключ на openrouter.ai/keys.

  • Запустіть онбординг

    bash
    openclaw onboard --auth-choice openrouter-api-key
  • (Необов’язково) Перейдіть на конкретну модель

    Онбординг за замовчуванням використовує openrouter/auto. Виберіть конкретну модель пізніше:

    bash
    openclaw models set openrouter/<provider>/<model>
  • Приклад конфігурації

    json5
    {  env: { OPENROUTER_API_KEY: "sk-or-..." },  agents: {    defaults: {      model: { primary: "openrouter/auto" },    },  },}

    Посилання на моделі

    Вбудовані приклади резервних варіантів:

    Посилання на модель Примітки
    openrouter/auto Автоматична маршрутизація OpenRouter
    openrouter/moonshotai/kimi-k2.6 Kimi K2.6 через MoonshotAI
    openrouter/moonshotai/kimi-k2.5 Kimi K2.5 через MoonshotAI

    Генерація зображень

    OpenRouter також може забезпечувати роботу інструмента image_generate. Використовуйте модель зображень OpenRouter у agents.defaults.imageGenerationModel:

    json5
    {  env: { OPENROUTER_API_KEY: "sk-or-..." },  agents: {    defaults: {      imageGenerationModel: {        primary: "openrouter/google/gemini-3.1-flash-image-preview",        timeoutMs: 180_000,      },    },  },}

    OpenClaw надсилає запити зображень до API зображень chat completions OpenRouter із modalities: ["image", "text"]. Моделі зображень Gemini отримують підтримувані підказки aspectRatio і resolution через image_config OpenRouter. Використовуйте agents.defaults.imageGenerationModel.timeoutMs для повільніших моделей зображень OpenRouter; параметр timeoutMs інструмента image_generate для окремого виклику все одно має пріоритет.

    Генерація відео

    OpenRouter також може забезпечувати роботу інструмента video_generate через свій асинхронний API /videos. Використовуйте відеомодель OpenRouter у agents.defaults.videoGenerationModel:

    json5
    {  env: { OPENROUTER_API_KEY: "sk-or-..." },  agents: {    defaults: {      videoGenerationModel: {        primary: "openrouter/google/veo-3.1-fast",      },    },  },}

    OpenClaw надсилає завдання text-to-video та image-to-video до OpenRouter, опитує повернений polling_url і завантажує готове відео з unsigned_urls OpenRouter або задокументованої кінцевої точки вмісту завдання. Еталонні зображення за замовчуванням надсилаються як зображення першого/останнього кадру; зображення, позначені reference_image, надсилаються як вхідні посилання OpenRouter. Вбудований стандартний варіант google/veo-3.1-fast оголошує поточно підтримувані тривалості 4/6/8 секунд, роздільні здатності 720P/1080P і співвідношення сторін 16:9/9:16. Video-to-video не зареєстровано для OpenRouter, оскільки upstream API генерації відео наразі приймає текст і посилання на зображення.

    Перетворення тексту на мовлення

    OpenRouter також можна використовувати як провайдера TTS через його сумісну з OpenAI кінцеву точку /audio/speech.

    json5
    {  messages: {    tts: {      auto: "always",      provider: "openrouter",      providers: {        openrouter: {          model: "hexgrad/kokoro-82m",          voice: "af_alloy",          responseFormat: "mp3",        },      },    },  },}

    Якщо messages.tts.providers.openrouter.apiKey опущено, TTS повторно використовує models.providers.openrouter.apiKey, а потім OPENROUTER_API_KEY.

    Перетворення мовлення на текст (вхідне аудіо)

    OpenRouter може транскрибувати вхідні голосові/аудіовкладення через спільний шлях tools.media.audio, використовуючи свою кінцеву точку STT (/audio/transcriptions). Це застосовується до будь-якого канального plugin, який передає вхідний голос/аудіо до попередньої перевірки розуміння медіа.

    json5
    {  tools: {    media: {      audio: {        enabled: true,        models: [{ provider: "openrouter", model: "openai/whisper-large-v3-turbo" }],      },    },  },}

    OpenClaw надсилає STT-запити OpenRouter як JSON з аудіо base64 у input_audio (контракт STT OpenRouter), а не як multipart-завантаження форми OpenAI.

    Автентифікація та заголовки

    OpenRouter використовує Bearer-токен із вашим API-ключем під капотом.

    У реальних запитах OpenRouter (https://openrouter.ai/api/v1) OpenClaw також додає задокументовані OpenRouter заголовки атрибуції застосунку:

    Заголовок Значення
    HTTP-Referer https://openclaw.ai
    X-OpenRouter-Title OpenClaw
    X-OpenRouter-Categories cli-agent,cloud-agent,programming-app,creative-writing,writing-assistant,general-chat,personal-agent

    Розширена конфігурація

    Кешування відповідей

    Кешування відповідей OpenRouter вмикається явно. Увімкніть його для кожної моделі OpenRouter за допомогою параметрів моделі:

    json5
    {  agents: {    defaults: {      models: {        "openrouter/auto": {          params: {            responseCache: true,            responseCacheTtlSeconds: 300,          },        },      },    },  },}

    OpenClaw надсилає X-OpenRouter-Cache: true і, якщо налаштовано, X-OpenRouter-Cache-TTL. responseCacheClear: true примусово оновлює поточний запит і зберігає замінну відповідь. Також приймаються snake_case-псевдоніми (response_cache, response_cache_ttl_seconds і response_cache_clear).

    Це окремо від кешування промптів провайдера та від маркерів Anthropic cache_control OpenRouter. Воно застосовується лише на перевірених маршрутах openrouter.ai, а не на базових URL користувацьких проксі.

    Маркери кешу Anthropic

    На перевірених маршрутах OpenRouter посилання на моделі Anthropic зберігають специфічні для OpenRouter маркери Anthropic cache_control, які OpenClaw використовує для кращого повторного використання кешу промптів у блоках системних/розробницьких промптів.

    Попереднє заповнення reasoning Anthropic

    На перевірених маршрутах OpenRouter посилання на моделі Anthropic з увімкненим reasoning відкидають завершальні ходи попереднього заповнення асистента перед тим, як запит потрапить до OpenRouter, відповідно до вимоги Anthropic, щоб розмови reasoning завершувалися ходом користувача.

    Ін’єкція thinking / reasoning

    На підтримуваних не-auto маршрутах OpenClaw відображає вибраний рівень thinking на payload reasoning проксі OpenRouter. Непідтримувані підказки моделей і openrouter/auto пропускають цю ін’єкцію reasoning. Hunter Alpha також пропускає proxy reasoning для застарілих налаштованих посилань на моделі, оскільки OpenRouter міг повертати текст остаточної відповіді в полях reasoning для цього вилученого маршруту.

    Відтворення reasoning DeepSeek V4

    На перевірених маршрутах OpenRouter openrouter/deepseek/deepseek-v4-flash і openrouter/deepseek/deepseek-v4-pro заповнюють відсутній reasoning_content у відтворених ходах асистента, щоб розмови thinking/tool зберігали потрібну для DeepSeek V4 форму подальшого ходу. OpenClaw надсилає підтримувані OpenRouter значення reasoning_effort для цих маршрутів; xhigh є найвищим оголошеним рівнем, а застарілі перевизначення max відображаються на xhigh.

    Формування запитів лише для OpenAI

    OpenRouter усе ще проходить через proxy-style сумісний з OpenAI шлях, тому нативне формування запитів лише для OpenAI, як-от serviceTier, Responses store, OpenAI reasoning-compat payloads і підказки кешу промптів, не пересилається.

    Маршрути на базі Gemini

    Посилання OpenRouter на базі Gemini залишаються на шляху proxy-Gemini: OpenClaw зберігає там очищення thought-signature Gemini, але не вмикає нативну валідацію відтворення Gemini або bootstrap-переписування.

    Метадані маршрутизації провайдера

    Якщо ви передаєте маршрутизацію провайдера OpenRouter у параметрах моделі, OpenClaw пересилає її як метадані маршрутизації OpenRouter до запуску спільних stream wrappers.

    Пов’язане

    Was this useful?