Providers
OpenRouter
OpenRouter एक एकीकृत API प्रदान करता है, जो एक ही एंडपॉइंट और API कुंजी के पीछे कई मॉडलों तक अनुरोधों को रूट करता है। यह OpenAI-संगत है, इसलिए अधिकांश OpenAI SDK बेस URL बदलकर काम करते हैं।
शुरू करना
OAuth
OAuth ऑनबोर्डिंग चलाएँ
openclaw onboard --auth-choice openrouter-oauthOpenClaw OpenRouter का ब्राउज़र साइन-इन फ़्लो खोलता है, PKCE कोड को OpenRouter API कुंजी से एक्सचेंज करता है, और उस कुंजी को डिफ़ॉल्ट OpenRouter ऑथ प्रोफ़ाइल में संग्रहीत करता है। रिमोट/हेडलेस होस्ट पर, OpenClaw साइन-इन URL प्रिंट करता है और साइन-इन करने के बाद आपसे रीडायरेक्ट URL पेस्ट करने को कहता है।
(वैकल्पिक) किसी विशिष्ट मॉडल पर स्विच करें
ऑनबोर्डिंग डिफ़ॉल्ट रूप से openrouter/auto का उपयोग करती है। बाद में कोई ठोस मॉडल चुनें:
openclaw models set openrouter/<provider>/<model>API कुंजी
अपनी API कुंजी प्राप्त करें
openrouter.ai/keys पर API कुंजी बनाएँ।
API-कुंजी ऑनबोर्डिंग चलाएँ
openclaw onboard --auth-choice openrouter-api-key(वैकल्पिक) किसी विशिष्ट मॉडल पर स्विच करें
ऑनबोर्डिंग डिफ़ॉल्ट रूप से openrouter/auto का उपयोग करती है। बाद में कोई ठोस मॉडल चुनें:
openclaw models set openrouter/<provider>/<model>कॉन्फ़िग उदाहरण
{ env: { OPENROUTER_API_KEY: "sk-or-..." }, agents: { defaults: { model: { primary: "openrouter/auto" }, }, },}मॉडल संदर्भ
बंडल किए गए फ़ॉलबैक उदाहरण:
| मॉडल रेफ़रेंस | नोट्स |
|---|---|
openrouter/auto |
OpenRouter स्वचालित रूटिंग |
openrouter/openrouter/fusion |
OpenRouter Fusion राउटर |
openrouter/moonshotai/kimi-k2.6 |
MoonshotAI के माध्यम से Kimi K2.6 |
openrouter/moonshotai/kimi-k2.5 |
MoonshotAI के माध्यम से Kimi K2.5 |
छवि जनरेशन
OpenRouter image_generate टूल को भी बैक कर सकता है। agents.defaults.imageGenerationModel के अंतर्गत OpenRouter छवि मॉडल का उपयोग करें:
{ env: { OPENROUTER_API_KEY: "sk-or-..." }, agents: { defaults: { imageGenerationModel: { primary: "openrouter/google/gemini-3.1-flash-image-preview", timeoutMs: 180_000, }, }, },}OpenClaw modalities: ["image", "text"] के साथ OpenRouter के चैट कम्प्लीशन्स छवि API को छवि अनुरोध भेजता है। Gemini छवि मॉडल OpenRouter के image_config के माध्यम से समर्थित aspectRatio और resolution संकेत प्राप्त करते हैं। धीमे OpenRouter छवि मॉडलों के लिए agents.defaults.imageGenerationModel.timeoutMs का उपयोग करें; image_generate टूल का प्रति-कॉल timeoutMs पैरामीटर फिर भी प्राथमिकता लेता है।
वीडियो जनरेशन
OpenRouter अपने असिंक्रोनस /videos API के माध्यम से video_generate टूल को भी बैक कर सकता है। agents.defaults.videoGenerationModel के अंतर्गत OpenRouter वीडियो मॉडल का उपयोग करें:
{ env: { OPENROUTER_API_KEY: "sk-or-..." }, agents: { defaults: { videoGenerationModel: { primary: "openrouter/google/veo-3.1-fast", }, }, },}OpenClaw टेक्स्ट-टू-वीडियो और इमेज-टू-वीडियो जॉब OpenRouter को सबमिट करता है, लौटाए गए polling_url को पोल करता है, और पूरा वीडियो OpenRouter के unsigned_urls या दस्तावेज़ित जॉब कंटेंट एंडपॉइंट से डाउनलोड करता है। संदर्भ छवियाँ डिफ़ॉल्ट रूप से पहली/आख़िरी फ़्रेम छवियों के रूप में भेजी जाती हैं; reference_image से टैग की गई छवियाँ OpenRouter इनपुट रेफ़रेंस के रूप में भेजी जाती हैं। बंडल किया गया google/veo-3.1-fast डिफ़ॉल्ट वर्तमान में समर्थित 4/6/8 सेकंड अवधि, 720P/1080P रिज़ॉल्यूशन, और 16:9/9:16 आस्पेक्ट रेशियो घोषित करता है। OpenRouter के लिए वीडियो-टू-वीडियो पंजीकृत नहीं है क्योंकि अपस्ट्रीम वीडियो जनरेशन API वर्तमान में टेक्स्ट और छवि रेफ़रेंस स्वीकार करता है।
संगीत जनरेशन
OpenRouter चैट कम्प्लीशन्स ऑडियो आउटपुट के माध्यम से music_generate टूल को भी बैक कर सकता है। agents.defaults.musicGenerationModel के अंतर्गत OpenRouter ऑडियो मॉडल का उपयोग करें:
{ env: { OPENROUTER_API_KEY: "sk-or-..." }, agents: { defaults: { musicGenerationModel: { primary: "openrouter/google/lyria-3-pro-preview", timeoutMs: 180_000, }, }, },}बंडल किया गया OpenRouter संगीत प्रदाता डिफ़ॉल्ट रूप से google/lyria-3-pro-preview का उपयोग करता है और google/lyria-3-clip-preview भी उपलब्ध कराता है। OpenClaw modalities: ["text", "audio"] भेजता है, स्ट्रीमिंग सक्षम करता है, स्ट्रीम किए गए ऑडियो चंक एकत्र करता है, और परिणाम को चैनल डिलीवरी के लिए जनरेटेड मीडिया के रूप में सहेजता है। संदर्भ छवियाँ साझा music_generate image=... पैरामीटर के माध्यम से Lyria मॉडलों के लिए स्वीकार की जाती हैं।
टेक्स्ट-टू-स्पीच
OpenRouter को उसके OpenAI-संगत /audio/speech एंडपॉइंट के माध्यम से TTS प्रदाता के रूप में भी उपयोग किया जा सकता है।
{ messages: { tts: { auto: "always", provider: "openrouter", providers: { openrouter: { model: "hexgrad/kokoro-82m", speakerVoice: "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 पर लागू होता है जो इनबाउंड वॉइस/ऑडियो को मीडिया अंडरस्टैंडिंग प्रीफ़्लाइट में फ़ॉरवर्ड करता है।
{ tools: { media: { audio: { enabled: true, models: [{ provider: "openrouter", model: "openai/whisper-large-v3-turbo" }], }, }, },}OpenClaw OpenRouter STT अनुरोधों को input_audio के अंतर्गत base64 ऑडियो वाले JSON के रूप में भेजता है (OpenRouter STT अनुबंध), multipart OpenAI फ़ॉर्म अपलोड के रूप में नहीं।
Fusion राउटर
OpenRouter Fusion का उपयोग तब करें जब आप चाहते हों कि एक OpenClaw मॉडल रेफ़ कई OpenRouter मॉडलों से समानांतर में पूछे, OpenRouter उनके उत्तरों का मूल्यांकन करे, और सामान्य OpenRouter प्रदाता एंडपॉइंट के माध्यम से एक अंतिम प्रतिक्रिया लौटाए। क्योंकि अपस्ट्रीम मॉडल स्लग openrouter/fusion है, OpenClaw मॉडल रेफ़ में OpenClaw प्रदाता प्रीफ़िक्स और अपस्ट्रीम OpenRouter नेमस्पेस दोनों शामिल होते हैं:
openclaw models set openrouter/openrouter/fusionFusion का पैनल और जज मॉडल के params.extraBody के माध्यम से कॉन्फ़िगर करें। ये फ़ील्ड OpenRouter चैट-कम्प्लीशन्स अनुरोध बॉडी में फ़ॉरवर्ड किए जाते हैं। Fusion OpenRouter OAuth ऑनबोर्डिंग या API-कुंजी ऑनबोर्डिंग, दोनों के साथ काम करता है; यदि आप OAuth का उपयोग करते हैं, तो नीचे दिए गए उदाहरण से env.OPENROUTER_API_KEY पंक्ति छोड़ दें।
{ 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 सूची समानांतर पैनल है, और Fusion Plugin कॉन्फ़िग के भीतर model जज मॉडल है। सामान्य OpenClaw एजेंट/चैट टर्न में Fusion को बाध्य करने की कोशिश में शीर्ष-स्तरीय tool_choice को "required" पर सेट न करें; OpenClaw टर्न में OpenClaw टूल परिभाषाएँ शामिल हो सकती हैं, और शीर्ष-स्तरीय आवश्यक टूल चयन Fusion राउटर के बजाय उन टूल में से किसी एक की आवश्यकता पैदा कर सकता है। जब यह Fusion Plugin कॉन्फ़िग मौजूद होता है, तो OpenClaw कॉन्फ़िगर किए गए विश्लेषण मॉडलों और जज मॉडल के साथ एक सैनिटाइज़्ड सिस्टम-प्रॉम्प्ट नोट भी जोड़ता है, ताकि एजेंट अपने वर्तमान Fusion पैनल के बारे में प्रश्नों का उत्तर दे सके। अन्य extraBody फ़ील्ड प्रॉम्प्ट में कॉपी नहीं किए जाते।
Fusion डिज़ाइन के अनुसार धीमा है। OpenRouter वही OpenClaw प्रॉम्प्ट कई विश्लेषण मॉडलों को भेज सकता है और फिर अंतिम जज/सिंथेसिस चरण चला सकता है, इसलिए विलंबता आमतौर पर सीधे एकल-मॉडल अनुरोध से अधिक होती है। Fusion का उपयोग विचारपूर्ण, उच्च-गुणवत्ता वाले उत्तरों या एस्केलेशन पथों के लिए करें, विलंबता-संवेदनशील चैट के लिए डिफ़ॉल्ट के रूप में नहीं। तेज़ प्रतिक्रियाओं के लिए, पैनल छोटा रखें और तेज़ विश्लेषण तथा जज मॉडल चुनें।
कॉन्फ़िगर किए गए रेफ़ को एक-शॉट स्थानीय मॉडल कॉल से टेस्ट करें:
openclaw infer model run --local \ --model openrouter/openrouter/fusion \ --prompt "Reply with exactly: FUSION_OK" \ --jsonप्रमाणीकरण और हेडर
OpenRouter अंदरूनी रूप से आपकी API कुंजी के साथ Bearer टोकन का उपयोग करता है। OpenRouter OAuth एक PKCE लॉगिन फ़्लो है जो OpenRouter API कुंजी जारी करता है, इसलिए OpenClaw परिणाम को उसी openrouter:default API-कुंजी ऑथ प्रोफ़ाइल के रूप में संग्रहीत करता है जिसका उपयोग मैनुअल API-कुंजी सेटअप पथ करता है।
मौजूदा इंस्टॉल के लिए, पूर्ण ऑनबोर्डिंग दोबारा चलाए बिना साइन इन करें या संग्रहीत OpenRouter कुंजी रोटेट करें:
openclaw models auth login --provider openrouter --method oauthजब आप OpenRouter पर मैन्युअल रूप से बनाई गई कुंजी पेस्ट करना चाहते हों, तो openclaw models auth login --provider openrouter --method api-key का उपयोग करें।
वास्तविक 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 मॉडल सक्षम करें:
{ 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) भी स्वीकार किए जाते हैं।
यह प्रदाता प्रॉम्प्ट कैशिंग और OpenRouter के Anthropic cache_control मार्करों से अलग है। यह केवल सत्यापित openrouter.ai रूटों पर लागू होता है, कस्टम प्रॉक्सी बेस URL पर नहीं।
Anthropic कैश मार्कर
सत्यापित OpenRouter रूटों पर, Anthropic मॉडल रेफ़ OpenRouter-विशिष्ट Anthropic cache_control मार्कर बनाए रखते हैं, जिनका उपयोग OpenClaw सिस्टम/डेवलपर प्रॉम्प्ट ब्लॉकों पर बेहतर प्रॉम्प्ट-कैश पुन: उपयोग के लिए करता है।
Anthropic reasoning प्रीफिल
सत्यापित OpenRouter रूट्स पर, reasoning सक्षम Anthropic मॉडल संदर्भ अनुरोध के OpenRouter तक पहुंचने से पहले अंतिम assistant प्रीफिल टर्न्स हटा देते हैं, जो Anthropic की इस आवश्यकता से मेल खाता है कि reasoning वार्तालाप user टर्न पर समाप्त हों।
Thinking / reasoning इंजेक्शन
समर्थित गैर-auto रूट्स पर, OpenClaw चयनित thinking स्तर को
OpenRouter प्रॉक्सी reasoning पेलोड्स में मैप करता है। असमर्थित मॉडल संकेत और
openrouter/auto उस reasoning इंजेक्शन को छोड़ देते हैं। Hunter Alpha पुराने
कॉन्फ़िगर किए गए मॉडल संदर्भों के लिए प्रॉक्सी reasoning भी छोड़ देता है क्योंकि OpenRouter
उस सेवानिवृत्त रूट के लिए reasoning फ़ील्ड्स में अंतिम उत्तर टेक्स्ट लौटा सकता है।
DeepSeek V4 reasoning रीप्ले
सत्यापित OpenRouter रूट्स पर, openrouter/deepseek/deepseek-v4-flash और
openrouter/deepseek/deepseek-v4-pro रीप्ले किए गए assistant टर्न्स पर
अनुपस्थित reasoning_content भरते हैं ताकि thinking/tool वार्तालाप DeepSeek V4 के
आवश्यक फ़ॉलो-अप आकार को बनाए रखें। OpenClaw इन रूट्स के लिए OpenRouter-समर्थित
reasoning_effort मान भेजता है; xhigh सबसे ऊंचा विज्ञापित
स्तर है, और पुराने max ओवरराइड्स को xhigh पर मैप किया जाता है।
केवल OpenAI अनुरोध आकार-निर्धारण
OpenRouter अभी भी प्रॉक्सी-शैली OpenAI-संगत पथ से चलता है, इसलिए
मूल केवल OpenAI अनुरोध आकार-निर्धारण जैसे serviceTier, Responses store,
OpenAI reasoning-संगत पेलोड्स, और प्रॉम्प्ट-कैश संकेत आगे नहीं भेजे जाते।
Gemini-समर्थित रूट्स
Gemini-समर्थित OpenRouter संदर्भ प्रॉक्सी-Gemini पथ पर रहते हैं: OpenClaw वहां Gemini thought-signature स्वच्छता बनाए रखता है, लेकिन मूल Gemini रीप्ले सत्यापन या bootstrap पुनर्लेखन सक्षम नहीं करता।
Provider रूटिंग मेटाडेटा
OpenRouter अंतर्निहित provider रूटिंग के लिए provider अनुरोध ऑब्जेक्ट का समर्थन करता है।
सभी OpenRouter टेक्स्ट-मॉडल अनुरोधों के लिए डिफ़ॉल्ट नीति
models.providers.openrouter.params.provider से कॉन्फ़िगर करें:
{ models: { providers: { openrouter: { params: { provider: { sort: "latency", require_parameters: true, data_collection: "deny", }, }, }, }, },}OpenClaw उस ऑब्जेक्ट को अनुरोध provider पेलोड के रूप में OpenRouter को आगे भेजता है।
OpenRouter के प्रलेखित snake_case फ़ील्ड्स का उपयोग करें, जिनमें sort,
only, ignore, order, allow_fallbacks, require_parameters,
data_collection, quantizations, max_price, preferred_max_latency,
preferred_min_throughput, zdr, और enforce_distillable_text शामिल हैं।
प्रति-मॉडल params अभी भी provider-व्यापी रूटिंग ऑब्जेक्ट को ओवरराइड करते हैं:
{ agents: { defaults: { models: { "openrouter/anthropic/claude-sonnet-4-6": { params: { provider: { order: ["anthropic"], allow_fallbacks: false, }, }, }, }, }, },}यह केवल OpenRouter chat-completions रूट्स पर लागू होता है। प्रत्यक्ष Anthropic, Google, OpenAI, या कस्टम provider रूट्स OpenRouter रूटिंग params को अनदेखा करते हैं।