अनुरोध सामान्य Gateway एजेंट रन के रूप में चलते हैं (
openclaw agent के समान कोडपाथ), इसलिए रूटिंग, अनुमतियाँ और कॉन्फ़िगरेशन आपके Gateway से मेल खाते हैं।
एंडपॉइंट सक्षम करना
enabled: false सेट करें (या इसे छोड़ दें)।
सुरक्षा सीमा (महत्वपूर्ण)
इस एंडपॉइंट को Gateway इंस्टेंस की पूर्ण ऑपरेटर पहुँच मानें:- इस एंडपॉइंट के लिए मान्य Gateway टोकन/पासवर्ड किसी सीमित प्रति-उपयोगकर्ता दायरे के बजाय स्वामी/ऑपरेटर क्रेडेंशियल के समतुल्य है।
- अनुरोध विश्वसनीय ऑपरेटर कार्रवाइयों वाले उसी कंट्रोल-प्लेन एजेंट पथ से चलते हैं, इसलिए यदि लक्षित एजेंट की नीति संवेदनशील टूल की अनुमति देती है, तो यह एंडपॉइंट उनका उपयोग कर सकता है।
- इसे केवल लूपबैक/टेलनेट/निजी इनग्रेस पर रखें। इसे सार्वजनिक इंटरनेट पर उजागर न करें।
ऑपरेटर दायरे, सुरक्षा, और दूरस्थ पहुँच देखें।
प्रमाणीकरण
Gateway प्रमाणीकरण कॉन्फ़िगरेशन का उपयोग करता है (उस मोड के विवरण के लिए विश्वसनीय प्रॉक्सी प्रमाणीकरण देखें):
टिप्पणियाँ:
trusted-proxyGateway पर प्रॉक्सी को बायपास करने वाले समान-होस्ट कॉलर सीधेgateway.auth.password/OPENCLAW_GATEWAY_PASSWORDका उपयोग कर सकते हैं। इसके बजाय किसी भीForwarded,X-Forwarded-*, याX-Real-IPहेडर का प्रमाण अनुरोध को विश्वसनीय-प्रॉक्सी पथ पर बनाए रखता है।- यदि
gateway.auth.rateLimitकॉन्फ़िगर किया गया है और बहुत अधिक प्रमाणीकरण प्रयास विफल होते हैं, तो एंडपॉइंटRetry-Afterहेडर के साथ429लौटाता है।
इस एंडपॉइंट का उपयोग कब करें
- यदि आपका इंटीग्रेशन उसी Gateway के लिए केवल एक अन्य ऑपरेटर/क्लाइंट सरफेस है, तो नया अंतर्निहित चैनल जोड़ने के बजाय इसे प्राथमिकता दें।
- दूरस्थ Gateway से सीधे कनेक्ट होने वाले नेटिव मोबाइल क्लाइंट के लिए, युग्मित-डिवाइस बूटस्ट्रैप/डिवाइस-टोकन प्रवाह के साथ WebChat या Gateway प्रोटोकॉल को प्राथमिकता दें, ताकि डिवाइस को साझा HTTP टोकन/पासवर्ड की आवश्यकता न हो।
- इसके बजाय चैनल Plugin तब बनाएँ, जब किसी ऐसे बाहरी मैसेजिंग नेटवर्क को इंटीग्रेट कर रहे हों जिसके अपने उपयोगकर्ता, रूम, Webhook डिलीवरी या आउटबाउंड ट्रांसपोर्ट हों। Plugin बनाना देखें।
एजेंट-प्रथम मॉडल अनुबंध
OpenClaw, OpenAI केmodel फ़ील्ड को रॉ प्रदाता मॉडल आईडी नहीं, बल्कि एजेंट लक्ष्य मानता है।
वैकल्पिक अनुरोध हेडर:
/v1/models शीर्ष-स्तरीय एजेंट लक्ष्य (openclaw, openclaw/default, openclaw/<agentId>) सूचीबद्ध करता है, बैकएंड प्रदाता मॉडल या उप-एजेंट नहीं; उप-एजेंट आंतरिक निष्पादन टोपोलॉजी बने रहते हैं। यदि आप x-openclaw-model छोड़ देते हैं, तो चयनित एजेंट अपने सामान्य कॉन्फ़िगर किए गए मॉडल के साथ चलता है।
/v1/embeddings समान एजेंट-लक्ष्य model आईडी का उपयोग करता है। किसी विशिष्ट एम्बेडिंग मॉडल को चुनने के लिए x-openclaw-model भेजें (साझा-सीक्रेट कॉलर से, या operator.admin वाले पहचान-सहित कॉलर से); अन्यथा अनुरोध चयनित एजेंट के सामान्य एम्बेडिंग सेटअप का उपयोग करता है।
सत्र व्यवहार
डिफ़ॉल्ट रूप से एंडपॉइंट प्रति अनुरोध स्टेटलेस होता है (प्रत्येक कॉल पर नई सत्र कुंजी जनरेट होती है)। यदि अनुरोध में OpenAI कीuser स्ट्रिंग शामिल है, तो Gateway उससे एक स्थिर सत्र कुंजी प्राप्त करता है, ताकि दोहराई गई कॉल एक एजेंट सत्र साझा कर सकें। कस्टम ऐप के लिए, प्रत्येक वार्तालाप थ्रेड में समान user मान का पुनः उपयोग करें; खाता-स्तरीय पहचानकर्ताओं से बचें, जब तक आप एक OpenClaw सत्र को कई वार्तालापों/डिवाइसों के बीच साझा नहीं करना चाहते। x-openclaw-session-key का उपयोग केवल तभी करें, जब आपको कई क्लाइंट/थ्रेड में स्पष्ट रूटिंग नियंत्रण की आवश्यकता हो; इसके लिए ऐप्लिकेशन-स्वामित्व वाली ऐसी कुंजियाँ उपयोग करें जो ऊपर दिए गए आरक्षित नेमस्पेस से बचें।
अनुरोध सीमाएँ
एंडपॉइंट प्रति अनुरोध बॉडी के लिए 20 MB, नवीनतम उपयोगकर्ता संदेश से 8image_url
भाग और संचयी डीकोड किए गए चित्र
डेटा के लिए 20 MB की अंतर्निहित सीमाओं का उपयोग करता है। चित्र स्रोत नीति
gateway.http.endpoints.chatCompletions.images के अंतर्गत कॉन्फ़िगर करने योग्य रहती है:
HEIC/HEIF
image_url स्रोत स्वीकार किए जाते हैं और साझा OpenClaw चित्र प्रोसेसर (Rastermill) के माध्यम से प्रदाता को भेजने से पहले JPEG में सामान्यीकृत किए जाते हैं; बाहरी कोडेक समर्थन की आवश्यकता वाले प्रारूपों के लिए यह सिस्टम कन्वर्टर (sips, ImageMagick, GraphicsMagick, या ffmpeg) का उपयोग करता है।
सुरक्षा टिप्पणी: किसी होस्टनाम को अनुमति-सूची में डालने से निजी/आंतरिक IP अवरोधन बायपास नहीं होता। इंटरनेट पर उजागर Gateway के लिए, ऐप-स्तरीय सुरक्षा उपायों के अतिरिक्त नेटवर्क इग्रेस नियंत्रण लागू करें। सुरक्षा देखें।
चैट टूल अनुबंध
/v1/chat/completions सामान्य OpenAI Chat क्लाइंट के साथ संगत फ़ंक्शन-टूल उपसमुच्चय का समर्थन करता है।
समर्थित अनुरोध फ़ील्ड
सभी सैंपलिंग और टोकन-सीमा फ़ील्ड एक ही एजेंट स्ट्रीम-पैरामीटर चैनल से जाते हैं और सर्वोत्तम प्रयास के आधार पर अग्रेषित किए जाते हैं:
- टोकन सीमा: वायर फ़ील्ड का नाम प्रदाता ट्रांसपोर्ट द्वारा चुना जाता है: OpenAI-परिवार के एंडपॉइंट के लिए
max_completion_tokens, और केवल लीगेसी नाम स्वीकार करने वाले प्रदाताओं (Mistral, Chutes) के लिएmax_tokens। stopको ट्रांसपोर्ट के स्टॉप फ़ील्ड से मैप किया जाता है: Chat Completions बैकएंड के लिएstop, Anthropic के लिएstop_sequences। OpenAI Responses API में कोई स्टॉप पैरामीटर नहीं है, इसलिए Responses-आधारित मॉडल परstopलागू नहीं किया जाता।- ChatGPT-आधारित Codex Responses बैकएंड निश्चित सर्वर-साइड सैंपलिंग का उपयोग करता है और अनुरोध के उस बैकएंड तक पहुँचने से पहले
temperature/top_p(साथ हीmax_output_tokens,metadata,prompt_cache_retention,service_tier) को हटा देता है।
असमर्थित वैरिएंट
निम्न के लिए400 invalid_request_error लौटाता है:
- गैर-सरणी
tools, गैर-फ़ंक्शन टूल प्रविष्टियाँ, या अनुपस्थितtool.function.name tool_choiceवैरिएंट, जैसेallowed_toolsऔरcustomtool_choice.function.nameमान जो दिए गए टूल से मेल नहीं खाते
tool_choice: "required" और फ़ंक्शन-पिन किए गए tool_choice के लिए, एंडपॉइंट उपलब्ध कराए गए क्लाइंट फ़ंक्शन-टूल सेट को सीमित करता है, रनटाइम को उत्तर देने से पहले क्लाइंट टूल कॉल करने का निर्देश देता है, और यदि एजेंट की प्रतिक्रिया में कोई मेल खाता संरचित क्लाइंट-टूल कॉल न हो तो त्रुटि देता है। यह कॉलर द्वारा दी गई HTTP tools सूची पर लागू होता है, प्रत्येक आंतरिक OpenClaw एजेंट टूल पर नहीं।
गैर-स्ट्रीमिंग टूल प्रतिक्रिया का स्वरूप
जब एजेंट टूल कॉल करता है, तो प्रतिक्रिया में इसका उपयोग होता है:choices[0].finish_reason = "tool_calls"choices[0].message.tool_calls[]प्रविष्टियाँ जिनमेंid,type: "function",function.name,function.arguments(JSON स्ट्रिंग) होते हैं- टूल कॉल से पहले सहायक की टिप्पणी,
choices[0].message.contentमें (संभवतः खाली)
स्ट्रीमिंग टूल प्रतिक्रिया का स्वरूप
जबstream: true, टूल कॉल वृद्धिशील SSE चंक के रूप में आते हैं: एक प्रारंभिक सहायक भूमिका डेल्टा, वैकल्पिक सहायक टिप्पणी डेल्टा, टूल की पहचान और आर्ग्युमेंट अंशों वाले एक या अधिक delta.tool_calls चंक, फिर finish_reason: "tool_calls" और data: [DONE] वाला अंतिम चंक।
यदि stream_options.include_usage=true, तो [DONE] से पहले अंतिम उपयोग चंक उत्सर्जित किया जाता है।
टूल अनुवर्ती लूप
tool_calls प्राप्त करने के बाद, अनुरोधित फ़ंक्शन निष्पादित करें और एक अनुवर्ती अनुरोध भेजें जिसमें पिछला सहायक टूल-कॉल संदेश और मेल खाते tool_call_id वाले एक या अधिक role: "tool" संदेश शामिल हों। यह अंतिम उत्तर देने के लिए उसी एजेंट रीज़निंग लूप को जारी रखता है।
स्ट्रीमिंग (SSE)
Server-Sent Events प्राप्त करने के लिएstream: true सेट करें:
Content-Type: text/event-stream- प्रत्येक इवेंट पंक्ति
data: <json>होती है - स्ट्रीम
data: [DONE]के साथ समाप्त होती है
Open WebUI का त्वरित सेटअप
- बेस URL:
http://127.0.0.1:18789/v1 - macOS पर Docker का बेस URL:
http://host.docker.internal:18789/v1 - API कुंजी: आपका Gateway बेयरर टोकन
- मॉडल:
openclaw/default
GET /v1/models, openclaw/default को सूचीबद्ध करता है, और Open WebUI इसे चैट मॉडल आईडी के रूप में उपयोग करता है। किसी विशिष्ट बैकएंड प्रदाता/मॉडल के लिए, एजेंट का सामान्य डिफ़ॉल्ट मॉडल सेट करें या x-openclaw-model भेजें (साझा-सीक्रेट कॉलर, या operator.admin वाला पहचान-धारी कॉलर)।
त्वरित स्मोक परीक्षण:
openclaw/default लौटाता है, तो अधिकांश Open WebUI सेटअप उसी बेस URL और टोकन से कनेक्ट हो सकते हैं।
उदाहरण
एक ऐप वार्तालाप के लिए स्थिर सत्र:user मान दोबारा उपयोग करें।
गैर-स्ट्रीमिंग:
/v1/embeddings, input को स्ट्रिंग या स्ट्रिंग की सरणी के रूप में समर्थित करता है।