Providers
OpenRouter
OpenRouter merutekan permintaan ke banyak model di balik satu API dan satu kunci. OpenRouter
kompatibel dengan OpenAI, sehingga OpenClaw berkomunikasi dengannya melalui transport bergaya
openai-completions yang sama seperti yang digunakan untuk penyedia proksi lainnya.
Memulai
OAuth
Jalankan orientasi OAuth
openclaw onboard --auth-choice openrouter-oauthOpenClaw membuka alur masuk melalui peramban OpenRouter (PKCE), menukarkan kode dengan kunci API OpenRouter, dan menyimpannya dalam profil autentikasi OpenRouter bawaan. Pada host jarak jauh/tanpa antarmuka grafis, OpenClaw mencetak URL masuk dan meminta Anda menempelkan URL pengalihan setelah masuk.
(Opsional) Beralih ke model tertentu
Orientasi menggunakan openrouter/auto secara bawaan. Pilih model tertentu nanti:
openclaw models set openrouter/<provider>/<model>Kunci API
Dapatkan kunci API Anda
Buat kunci API di openrouter.ai/keys.
Jalankan orientasi dengan kunci API
openclaw onboard --auth-choice openrouter-api-key(Opsional) Beralih ke model tertentu
Orientasi menggunakan openrouter/auto secara bawaan. Pilih model tertentu nanti:
openclaw models set openrouter/<provider>/<model>Contoh konfigurasi
{ env: { OPENROUTER_API_KEY: "sk-or-..." }, agents: { defaults: { model: { primary: "openrouter/auto" }, }, },}Referensi model
Model fallback bawaan, yang digunakan ketika penemuan katalog langsung tidak tersedia:
| Referensi model | Catatan |
|---|---|
openrouter/auto |
Perutean otomatis OpenRouter |
openrouter/moonshotai/kimi-k2.6 |
Kimi K2.6 melalui MoonshotAI |
openrouter/moonshotai/kimi-k2.5 |
Kimi K2.5 melalui MoonshotAI |
Referensi openrouter/<provider>/<model> lainnya, termasuk
openrouter/openrouter/fusion (lihat Perute Fusion), diselesaikan
secara dinamis terhadap katalog model langsung OpenRouter.
Pembuatan gambar
OpenRouter dapat mendukung alat image_generate. Tetapkan model gambar OpenRouter
di bawah agents.defaults.imageGenerationModel:
{ env: { OPENROUTER_API_KEY: "sk-or-..." }, agents: { defaults: { imageGenerationModel: { primary: "openrouter/google/gemini-3.1-flash-image-preview", timeoutMs: 180_000, }, }, },}OpenClaw mengirim permintaan gambar ke API gambar penyelesaian obrolan OpenRouter dengan
modalities: ["image", "text"]. Model gambar Gemini juga menerima petunjuk
aspectRatio dan resolution melalui image_config OpenRouter; model
gambar lainnya tidak. Gunakan agents.defaults.imageGenerationModel.timeoutMs untuk
model yang lebih lambat; timeoutMs per panggilan milik alat image_generate tetap diutamakan.
Pembuatan video
OpenRouter dapat mendukung alat video_generate melalui API asinkron
/videos. Tetapkan model video OpenRouter di bawah
agents.defaults.videoGenerationModel:
{ env: { OPENROUTER_API_KEY: "sk-or-..." }, agents: { defaults: { videoGenerationModel: { primary: "openrouter/google/veo-3.1-fast", }, }, },}OpenClaw mengirim pekerjaan teks-ke-video dan gambar-ke-video, melakukan polling pada
polling_url yang dikembalikan, dan mengunduh video yang telah selesai dari
unsigned_urls OpenRouter atau titik akhir konten pekerjaan. Gambar referensi secara bawaan
digunakan sebagai gambar bingkai pertama/terakhir; gambar yang diberi tag reference_image
dikirim sebagai referensi masukan. Model bawaan google/veo-3.1-fast mendukung durasi
4/6/8 detik, resolusi 720P/1080P, dan rasio aspek 16:9/9:16.
Video-ke-video tidak didukung: API hulu hanya menerima referensi teks dan gambar.
Pembuatan musik
OpenRouter dapat mendukung alat music_generate melalui keluaran audio penyelesaian obrolan.
Tetapkan model audio OpenRouter di bawah
agents.defaults.musicGenerationModel:
{ env: { OPENROUTER_API_KEY: "sk-or-..." }, agents: { defaults: { musicGenerationModel: { primary: "openrouter/google/lyria-3-pro-preview", timeoutMs: 180_000, }, }, },}Penyedia musik OpenRouter bawaan menggunakan google/lyria-3-pro-preview
secara bawaan dan juga menyediakan google/lyria-3-clip-preview. OpenClaw mengirim modalities: ["text", "audio"], mengalirkan respons, mengumpulkan potongan audio, dan menyimpan
hasilnya sebagai media yang dihasilkan untuk dikirimkan melalui saluran. Model Lyria menerima satu
gambar referensi melalui parameter bersama music_generate image=....
Audio streaming, penyimpanan transkrip, dan amplop peristiwa SSE yang dihasilkan
dibatasi oleh agents.defaults.mediaMaxMb (batas audio bawaan adalah 16 MB).
Teks-ke-ucapan
OpenRouter dapat bertindak sebagai penyedia TTS melalui endpoint
/audio/speech yang kompatibel dengan OpenAI.
{ messages: { tts: { auto: "always", provider: "openrouter", providers: { openrouter: { model: "hexgrad/kokoro-82m", speakerVoice: "af_alloy", responseFormat: "mp3", }, }, }, },}Jika messages.tts.providers.openrouter.apiKey tidak dicantumkan, TTS akan beralih menggunakan
models.providers.openrouter.apiKey, lalu OPENROUTER_API_KEY.
Ucapan ke teks (audio masuk)
OpenRouter dapat mentranskripsikan lampiran suara/audio yang masuk melalui jalur bersama
tools.media.audio, menggunakan endpoint STT-nya (/audio/transcriptions).
Hal ini berlaku untuk setiap plugin kanal yang meneruskan suara/audio masuk ke
pemeriksaan awal pemahaman media.
{ tools: { media: { audio: { enabled: true, models: [{ provider: "openrouter", model: "openai/whisper-large-v3-turbo" }], }, }, },}OpenClaw mengirim permintaan STT OpenRouter sebagai JSON dengan audio base64 di bawah
input_audio (kontrak STT OpenRouter), bukan sebagai unggahan formulir OpenAI
multipart.
Router Fusion
OpenRouter Fusion mengirim satu referensi model OpenClaw ke beberapa model OpenRouter secara
paralel, meminta OpenRouter menilai jawaban mereka, dan mengembalikan satu respons akhir
melalui endpoint OpenRouter biasa. Slug model upstream adalah
openrouter/fusion, sehingga referensi model OpenClaw membawa prefiks penyedia OpenClaw
dan namespace OpenRouter upstream:
openclaw models set openrouter/openrouter/fusionKonfigurasikan panel dan penilai Fusion melalui params.extraBody milik model;
bidang tersebut diteruskan langsung ke isi permintaan penyelesaian percakapan OpenRouter.
Fusion berfungsi dengan orientasi OAuth maupun kunci API; jika Anda menggunakan OAuth,
hilangkan baris env.OPENROUTER_API_KEY di bawah ini.
{ env: { OPENROUTER_API_KEY: "sk-or-..." }, agents: { defaults: { model: { primary: "openrouter/openrouter/fusion" }, models: { "openrouter/openrouter/fusion": { params: { extraBody: { plugins: [ { id: "fusion", analysis_models: [ "google/gemini-3.5-flash", "moonshotai/kimi-k2.6", "deepseek/deepseek-v4-pro", ], model: "google/gemini-3.5-flash", }, ], }, }, }, }, }, },}analysis_models adalah panel paralel; model di dalam konfigurasi plugin Fusion
adalah model penilai. Jangan atur tool_choice tingkat atas menjadi "required"
dalam giliran agen/percakapan biasa untuk mencoba memaksa Fusion: giliran OpenClaw dapat menyertakan
definisi alatnya sendiri, dan pilihan alat wajib tingkat atas mungkin memilih salah satu
alat tersebut alih-alih router Fusion. Saat konfigurasi plugin Fusion ini tersedia,
OpenClaw menambahkan catatan perintah sistem yang telah disanitasi dan mencantumkan model analisis
serta model penilai yang dikonfigurasi, sehingga agen dapat menjawab pertanyaan tentang panel Fusion
miliknya sendiri. Bidang extraBody lainnya tidak disalin ke dalam perintah.
Fusion sengaja dirancang lebih lambat: OpenRouter menyebarkan perintah ke beberapa model analisis, lalu menjalankan langkah penilaian/sintesis, sehingga latensinya lebih tinggi daripada permintaan langsung ke satu model. Gunakan untuk jawaban yang dipertimbangkan dengan matang dan berkualitas tinggi atau jalur eskalasi, bukan sebagai nilai bawaan yang peka terhadap latensi. Pertahankan ukuran panel tetap kecil dan pilih model analisis/penilai yang lebih cepat untuk memperoleh respons lebih cepat.
Uji referensi yang telah dikonfigurasi dengan satu panggilan lokal:
openclaw infer model run --local \ --model openrouter/openrouter/fusion \ --prompt "Reply with exactly: FUSION_OK" \ --jsonAutentikasi dan header
OpenRouter menggunakan token Bearer dari kunci API Anda. OAuth OpenRouter adalah alur
masuk PKCE yang menerbitkan kunci API OpenRouter, sehingga OpenClaw menyimpan hasilnya dalam
profil autentikasi kunci API openrouter:default yang sama dengan yang digunakan oleh penyiapan
kunci API manual.
Untuk masuk atau merotasi kunci yang tersimpan pada instalasi yang sudah ada tanpa menjalankan ulang seluruh orientasi:
openclaw models auth login --provider openrouter --method oauthopenclaw models auth login --provider openrouter --method api-keyPada permintaan OpenRouter yang terverifikasi (https://openrouter.ai/api/v1), OpenClaw menambahkan
header atribusi aplikasi OpenRouter yang terdokumentasi:
| Header | Nilai |
|---|---|
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 |
Konfigurasi lanjutan
Penyimpanan cache respons
Penyimpanan cache respons OpenRouter bersifat opsional. Aktifkan untuk setiap model:
{ agents: { defaults: { models: { "openrouter/auto": { params: { responseCache: true, responseCacheTtlSeconds: 300, }, }, }, }, },}OpenClaw mengirim X-OpenRouter-Cache: true dan, jika dikonfigurasi,
X-OpenRouter-Cache-TTL. responseCacheClear: true memaksa penyegaran untuk
permintaan saat ini dan menyimpan respons penggantinya. Alias snake_case
(response_cache, response_cache_ttl_seconds,
response_cache_clear) diterima, demikian pula responseCacheTtl /
response_cache_ttl tanpa sufiks Seconds.
Ini terpisah dari penyimpanan cache perintah penyedia dan penanda
cache_control Anthropic milik OpenRouter. Fitur ini hanya berlaku pada rute
openrouter.ai yang terverifikasi, bukan URL dasar proksi khusus.
Penanda cache Anthropic
Pada rute OpenRouter yang terverifikasi, referensi model Anthropic mempertahankan
penanda cache_control Anthropic milik OpenRouter agar cache perintah dapat digunakan kembali dengan lebih baik pada
blok perintah sistem/pengembang.
Prefill penalaran Anthropic
Pada rute OpenRouter yang terverifikasi, referensi model Anthropic dengan penalaran diaktifkan menghapus giliran prefill asisten di bagian akhir sebelum permintaan mencapai OpenRouter, sesuai dengan persyaratan Anthropic bahwa percakapan penalaran harus diakhiri dengan giliran pengguna.
Injeksi pemikiran / penalaran
Pada rute non-auto yang didukung, OpenClaw memetakan tingkat pemikiran yang dipilih
ke payload penalaran proksi OpenRouter. openrouter/auto dan petunjuk model
yang tidak didukung melewati injeksi tersebut. Referensi openrouter/hunter-alpha yang usang juga
melewatinya karena OpenRouter dapat mengembalikan teks jawaban akhir dalam kolom
penalaran pada rute yang telah dihentikan tersebut.
Pemutaran ulang penalaran DeepSeek V4
Pada rute OpenRouter yang terverifikasi, openrouter/deepseek/deepseek-v4-flash dan
openrouter/deepseek/deepseek-v4-pro mengisi reasoning_content yang tidak ada pada
giliran asisten yang diputar ulang, sehingga percakapan pemikiran/alat tetap dalam
format tindak lanjut yang diwajibkan DeepSeek V4. OpenClaw mengirim nilai
reasoning.effort yang didukung OpenRouter untuk rute ini: xhigh/max dipetakan ke xhigh,
sedangkan setiap tingkat aktif lainnya dipetakan ke high.
Pembentukan permintaan khusus OpenAI
OpenRouter berjalan melalui jalur kompatibel OpenAI bergaya proksi, sehingga
pembentukan permintaan khusus OpenAI native seperti serviceTier, store pada Responses,
payload kompatibilitas penalaran OpenAI, dan petunjuk cache prompt tidak diteruskan.
Rute berbasis Gemini
Referensi OpenRouter berbasis Gemini tetap berada pada jalur proksi-Gemini: OpenClaw mempertahankan sanitasi tanda tangan pemikiran Gemini di sana, tetapi tidak mengaktifkan validasi pemutaran ulang Gemini native atau penulisan ulang bootstrap.
Metadata perutean penyedia
OpenRouter mendukung objek permintaan provider untuk perutean penyedia
yang mendasarinya. Konfigurasikan kebijakan bawaan untuk semua permintaan model teks OpenRouter
dengan models.providers.openrouter.params.provider:
{ models: { providers: { openrouter: { params: { provider: { sort: "latency", require_parameters: true, data_collection: "deny", }, }, }, }, },}OpenClaw meneruskan objek tersebut ke OpenRouter sebagai payload provider
permintaan. Gunakan kolom snake_case yang didokumentasikan OpenRouter, termasuk sort,
only, ignore, order, allow_fallbacks, require_parameters,
data_collection, quantizations, max_price, preferred_max_latency,
preferred_min_throughput, zdr, dan enforce_distillable_text.
Parameter per model menggantikan objek perutean tingkat penyedia:
{ agents: { defaults: { models: { "openrouter/anthropic/claude-sonnet-4-6": { params: { provider: { order: ["anthropic"], allow_fallbacks: false, }, }, }, }, }, },}Ini hanya berlaku pada rute chat-completions OpenRouter. Rute langsung Anthropic, Google, OpenAI, atau penyedia khusus mengabaikan parameter perutean OpenRouter.