استكشاف الأخطاء وإصلاحها بعمق
تشخيصات تبدأ بالأعراض، مع تسلسلات أوامر دقيقة وبصمات للسجلات.
التهيئة
دليل إعداد موجّه نحو المهام + مرجع كامل للتهيئة.
إدارة الأسرار
عقد SecretRef، وسلوك لقطة وقت التشغيل، وعمليات الترحيل/إعادة التحميل.
عقد خطة الأسرار
قواعد الهدف/المسار الدقيقة لـ
secrets apply وسلوك ملف تعريف المصادقة المعتمد على المراجع فقط.بدء التشغيل المحلي خلال 5 دقائق
1
بدء Gateway
2
التحقق من سلامة الخدمة
Runtime: running وConnectivity probe: ok وسطر Capability يطابق ما تتوقعه. استخدم openclaw gateway status --require-rpc لإثبات RPC ضمن نطاق القراءة، وليس لمجرد إثبات إمكانية الوصول.3
التحقق من جاهزية القنوات
تراقب إعادة تحميل تهيئة Gateway مسار ملف التهيئة النشط (المستخرج من الإعدادات الافتراضية لملف التعريف/الحالة، أو
OPENCLAW_CONFIG_PATH عند تعيينه). الوضع الافتراضي هو gateway.reload.mode="hybrid". بعد أول تحميل ناجح، تخدم العملية الجارية لقطة التهيئة النشطة في الذاكرة؛ وتستبدل إعادة التحميل الناجحة تلك اللقطة ذريًا.نموذج وقت التشغيل
- عملية واحدة دائمة التشغيل للتوجيه ومستوى التحكم واتصالات القنوات.
- منفذ واحد متعدد الإرسال من أجل:
- التحكم/RPC عبر WebSocket
- واجهات HTTP البرمجية (
/v1/modelsو/v1/embeddingsو/v1/chat/completionsو/v1/responsesو/tools/invoke) - مسارات HTTP الخاصة بالـ Plugin، مثل
/api/v1/admin/rpcالاختياري - واجهة التحكم والخطافات
- وضع الربط الافتراضي:
loopback. داخل بيئة حاوية مكتشفة، يكون الإعداد الافتراضي الفعلي هوauto(يُحل إلى0.0.0.0لإعادة توجيه المنافذ)، ما لم يكن عرض/نفق Tailscale نشطًا، إذ يفرض دائمًاloopback. - المصادقة مطلوبة افتراضيًا. تستخدم إعدادات السر المشترك
gateway.auth.token/gateway.auth.password(أوOPENCLAW_GATEWAY_TOKEN/OPENCLAW_GATEWAY_PASSWORD) ويمكن لإعدادات الوكيل العكسي غير المرتبطة بعنوان 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 عندما تريد تجاوز موفّر/نموذج الواجهة الخلفية؛ وإلا يبقى النموذج العادي وإعداد التضمين للوكيل المحدد هما المتحكّمين.
تعمل جميع هذه العناصر على منفذ Gateway الرئيسي وتستخدم حد مصادقة المشغّل الموثوق نفسه الذي تستخدمه بقية واجهة HTTP البرمجية لـ Gateway.
يُعد RPC الإداري عبر HTTP (POST /api/v1/admin/rpc) مسار Plugin منفصلًا ومعطّلًا افتراضيًا لأدوات المضيف التي لا يمكنها استخدام RPC عبر WebSocket. راجع RPC الإداري عبر HTTP.
أسبقية المنفذ والربط
تسجّل خدمات Gateway المثبّتة قيمة
--port التي تم حلها ضمن بيانات المشرف الوصفية. بعد تغيير gateway.port، شغّل openclaw doctor --fix أو openclaw gateway install --force كي تبدأ launchd/systemd/schtasks العملية على المنفذ الجديد.
يستخدم بدء تشغيل Gateway المنفذ الفعلي والربط نفسيهما عند تهيئة أصول واجهة التحكم المحلية لعمليات الربط غير المرتبطة بعنوان loopback. على سبيل المثال، يهيّئ --bind lan --port 3000 القيمتين http://localhost:3000 وhttp://127.0.0.1:3000 قبل تشغيل التحقق في وقت التشغيل. أضف صراحةً أي أصول لمتصفحات بعيدة، مثل عناوين URL لوكيل HTTPS، إلى gateway.controlUi.allowedOrigins.
أوضاع إعادة التحميل الفوري
مجموعة أوامر المشغّل
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 انحراف تهيئة الخدمة ويصلحه.78. تستخدم وحدات systemd في Linux القيمة RestartPreventExitStatus=78 لإيقاف إعادة التشغيل حتى إصلاح التهيئة. لا تتضمن launchd وWindows Task Scheduler قاعدة مكافئة للإيقاف بحسب رمز الخروج، لذلك يحتفظ Gateway أيضًا بسجل عمليات الإقلاع السريعة غير النظيفة ويمنع البدء التلقائي لحسابات القنوات/الموفّرين بعد تكرار إخفاقات بدء التشغيل. في ذلك الوضع الآمن، يظل مستوى التحكم قيد التشغيل للفحص والإصلاح، وترفض عمليات إعادة تحميل التهيئة الفورية وsecrets.reload عمليات إعادة تشغيل القنوات تلقائيًا، ويمكن لطلب صريح من المشغّل عبر channels.start تجاوز المنع.
مسار سريع لملف تعريف التطوير
19001.
مرجع سريع للبروتوكول (منظور المشغّل)
- يجب أن يكون إطار العميل الأول هو
connect. - يعيد Gateway إطار
hello-okيتضمنsnapshot(presence،health،stateVersion،uptimeMs) بالإضافة إلى حدودpolicy(maxPayload،maxBufferedBytes،tickIntervalMs). - يمثل
hello-ok.features.methods/eventsقائمة استكشاف متحفظة، وليس تفريغًا مولّدًا لكل مسار مساعد قابل للاستدعاء. - الطلبات:
req(method, params)→res(ok/payload|error). - تشمل الأحداث الشائعة
connect.challenge، وagent، وchat، وsession.message، وsession.operation، وsession.tool، والأحداث الاختياريةsession.approval، وsessions.changed، وpresence، وtick، وhealth، وheartbeat، وأحداث دورة حياة الاقتران/الموافقة، وshutdown.
- إقرار فوري بالقبول (
status:"accepted") - استجابة الإكمال النهائية (
status:"ok"|"error")، مع بث أحداثagentبينهما.
فحوص التشغيل
التحقق من بقاء الخدمة
- افتح اتصال WS وأرسل
connect. - توقّع استجابة
hello-okتتضمن لقطة للحالة.
التحقق من الجاهزية
الاسترداد من الفجوات
لا تُعاد أحداث البث. عند وجود فجوات في التسلسل، حدّث الحالة (health، system-presence) قبل المتابعة.
مؤشرات الأعطال الشائعة
للاطلاع على مسارات التشخيص الكاملة، استخدم استكشاف أخطاء Gateway وإصلاحها.
ضمانات السلامة
- تفشل عملاء بروتوكول Gateway فورًا عند عدم توفر Gateway (من دون رجوع ضمني إلى قناة مباشرة).
- تُرفض الإطارات الأولى غير الصالحة أو التي لا تمثل اتصالًا، ويُغلق الاتصال.
- يرسل الإيقاف الآمن حدث
shutdownقبل إغلاق المقبس.