CLI commands
Gateway
Gateway هو خادم WebSocket الخاص بـ OpenClaw (القنوات، العُقد، الجلسات، الخطافات). توجد الأوامر الفرعية في هذه الصفحة ضمن openclaw gateway ….
إعداد mDNS محلي + DNS-SD واسع النطاق.
كيف يعلن OpenClaw عن البوابات ويعثر عليها.
مفاتيح إعداد Gateway ذات المستوى الأعلى.
تشغيل Gateway
شغّل عملية Gateway محلية:
openclaw gatewayاسم مستعار للتشغيل في الواجهة الأمامية:
openclaw gateway runسلوك بدء التشغيل
- افتراضيًا، يرفض Gateway البدء ما لم يتم تعيين
gateway.mode=localفي~/.openclaw/openclaw.json. استخدم--allow-unconfiguredلعمليات التشغيل المؤقتة/التطويرية. - من المتوقع أن يكتب
openclaw onboard --mode localوopenclaw setupالقيمةgateway.mode=local. إذا كان الملف موجودًا لكنgateway.modeمفقود، فتعامل مع ذلك كإعداد معطوب أو تم استبداله وأصلحه بدلًا من افتراض الوضع المحلي ضمنيًا. - إذا كان الملف موجودًا و
gateway.modeمفقود، يتعامل Gateway مع ذلك كضرر مشبوه في الإعدادات ويرفض "تخمين المحلي" نيابةً عنك. - يتم حظر الربط خارج loopback من دون مصادقة (حاجز أمان).
- يتم حاليًا حل
lanوtailnetوcustomعبر مسارات BYOH تعمل بـ IPv4 فقط. - لا يُدعم BYOH المعتمد على IPv6 فقط بشكل أصلي في هذا المسار اليوم. استخدم مكوّنًا جانبيًا أو وكيلًا لـ IPv4 إذا كان المضيف نفسه يعمل بـ IPv6 فقط.
- يطلق
SIGUSR1إعادة تشغيل داخل العملية عند التفويض (commands.restartمفعّل افتراضيًا؛ عيّنcommands.restart: falseلحظر إعادة التشغيل اليدوية، مع بقاء تطبيق/تحديث أداة Gateway وإعداداته مسموحًا). - توقف معالجات
SIGINT/SIGTERMعملية Gateway، لكنها لا تستعيد أي حالة طرفية مخصصة. إذا غلّفت CLI باستخدام TUI أو إدخال بوضع خام، فاستعد الطرفية قبل الخروج.
الخيارات
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tcG9ydCA8cG9ydA
" type="number">
منفذ WebSocket (تأتي القيمة الافتراضية من الإعدادات/البيئة؛ عادةً 18789).
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tYmluZCA8bG9vcGJhY2t8bGFufHRhaWxuZXR8YXV0b3xjdXN0b20
" type="string">
وضع ربط المستمع. يتم حاليًا حل lan وtailnet وcustom عبر مسارات تعمل بـ IPv4 فقط.
"--authOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tdG9rZW4gPHRva2Vu
" type="string">
تجاوز الرمز المميز (يعيّن أيضًا OPENCLAW_GATEWAY_TOKEN للعملية).
"--password"--tailscale--tailscale-reset-on-exitbooleanإعادة تعيين إعداد Tailscale serve/funnel عند إيقاف التشغيل.
--bind custom + gateway.customBindHoststringيتوقع عنوان IPv4 اليوم. بالنسبة إلى BYOH المعتمد على IPv6 فقط، ضع مكوّنًا جانبيًا أو وكيلًا لـ IPv4 أمام Gateway ووجّه OpenClaw إلى نقطة نهاية IPv4 تلك.
--allow-unconfiguredbooleanالسماح ببدء Gateway دون gateway.mode=local في الإعدادات. يتجاوز حاجز بدء التشغيل للتمهيد المؤقت/التطويري فقط؛ ولا يكتب ملف الإعدادات أو يصلحه.
--devbooleanإنشاء إعداد تطوير + مساحة عمل إذا كانا مفقودين (يتخطى BOOTSTRAP.md).
--resetbooleanإعادة تعيين إعداد التطوير + بيانات الاعتماد + الجلسات + مساحة العمل (يتطلب --dev).
--forcebooleanإنهاء أي مستمع موجود على المنفذ المحدد قبل البدء.
--verbosebooleanسجلات مفصلة.
--cli-backend-logsbooleanإظهار سجلات الواجهة الخلفية لـ CLI فقط في وحدة التحكم (وتفعيل stdout/stderr).
"--ws-log--compactbooleanاسم مستعار لـ --ws-log compact.
--raw-streambooleanتسجيل أحداث تدفق النموذج الخام إلى jsonl.
إعادة تشغيل Gateway
openclaw gateway restartopenclaw gateway restart --safeopenclaw gateway restart --safe --skip-deferralopenclaw gateway restart --forceيطلب openclaw gateway restart --safe من Gateway العامل إجراء فحص تمهيدي للعمل النشط وجدولة إعادة تشغيل واحدة مدمجة بعد تصريف العمل النشط. تنتظر إعادة التشغيل الآمنة الافتراضية العمل النشط حتى مدة gateway.reload.deferralTimeoutMs المضبوطة (الافتراضي 5 دقائق)؛ وعند انتهاء تلك الميزانية تُفرض إعادة التشغيل. عيّن gateway.reload.deferralTimeoutMs إلى 0 لانتظار آمن غير محدد لا يفرض أبدًا. يحافظ restart العادي على سلوك مدير الخدمة الحالي؛ ويظل --force مسار التجاوز الفوري.
يشغّل openclaw gateway restart --safe --skip-deferral إعادة التشغيل المنسقة نفسها الواعية بـ OpenClaw مثل --safe، لكنه يتجاوز بوابة تأجيل العمل النشط بحيث يصدر Gateway إعادة التشغيل فورًا حتى عند الإبلاغ عن عوائق. استخدمه كمخرج طوارئ للمشغّل عندما يكون التأجيل مثبتًا بسبب تشغيل مهمة عالق وقد يكون --safe وحده مقيدًا بـ gateway.reload.deferralTimeoutMs. يتطلب --skip-deferral الخيار --safe.
تحليل أداء Gateway
- عيّن
OPENCLAW_GATEWAY_STARTUP_TRACE=1لتسجيل توقيتات المراحل أثناء بدء Gateway، بما في ذلك تأخيرeventLoopMaxلكل مرحلة وتوقيتات جداول بحث Plugin للفهرس المثبت وسجل البيان وتخطيط بدء التشغيل وعمل خريطة المالك. - عيّن
OPENCLAW_GATEWAY_RESTART_TRACE=1لتسجيل أسطرrestart trace:الخاصة بإعادة التشغيل لمعالجة إشارة إعادة التشغيل، وتصريف العمل النشط، ومراحل الإيقاف، والبدء التالي، وتوقيت الجاهزية، ومقاييس الذاكرة. - عيّن
OPENCLAW_DIAGNOSTICS=timelineمعOPENCLAW_DIAGNOSTICS_TIMELINE_PATH=<path>لكتابة مخطط زمني لتشخيصات بدء التشغيل بصيغة JSONL وبأفضل جهد لأطر QA الخارجية. يمكنك أيضًا تفعيل العلامة باستخدامdiagnostics.flags: ["timeline"]في الإعدادات؛ يظل المسار مقدمًا عبر البيئة. أضفOPENCLAW_DIAGNOSTICS_EVENT_LOOP=1لتضمين عينات حلقة الأحداث. - شغّل
pnpm buildأولًا، ثمpnpm test:startup:gateway -- --runs 5 --warmup 1لقياس بدء Gateway مقابل مدخل CLI المبني. يسجل القياس أول مخرجات العملية، و/healthz، و/readyz، وتوقيتات تتبع بدء التشغيل، وتأخير حلقة الأحداث، وتفاصيل توقيت جدول بحث Plugin. - شغّل
pnpm buildأولًا، ثمpnpm test:restart:gateway -- --case skipChannels --runs 1 --restarts 5لقياس إعادة تشغيل Gateway داخل العملية مقابل مدخل CLI المبني على macOS أو Linux. يستخدم قياس إعادة التشغيل SIGUSR1، ويفعّل تتبعي بدء التشغيل وإعادة التشغيل في العملية الفرعية، ويسجل/healthzالتالي، و/readyzالتالي، ووقت التعطل، وتوقيت الجاهزية، وCPU، وRSS، ومقاييس تتبع إعادة التشغيل. - تعامل مع
/healthzكمؤشر حياة و/readyzكجاهزية قابلة للاستخدام. أسطر التتبع ومخرجات القياس مخصصة لإسناد الملكية؛ لا تعتبر امتداد تتبع واحدًا أو عينة واحدة استنتاجًا كاملًا عن الأداء.
الاستعلام عن Gateway قيد التشغيل
تستخدم جميع أوامر الاستعلام WebSocket RPC.
أوضاع الإخراج
- الافتراضي: مقروء للبشر (ملون في TTY).
--json: JSON مقروء آليًا (دون تنسيق/مؤشر دوران).--no-color(أوNO_COLOR=1): تعطيل ANSI مع الحفاظ على تخطيط العرض البشري.
الخيارات المشتركة
--url <url>: عنوان URL لـ WebSocket الخاص بـ Gateway.--token <token>: رمز Gateway.--password <password>: كلمة مرور Gateway.--timeout <ms>: المهلة/الميزانية (تختلف حسب الأمر).--expect-final: انتظار استجابة "نهائية" (استدعاءات الوكيل).
gateway health
openclaw gateway health --url ws://127.0.0.1:18789openclaw gateway health --port 18789نقطة نهاية HTTP /healthz هي مسبار حياة: تعود بمجرد أن يستطيع الخادم الإجابة عبر HTTP. نقطة نهاية HTTP /readyz أكثر صرامة وتظل حمراء بينما لا تزال مكونات Plugin الجانبية عند بدء التشغيل أو القنوات أو الخطافات المضبوطة في طور الاستقرار. تتضمن استجابات الجاهزية التفصيلية المحلية أو المصادق عليها كتلة تشخيص eventLoop مع تأخير حلقة الأحداث، واستخدام حلقة الأحداث، ونسبة أنوية CPU، وعلامة degraded.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tcG9ydCA8cG9ydA
" type="number">
استهدف local loopback Gateway على هذا المنفذ. يتجاوز هذا OPENCLAW_GATEWAY_URL وOPENCLAW_GATEWAY_PORT لاستدعاء الصحة.
gateway usage-cost
اجلب ملخصات تكلفة الاستخدام من سجلات الجلسات.
openclaw gateway usage-costopenclaw gateway usage-cost --days 7openclaw gateway usage-cost --agent work --jsonopenclaw gateway usage-cost --all-agentsopenclaw gateway usage-cost --json"--days"--agent--all-agentsbooleanتجميع ملخص التكلفة عبر جميع الوكلاء المضبوطين. لا يمكن دمجه مع --agent.
gateway stability
اجلب مسجل الاستقرار التشخيصي الأخير من Gateway قيد التشغيل.
openclaw gateway stabilityopenclaw gateway stability --type payload.largeopenclaw gateway stability --bundle latestopenclaw gateway stability --bundle latest --exportopenclaw gateway stability --jsonOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tbGltaXQgPGxpbWl0
" type="number" default="25">
الحد الأقصى لعدد الأحداث الأخيرة المراد تضمينها (الحد الأقصى 1000).
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tdHlwZSA8dHlwZQ
" type="string">
التصفية حسب نوع الحدث التشخيصي، مثل payload.large أو diagnostic.memory.pressure.
"--since-seq--bundle [path]stringقراءة حزمة استقرار محفوظة بدلًا من استدعاء Gateway قيد التشغيل. استخدم --bundle latest (أو فقط --bundle) لأحدث حزمة ضمن دليل الحالة، أو مرّر مسار JSON لحزمة مباشرة.
--exportbooleanكتابة ملف zip لتشخيصات دعم قابلة للمشاركة بدلًا من طباعة تفاصيل الاستقرار.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tb3V0cHV0IDxwYXRo
" type="string">
مسار الإخراج لـ --export.
الخصوصية وسلوك الحزم
- تحتفظ السجلات بالبيانات الوصفية التشغيلية: أسماء الأحداث، والأعداد، وأحجام البايتات، وقراءات الذاكرة، وحالة قائمة الانتظار/الجلسة، ومعرّفات الموافقة، وأسماء القنوات/Plugin، وملخصات الجلسات المنقحة. لا تحتفظ بنص المحادثة، أو أجسام Webhook، أو مخرجات الأدوات، أو أجسام الطلب أو الاستجابة الخام، أو الرموز، أو ملفات تعريف الارتباط، أو القيم السرية، أو أسماء المضيفين، أو معرّفات الجلسات الخام. عيّن
diagnostics.enabled: falseلتعطيل المسجل بالكامل. - عند خروج Gateway الفادح، ومهل الإيقاف، وفشل بدء التشغيل بعد إعادة التشغيل، يكتب OpenClaw اللقطة التشخيصية نفسها إلى
~/.openclaw/logs/stability/openclaw-stability-*.jsonعندما تكون لدى المسجل أحداث. افحص أحدث حزمة باستخدامopenclaw gateway stability --bundle latest؛ تنطبق--limitو--typeو--since-seqأيضًا على إخراج الحزمة.
gateway diagnostics export
اكتب ملف zip محليًا للتشخيصات مصممًا لإرفاقه بتقارير الأخطاء. لنموذج الخصوصية ومحتويات الحزمة، راجع تصدير التشخيصات.
openclaw gateway diagnostics exportopenclaw gateway diagnostics export --output openclaw-diagnostics.zipopenclaw gateway diagnostics export --json"--log-lines"--log-bytes"--url"--token"--password"--timeout--no-stability-bundlebooleanتخطَّ البحث عن حزمة الاستقرار المحفوظة.
--jsonbooleanاطبع المسار المكتوب والحجم والبيان بصيغة JSON.
يحتوي التصدير على بيان وملخص Markdown وشكل الإعدادات وتفاصيل إعدادات منقّاة وملخصات سجلات منقّاة ولقطات حالة/سلامة Gateway منقّاة وأحدث حزمة استقرار عند وجودها.
الغرض منه هو مشاركته. يحتفظ بتفاصيل تشغيلية تساعد في التصحيح، مثل حقول سجلات OpenClaw الآمنة وأسماء الأنظمة الفرعية ورموز الحالة والمدد والأوضاع المضبوطة والمنافذ ومعرّفات Plugin ومعرّفات المزوّدين وإعدادات الميزات غير السرية ورسائل السجل التشغيلية المنقّحة. ويحذف أو ينقّح نصوص المحادثات ونصوص webhook ومخرجات الأدوات وبيانات الاعتماد وملفات تعريف الارتباط ومعرّفات الحسابات/الرسائل ونصوص المطالبات/التعليمات وأسماء المضيفين والقيم السرية. عندما تبدو رسالة بأسلوب LogTape كنص حمولة مستخدم/محادثة/أداة، يحتفظ التصدير فقط بأن رسالة حُذفت مع عدد بايتاتها.
gateway status
يعرض gateway status خدمة Gateway (launchd/systemd/schtasks) مع فحص اختياري لقدرة الاتصال/المصادقة.
openclaw gateway statusopenclaw gateway status --jsonopenclaw gateway status --require-rpc"--url"--token"--password"--timeout--no-probebooleanتخطَّ فحص الاتصال (عرض الخدمة فقط).
--deepbooleanافحص خدمات مستوى النظام أيضًا.
--require-rpcbooleanارفع فحص الاتصال الافتراضي إلى فحص قراءة واخرج برمز غير صفري عند فشل فحص القراءة هذا. لا يمكن دمجه مع --no-probe.
دلالات الحالة
- يظل
gateway statusمتاحًا للتشخيص حتى عندما تكون إعدادات CLI المحلية مفقودة أو غير صالحة. - يثبت
gateway statusالافتراضي حالة الخدمة واتصال WebSocket وقدرة المصادقة المرئية وقت المصافحة. ولا يثبت عمليات القراءة/الكتابة/الإدارة. - فحوص التشخيص غير مُغيِّرة لمصادقة الجهاز لأول مرة: فهي تعيد استخدام رمز جهاز مخبأ موجود عند توفره، لكنها لا تنشئ هوية جهاز CLI جديدة أو سجل اقتران جهاز للقراءة فقط لمجرد التحقق من الحالة.
- يحل
gateway statusمراجع SecretRefs الخاصة بالمصادقة المضبوطة لمصادقة الفحص عندما يكون ذلك ممكنًا. - إذا تعذر حل SecretRef مطلوب للمصادقة في مسار هذا الأمر، يبلّغ
gateway status --jsonعنrpc.authWarningعند فشل اتصال/مصادقة الفحص؛ مرّر--token/--passwordصراحةً أو عالج مصدر السر أولًا. - إذا نجح الفحص، تُكتم تحذيرات مرجع المصادقة غير المحلول لتجنب النتائج الإيجابية الكاذبة.
- عند تفعيل الفحص، يتضمن خرج JSON
gateway.versionعندما يبلّغ Gateway الجاري عنه؛ يمكن لـ--require-rpcالرجوع إلى حمولة RPC status.runtimeVersionإذا لم يستطع فحص المصافحة اللاحق توفير بيانات تعريف الإصدار. - استخدم
--require-rpcفي السكربتات والأتمتة عندما لا تكفي خدمة تستمع وتحتاج أيضًا إلى أن تكون استدعاءات RPC بنطاق القراءة سليمة. - يضيف
--deepفحصًا بأفضل جهد لعمليات تثبيت launchd/systemd/schtasks الإضافية. عند اكتشاف عدة خدمات شبيهة بـ gateway، يطبع الخرج البشري تلميحات تنظيف ويحذر من أن معظم الإعدادات يجب أن تشغّل gateway واحدًا لكل جهاز. - يبلّغ
--deepأيضًا عن تسليم حديث لإعادة تشغيل مشرف Gateway عندما تخرج عملية الخدمة بنظافة لإعادة تشغيل مشرف خارجي. - يشغّل
--deepتحقق الإعدادات في وضع مدرك للـ Plugin (pluginValidation: "full") ويعرض تحذيرات بيان Plugin المضبوط (مثل غياب بيانات تعريف إعدادات القناة) حتى تلتقطها فحوص تثبيت وتحديث smoke. يحافظgateway statusالافتراضي على مسار القراءة فقط السريع الذي يتخطى تحقق Plugin. - يتضمن الخرج البشري مسار ملف السجل المحلول مع لقطة مسارات/صلاحية إعدادات CLI مقابل الخدمة للمساعدة في تشخيص انحراف الملف الشخصي أو دليل الحالة.
فحوص انحراف مصادقة Linux systemd
- في عمليات تثبيت Linux systemd، تقرأ فحوص انحراف مصادقة الخدمة قيم
Environment=وEnvironmentFile=من الوحدة (بما في ذلك%h، والمسارات المقتبسة، والملفات المتعددة، وملفات-الاختيارية). - تحل فحوص الانحراف مراجع SecretRefs الخاصة بـ
gateway.auth.tokenباستخدام بيئة التشغيل المدمجة (بيئة أمر الخدمة أولًا، ثم بيئة العملية كرجوع احتياطي). - إذا لم تكن مصادقة الرمز فعالة فعليًا (
gateway.auth.modeصريح بقيمةpassword/none/trusted-proxy، أو الوضع غير مضبوط حيث يمكن لكلمة المرور أن تفوز ولا يمكن لأي مرشح رمز أن يفوز)، تتخطى فحوص انحراف الرمز حل رمز الإعدادات.
gateway probe
gateway probe هو أمر "تصحيح كل شيء". يفحص دائمًا:
- gateway البعيد المضبوط لديك (إن كان مضبوطًا)، و
- localhost (local loopback) حتى إذا كان البعيد مضبوطًا.
إذا مرّرت --url، تتم إضافة ذلك الهدف الصريح قبل كليهما. يضع الخرج البشري تسميات للأهداف كالتالي:
URL (explicit)Remote (configured)أوRemote (configured, inactive)Local loopback
openclaw gateway probeopenclaw gateway probe --jsonopenclaw gateway probe --port 18789OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tcG9ydCA8cG9ydA
" type="number">
استخدم هذا المنفذ لهدف فحص local loopback ومنفذ نفق SSH البعيد. من دون --url، يختار هذا هدف local loopback بدلًا من عنوان URL بيئة gateway المضبوطة أو منفذ البيئة أو الأهداف البعيدة.
التفسير
- يعني
Reachable: yesأن هدفًا واحدًا على الأقل قبل اتصال WebSocket. - يبلّغ
Capability: read-only|write-capable|admin-capable|pairing-pending|connect-onlyعما استطاع الفحص إثباته بشأن المصادقة. وهذا منفصل عن قابلية الوصول. - يعني
Read probe: okأن استدعاءات RPC التفصيلية بنطاق القراءة (health/status/system-presence/config.get) نجحت أيضًا. - يعني
Read probe: limited - missing scope: operator.readأن الاتصال نجح لكن RPC بنطاق القراءة محدود. يُبلَّغ عن ذلك كقابلية وصول متدهورة، وليس فشلًا كاملًا. - يعني
Read probe: failedبعدConnect: okأن Gateway قبل اتصال WebSocket، لكن تشخيصات القراءة اللاحقة انتهت مهلتها أو فشلت. وهذا أيضًا قابلية وصول متدهورة، وليس Gateway غير قابل للوصول. - مثل
gateway status، يعيد الفحص استخدام مصادقة الجهاز المخبأة الموجودة لكنه لا ينشئ هوية جهاز أولية أو حالة اقتران. - يكون رمز الخروج غير صفري فقط عندما لا يكون أي هدف مفحوص قابلًا للوصول.
خرج JSON
المستوى الأعلى:
ok: هدف واحد على الأقل قابل للوصول.degraded: هدف واحد على الأقل قبل اتصالًا لكنه لم يكمل تشخيصات RPC التفصيلية كاملة.capability: أفضل قدرة شوهدت عبر الأهداف القابلة للوصول (read_onlyأوwrite_capableأوadmin_capableأوpairing_pendingأوconnected_no_operator_scopeأوunknown).primaryTargetId: أفضل هدف يجب التعامل معه كالفائز النشط بهذا الترتيب: عنوان URL الصريح، ثم نفق SSH، ثم البعيد المضبوط، ثم local loopback.warnings[]: سجلات تحذير بأفضل جهد معcodeوmessageوtargetIdsاختيارية.network: تلميحات عناوين URL الخاصة بـ local loopback/tailnet المستمدة من الإعدادات الحالية وشبكات المضيف.discovery.timeoutMsوdiscovery.count: ميزانية/عدد نتائج الاكتشاف الفعلي المستخدم في مرور الفحص هذا.
لكل هدف (targets[].connect):
ok: قابلية الوصول بعد الاتصال + تصنيف التدهور.rpcOk: نجاح RPC التفصيلي الكامل.scopeLimited: فشل RPC التفصيلي بسبب غياب نطاق المشغّل.
لكل هدف (targets[].auth):
role: دور المصادقة المبلّغ عنه فيhello-okعند توفره.scopes: النطاقات الممنوحة المبلّغ عنها فيhello-okعند توفرها.capability: تصنيف قدرة المصادقة المعروض لذلك الهدف.
رموز التحذير الشائعة
ssh_tunnel_failed: فشل إعداد نفق SSH؛ رجع الأمر إلى الفحوص المباشرة.multiple_gateways: كانت هويات gateway مميزة قابلة للوصول، أو لم يستطع OpenClaw إثبات أن الأهداف القابلة للوصول هي gateway نفسه. لا يؤدي نفق SSH أو عنوان URL الخاص بالبروكسي أو عنوان URL البعيد المضبوط إلى gateway نفسه إلى تشغيل هذا التحذير.auth_secretref_unresolved: تعذر حل SecretRef لمصادقة مضبوطة لهدف فاشل.probe_scope_limited: نجح اتصال WebSocket، لكن فحص القراءة كان محدودًا بسبب غيابoperator.read.
البعيد عبر SSH (تكافؤ تطبيق Mac)
يستخدم وضع "البعيد عبر SSH" في تطبيق macOS تحويل منفذ محلي بحيث يصبح gateway البعيد (الذي قد يكون مربوطًا بـ loopback فقط) قابلًا للوصول عند ws://127.0.0.1:<port>.
مكافئ CLI:
openclaw gateway probe --ssh user@gateway-hostOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tc3NoIDx0YXJnZXQ
" type="string">
user@host أو user@host:port (يكون المنفذ افتراضيًا 22).
--ssh-autobooleanاختر أول مضيف gateway مكتشف كهدف SSH من نقطة نهاية الاكتشاف المحلولة (local. بالإضافة إلى نطاق النطاق الواسع المضبوط، إن وجد). يتم تجاهل تلميحات TXT فقط.
الإعدادات (اختيارية، تُستخدم كقيم افتراضية):
gateway.remote.sshTargetgateway.remote.sshIdentity
gateway call <method>
مساعد RPC منخفض المستوى.
openclaw gateway call statusopenclaw gateway call logs.tail --params '{"sinceMs": 60000}'"--params"--url"--token"--password"--timeout--expect-finalbooleanأساسًا لاستدعاءات RPC بأسلوب الوكيل التي تبث أحداثًا وسيطة قبل حمولة نهائية.
--jsonbooleanخرج JSON قابل للقراءة آليًا.
إدارة خدمة Gateway
openclaw gateway installopenclaw gateway startopenclaw gateway stopopenclaw gateway restartopenclaw gateway uninstallالتثبيت باستخدام غلاف
استخدم --wrapper عندما يجب أن تبدأ الخدمة المُدارة عبر ملف تنفيذي آخر، مثل غلاف مدير
الأسرار أو مساعد التشغيل كمستخدم آخر. يتلقى الغلاف وسيطات Gateway العادية ويكون
مسؤولًا في النهاية عن تنفيذ openclaw أو Node بتلك الوسيطات.
cat > ~/.local/bin/openclaw-doppler <<'EOF'#!/usr/bin/env bashset -euo pipefailexec doppler run --project my-project --config production -- openclaw "$@"EOFchmod +x ~/.local/bin/openclaw-doppler openclaw gateway install --wrapper ~/.local/bin/openclaw-doppler --forceopenclaw gateway restartيمكنك أيضًا تعيين الغلاف من خلال البيئة. يتحقق gateway install من أن المسار
ملف قابل للتنفيذ، ويكتب الغلاف في ProgramArguments الخاصة بالخدمة، ويثبت
OPENCLAW_WRAPPER في بيئة الخدمة لعمليات إعادة التثبيت القسرية والتحديثات وإصلاحات doctor لاحقًا.
OPENCLAW_WRAPPER="$HOME/.local/bin/openclaw-doppler" openclaw gateway install --forceopenclaw doctorلإزالة غلاف محفوظ، امسح OPENCLAW_WRAPPER أثناء إعادة التثبيت:
OPENCLAW_WRAPPER= openclaw gateway install --forceopenclaw gateway restartخيارات الأوامر
gateway status:--url,--token,--password,--timeout,--no-probe,--require-rpc,--deep,--jsongateway install:--port,--runtime <node|bun>,--token,--wrapper <path>,--force,--jsongateway restart:--safe,--skip-deferral,--force,--wait <duration>,--jsongateway uninstall|start:--jsongateway stop:--disable,--json
سلوك دورة الحياة
- استخدم
gateway restartلإعادة تشغيل خدمة مُدارة. لا تسلسلgateway stopوgateway startكبديل لإعادة التشغيل. - على macOS، يستخدم
gateway stopالأمرlaunchctl bootoutافتراضيًا، ما يزيل LaunchAgent من جلسة الإقلاع الحالية دون تثبيت التعطيل — يبقى الاسترداد التلقائي عبر KeepAlive نشطًا للأعطال المستقبلية، ويعيدgateway startالتمكين بشكل نظيف دونlaunchctl enableيدوي. مرر--disableلتعطيل KeepAlive وRunAtLoad بشكل دائم بحيث لا يعاود Gateway الظهور حتى أمرgateway startالصريح التالي؛ استخدم هذا عندما يجب أن يستمر الإيقاف اليدوي بعد عمليات إعادة الإقلاع أو إعادة تشغيل النظام. - يطلب
gateway restart --safeمن Gateway الجاري إجراء فحص مسبق للعمل النشط وجدولة إعادة تشغيل واحدة مدمجة بعد انتهاء العمل النشط. تنتظر إعادة التشغيل الآمنة الافتراضية العمل النشط حتى مدةgateway.reload.deferralTimeoutMsالمضبوطة (الافتراضي 5 دقائق)؛ وعند انتهاء تلك المهلة تُفرض إعادة التشغيل. عيّنgateway.reload.deferralTimeoutMsإلى0لانتظار آمن غير محدد لا يفرض أبدًا. لا يمكن دمج--safeمع--forceأو--wait. - يتجاوز
gateway restart --wait 30sميزانية انتظار تصريف إعادة التشغيل المضبوطة لتلك الإعادة. الأرقام المجردة هي بالمللي ثانية؛ وتُقبل وحدات مثلsوmوh. ينتظر--wait 0إلى أجل غير محدد. - يشغل
gateway restart --safe --skip-deferralإعادة التشغيل الآمنة المدركة لـ OpenClaw لكنه يتجاوز بوابة التأجيل بحيث يصدر Gateway إعادة التشغيل فورًا حتى عند الإبلاغ عن عوائق. هذا مخرج طارئ للمشغل لتأجيلات تشغيل المهام العالقة؛ ويتطلب--safe. - يتخطى
gateway restart --forceتصريف العمل النشط ويعيد التشغيل فورًا. استخدمه عندما يكون المشغل قد فحص بالفعل عوائق المهام المدرجة ويريد عودة Gateway الآن. - تقبل أوامر دورة الحياة
--jsonللبرمجة النصية.
المصادقة وSecretRefs وقت التثبيت
- عندما تتطلب مصادقة الرمز المميز رمزًا ويكون
gateway.auth.tokenمُدارًا عبر SecretRef، يتحققgateway installمن أن SecretRef قابل للحل لكنه لا يثبت الرمز المحلول في بيانات تعريف بيئة الخدمة. - إذا كانت مصادقة الرمز المميز تتطلب رمزًا وكان SecretRef الخاص بالرمز المضبوط غير محلول، يفشل التثبيت بإغلاق آمن بدلًا من تثبيت نص عادي احتياطي.
- لمصادقة كلمة المرور على
gateway run، فضّلOPENCLAW_GATEWAY_PASSWORDأو--password-fileأوgateway.auth.passwordالمدعوم بـ SecretRef على--passwordالمضمّنة. - في وضع المصادقة المستنتج، لا يخفف
OPENCLAW_GATEWAY_PASSWORDالموجود في الصدفة فقط متطلبات رمز التثبيت؛ استخدم إعدادًا دائمًا (gateway.auth.passwordأوenvفي الإعدادات) عند تثبيت خدمة مُدارة. - إذا كان كل من
gateway.auth.tokenوgateway.auth.passwordمضبوطين وكانgateway.auth.modeغير معين، يُحظر التثبيت حتى يُعيّن الوضع صراحةً.
اكتشاف البوابات (Bonjour)
يفحص gateway discover إشارات Gateway (_openclaw-gw._tcp).
- DNS-SD متعدد البث:
local. - DNS-SD أحادي البث (Bonjour واسع النطاق): اختر نطاقًا (مثال:
openclaw.internal.) وأعدّ DNS مقسمًا + خادم DNS؛ راجع Bonjour.
فقط البوابات التي لديها اكتشاف Bonjour مفعّل (افتراضيًا) تعلن الإشارة.
يمكن أن تتضمن سجلات الاكتشاف واسع النطاق تلميحات TXT هذه:
role(تلميح دور Gateway)transport(تلميح النقل، مثلgateway)gatewayPort(منفذ WebSocket، عادةً18789)sshPort(وضع الاكتشاف الكامل فقط؛ تعتمد العملاء أهداف SSH الافتراضية إلى22عند غيابه)tailnetDns(اسم مضيف MagicDNS، عند توفره)gatewayTls/gatewayTlsSha256(TLS مفعّل + بصمة الشهادة)cliPath(وضع الاكتشاف الكامل فقط)
gateway discover
openclaw gateway discover"--timeout--jsonbooleanإخراج قابل للقراءة آليًا (يعطل أيضًا التنسيق/مؤشر التحميل).
أمثلة:
openclaw gateway discover --timeout 4000openclaw gateway discover --json | jq '.beacons[].wsUrl'