استكشاف الأخطاء المتعمق
تشخيصات تبدأ بالأعراض مع تسلسلات أوامر دقيقة وبصمات سجلات.
التكوين
دليل إعداد موجه بالمهام + مرجع التكوين الكامل.
إدارة الأسرار
عقد SecretRef، وسلوك لقطة وقت التشغيل، وعمليات الترحيل/إعادة التحميل.
عقد خطة الأسرار
قواعد الهدف/المسار الدقيقة لـ
secrets apply وسلوك ملف تعريف المصادقة القائم على المراجع فقط.بدء تشغيل محلي خلال 5 دقائق
تحقق من صحة الخدمة
Runtime: running، وConnectivity probe: ok، وCapability: ... بما يطابق ما تتوقعه. استخدم openclaw gateway status --require-rpc عندما تحتاج إلى إثبات RPC بنطاق قراءة، وليس مجرد قابلية الوصول.تراقب إعادة تحميل تكوين Gateway مسار ملف التكوين النشط (المحلول من افتراضيات الملف الشخصي/الحالة، أو
OPENCLAW_CONFIG_PATH عند تعيينه).
الوضع الافتراضي هو gateway.reload.mode="hybrid".
بعد أول تحميل ناجح، تخدم العملية العاملة لقطة التكوين النشطة الموجودة في الذاكرة؛ وتبدل إعادة التحميل الناجحة تلك اللقطة ذريًا.نموذج وقت التشغيل
- عملية واحدة تعمل دائمًا للتوجيه، ومستوى التحكم، واتصالات القنوات.
- منفذ واحد متعدد الإرسال لـ:
- تحكم/RPC عبر WebSocket
- واجهات HTTP API (
/v1/models،/v1/embeddings،/v1/chat/completions،/v1/responses،/tools/invoke) - مسارات HTTP الخاصة بـ Plugin، مثل
/api/v1/admin/rpcالاختياري - Control UI والخطافات
- وضع الربط الافتراضي:
loopback. - المصادقة مطلوبة افتراضيًا. تستخدم إعدادات السر المشترك
gateway.auth.token/gateway.auth.password(أوOPENCLAW_GATEWAY_TOKEN/OPENCLAW_GATEWAY_PASSWORD)، ويمكن لإعدادات الوكيل العكسي غير القائمة على local loopback استخدامgateway.auth.mode: "trusted-proxy".
نقاط نهاية متوافقة مع OpenAI
أصبح سطح التوافق الأعلى عائدًا في OpenClaw الآن:GET /v1/modelsGET /v1/models/{id}POST /v1/embeddingsPOST /v1/chat/completionsPOST /v1/responses
- تفحص معظم تكاملات Open WebUI وLobeChat وLibreChat
/v1/modelsأولًا. - تتوقع العديد من مسارات RAG والذاكرة
/v1/embeddings. - تفضل العملاء الأصلية للوكلاء بشكل متزايد
/v1/responses.
/v1/modelsموجه للوكلاء أولًا: يعيدopenclawوopenclaw/defaultوopenclaw/<agentId>.openclaw/defaultهو الاسم المستعار المستقر الذي يطابق دائمًا الوكيل الافتراضي المكون.- استخدم
x-openclaw-modelعندما تريد تجاوز موفر/نموذج الخلفية؛ وإلا يبقى النموذج العادي وإعداد التضمين للوكيل المحدد هو المتحكم.
POST /api/v1/admin/rpc) هو مسار Plugin منفصل ومعطل افتراضيًا لأدوات المضيف التي لا يمكنها استخدام WebSocket RPC. راجع Admin HTTP RPC.
أسبقية المنفذ والربط
| الإعداد | ترتيب الحل |
|---|---|
| منفذ Gateway | --port → OPENCLAW_GATEWAY_PORT → gateway.port → 18789 |
| وضع الربط | CLI/override → gateway.bind → loopback |
--port المحلولة في بيانات المشرف الوصفية. بعد تغيير gateway.port، شغل openclaw doctor --fix أو openclaw gateway install --force حتى يبدأ launchd/systemd/schtasks العملية على المنفذ الجديد.
يستخدم بدء تشغيل Gateway المنفذ والربط الفعالين نفسيهما عندما يهيئ أصول
Control UI المحلية لعمليات الربط غير القائمة على local loopback. على سبيل المثال، يهيئ --bind lan --port 3000
كلًا من http://localhost:3000 وhttp://127.0.0.1:3000 قبل تشغيل
تحقق وقت التشغيل. أضف أي أصول متصفحات بعيدة، مثل عناوين URL لوكيل HTTPS، إلى
gateway.controlUi.allowedOrigins صراحة.
أوضاع إعادة التحميل الساخن
gateway.reload.mode | السلوك |
|---|---|
off | لا إعادة تحميل للتكوين |
hot | تطبيق التغييرات الآمنة ساخنًا فقط |
restart | إعادة التشغيل عند تغييرات تتطلب إعادة التحميل |
hybrid (افتراضي) | تطبيق ساخن عندما يكون آمنًا، وإعادة التشغيل عند الحاجة |
مجموعة أوامر المشغل
gateway status --deep مخصص لاكتشاف خدمات إضافي (LaunchDaemons/وحدات نظام systemd/schtasks)، وليس فحص صحة RPC أعمق.
عدة بوابات Gateway (المضيف نفسه)
ينبغي لمعظم التثبيتات تشغيل Gateway واحد لكل جهاز. يمكن لـ Gateway واحد استضافة عدة وكلاء وقنوات. لا تحتاج إلى عدة بوابات Gateway إلا عندما تريد عمدًا عزلًا أو بوت إنقاذ. فحوصات مفيدة:- يمكن أن يبلغ
gateway status --deepعنOther gateway-like services detected (best effort)ويطبع تلميحات تنظيف عندما تظل تثبيتات launchd/systemd/schtasks القديمة موجودة. - يمكن أن يحذر
gateway probeمنmultiple reachable gateway identitiesعندما تجيب بوابات Gateway مميزة، أو عندما يتعذر على OpenClaw إثبات أن الأهداف القابلة للوصول هي Gateway نفسه. يُعد نفق SSH، أو عنوان URL لوكيل، أو عنوان URL بعيد مكون إلى Gateway نفسه بوابة Gateway واحدة مع عدة وسائل نقل، حتى عندما تختلف منافذ النقل. - إذا كان ذلك مقصودًا، فاعزل المنافذ، والتكوين/الحالة، وجذور مساحة العمل لكل Gateway.
gateway.portفريدOPENCLAW_CONFIG_PATHفريدOPENCLAW_STATE_DIRفريدagents.defaults.workspaceفريد
الوصول عن بُعد
المفضل: Tailscale/VPN. البديل: نفق SSH.ws://127.0.0.1:18789.
راجع: Gateway البعيد، المصادقة، Tailscale.
الإشراف ودورة حياة الخدمة
استخدم التشغيل الخاضع للإشراف للحصول على موثوقية شبيهة بالإنتاج.- macOS (launchd)
- Linux (مستخدم systemd)
- Windows (أصلي)
- Linux (خدمة نظام)
openclaw gateway restart لإعادة التشغيل. لا تسلسل openclaw gateway stop وopenclaw gateway start كبديل لإعادة التشغيل.على macOS، يستخدم gateway stop افتراضيًا launchctl bootout — وهذا يزيل LaunchAgent من جلسة الإقلاع الحالية دون استمرار تعطيل، لذلك يستمر استرداد KeepAlive التلقائي في العمل بعد الأعطال غير المتوقعة ويعيد gateway start التمكين بنظافة. لمنع إعادة التشغيل التلقائي بشكل دائم عبر عمليات إعادة الإقلاع، مرر --disable: openclaw gateway stop --disable.تسميات LaunchAgent هي ai.openclaw.gateway (افتراضي) أو ai.openclaw.<profile> (ملف شخصي مسمى). يدقق openclaw doctor ويصلح انحراف تكوين الخدمة.المسار السريع لملف تعريف التطوير
19001.
مرجع سريع للبروتوكول (عرض المشغل)
- يجب أن يكون أول إطار عميل
connect. - يعيد Gateway لقطة
hello-ok(presence،health،stateVersion،uptimeMs، الحدود/السياسة). hello-ok.features.methods/eventsهي قائمة اكتشاف محافظة، وليست تفريغًا مولدًا لكل مسار مساعد قابل للاستدعاء.- الطلبات:
req(method, params)→res(ok/payload|error). - تتضمن الأحداث الشائعة
connect.challenge، وagent، وchat، وsession.message، وsession.operation، وsession.tool، وsessions.changed، وpresence، وtick، وhealth، وheartbeat، وأحداث دورة حياة الاقتران/الموافقة، وshutdown.
- إقرار قبول فوري (
status:"accepted") - استجابة إكمال نهائية (
status:"ok"|"error")، مع أحداثagentمتدفقة بينهما.
الفحوصات التشغيلية
الحيوية
- افتح WS وأرسل
connect. - توقع استجابة
hello-okمع لقطة.
الجاهزية
استرداد الفجوات
لا تُعاد الأحداث. عند وجود فجوات في التسلسل، حدّث الحالة (health، system-presence) قبل المتابعة.
بصمات الفشل الشائعة
| التوقيع | المشكلة المحتملة |
|---|---|
refusing to bind gateway ... without auth | ربط غير local loopback من دون مسار مصادقة Gateway صالح |
another gateway instance is already listening / EADDRINUSE | تعارض في المنفذ |
Gateway start blocked: set gateway.mode=local | تم ضبط الإعدادات على الوضع البعيد، أو ختم الوضع المحلي مفقود من إعدادات تالفة |
unauthorized أثناء الاتصال | عدم تطابق المصادقة بين العميل وGateway |
ضمانات السلامة
- تفشل عملاء بروتوكول Gateway بسرعة عندما يكون Gateway غير متاح (من دون رجوع ضمني إلى قناة مباشرة).
- تُرفض الإطارات الأولى غير الصالحة أو غير الخاصة بالاتصال وتُغلق.
- يُصدر الإيقاف المنظّم حدث
shutdownقبل إغلاق المقبس.
ذات صلة: