واجهة Control UI في OpenClaw
ما يقدمه المنفذ 18789 وما يطلبه منك
قمت بتثبيت OpenClaw، وشغلت Gateway، وقرأت في مكان ما أن هناك لوحة تحكم في المتصفح. فتحها لا يتطلب سوى رابط واحد، لكن الصفحة التي تظهر تطلب Gateway secret لم يعطك إياه أحد، وقد لا يستجيب عنوان LAN المطبوع في الطرفية إطلاقًا من حاسوبك المحمول. إليك حقيقة واجهة Control UI، وما الذي يقبله ذلك الحقل الوحيد، وما الذي تفعله قائمة الوكلاء التي تقف خلفه.
ما يقدمه Gateway على المنفذ 18789
- واجهة Control UI تطبيق صغير أحادي الصفحة مبني باستخدام Vite وLit، يقدمه Gateway نفسه على العنوان http://your-host:18789/ افتراضيًا، مع بادئة اختيارية عند ضبط gateway.controlUi.basePath، مثل /openclaw. وهي تتواصل مباشرة مع WebSocket التابع لخادم Gateway على المنفذ نفسه، فلا توجد خدمة ثانية يلزم تشغيلها ولا مضيف API منفصل يلزم توجيهها إليه.
- على مضيف Gateway، افتح http://127.0.0.1:18789/ أو http://localhost:18789/. وإذا تعذر تحميل الصفحة تمامًا، فشغل Gateway أولًا بالأمر openclaw gateway.
- يسري الإعداد gateway.controlUi.enabled مباشرة أثناء التشغيل. عطله فيتوقف Gateway عن تقديم صفحات لوحة التحكم ومواردها بينما تواصل البوتات واتصالات Gateway القائمة عملها؛ وأعد تفعيله فيُستأنف التقديم، مع تجهيز الموارد الناقصة في الخلفية. أما تغيير المسار الأساسي للتقديم أو جذر الموارد فلا يزال يتطلب إعادة تشغيل Gateway.
- إذا كان رابط LAN يعمل على المضيف ولا يعمل من جهاز آخر، فاشتبه في المضيف قبل الشبكة. عند الربط بالشبكة المحلية على Windows الأصلي، قد يحجب جدار حماية Windows أو نهج المجموعة الذي تديره المؤسسة رابط LAN المعلن حتى عندما يعمل 127.0.0.1 على مضيف Gateway، والأمر openclaw gateway status --deep، عند تشغيله على مضيف Windows ذلك، يبلغ عن المنافذ المحجوبة على الأرجح، وعدم تطابق ملفات التعريف، وقواعد جدار الحماية المحلية التي قد يتجاهلها النهج.
لا يتجاوز اتصال loopback المباشر المصادقة بالرمز المميز أو بكلمة المرور.
لماذا تطلب الصفحة على جهازك أنت سرًا رغم ذلك
تجري المصادقة أثناء مصافحة WebSocket، لا في نموذج تسجيل دخول يستطيع التطبيق أن يتخطاه بصمت للزوار المحليين. يقبل Gateway السر المشترك المهيأ في connect.params.auth.token أو في connect.params.auth.password، ويحدد gateway.auth.mode أي القيمتين المهيأتين تسري؛ كما يقبل ترويسات الهوية من Tailscale Serve عندما تكون قيمة gateway.auth.allowTailscale هي true، وترويسات الهوية من الخادم الوسيط الموثوق عندما تكون قيمة gateway.auth.mode هي trusted-proxy. تسبق مصادقة Gateway إقران الأجهزة، لذا يثبت المتصفح هويته بالسر المشترك قبل أن يتمكن حتى من تقديم طلب إقران. ولا يحتاج متصفح loopback مباشر إلى سر مشترك إلا عندما تضبط قيمة gateway.auth.mode صراحة على none، وهذا يعطل مصادقة Gateway كليًا وليس الإعداد الموصى به لواجهة Control UI.
حقل واحد ونوعان من القيم
- تستخدم شاشة تسجيل الدخول، وكذلك Settings ثم Gateway، الحقل الوحيد نفسه Gateway secret: الصق الرمز المميز أو اكتب كلمة المرور. المتصفح لا يختار الوضع؛ فقد اختاره gateway.auth.mode مسبقًا على المضيف.
- بعد اتصال ناجح، تحتفظ الواجهة بالسر في تخزين الجلسة، مقصورًا على علامة تبويب المتصفح الحالية وعلى أصل Gateway، وذلك فقط عندما يفيد Gateway بأن المصادقة تتم بالرمز المميز. أما كلمات المرور فتبقى في الذاكرة ولا تحفظ أبدًا، وبمجرد إقران الجهاز يستطيع المتصفح استخدام الرمز المميز المخزن الخاص بذلك الجهاز في الاتصالات اللاحقة.
- رمز الإعداد المنسوخ من Devices، ثم Pair device، ثم Copy setup code بيانات اعتماد مختلفة. إذا ألصقته في Gateway secret تعرض الواجهة تلميحًا في مكانه قبل الاتصال: مكان هذا الرمز هو Settings ثم Gateway في تطبيق OpenClaw للهاتف المحمول، أما Control UI فتريد الرمز المميز المشترك الذي يطبعه openclaw gateway auth-token --show عند تشغيله في طرفية تفاعلية على مضيف Gateway.
هناك حالة تبدو خللًا وهي ليست كذلك. يولد الإعداد الأولي المحلي افتراضيًا Gateway secret في وضع الرمز المميز، دون أداة لاختيار الرمز المميز أو كلمة المرور، ويحافظ على وضع كلمة المرور إن كان قائمًا؛ ويتم إعداد كلمة المرور صراحة عبر --gateway-auth password أو --gateway-password مع القيمة التي تختارها، ويتطلب Tailscale Funnel وضع كلمة المرور. لكن إذا بدأ Gateway في وضع الرمز المميز دون رمز مهيأ، فإنه يولد بدلًا من ذلك رمز تشغيل مؤقتًا لتلك العملية. هذا الرمز لا يكتب في ملف الإعداد، لذا لا يمكن استرجاعه، ويرفض متصفح loopback الذي لا يملكه: الحقل الذي أمامك يطلب قيمة غير موجودة في أي مكان يمكنك قراءتها منه. والمخرج هو تشغيل openclaw doctor --generate-gateway-token، ثم إعادة تشغيل Gateway، ثم تشغيل openclaw gateway auth-token --show في طرفية تفاعلية ولصق الناتج في Gateway secret؛ ويوضح دليل doctor في OpenClaw ما قد تمسه أداة الإصلاح هذه أيضًا، بينما يتناول شرح Gateway العملية التي تملك المنفذ من الأساس.
قائمة الوكلاء ووضع الفريق
افتح Agents في الشريط الجانبي، أو اختر All agents في مبدل الوكلاء، أو زر /agents، فتحصل على قائمة بدل الدردشة: بطاقة لكل وكيل مهيأ تعرض هويته ونموذجه وحالة عمله الحالية وآخر نشاط له ومعاينة من دردشته الرئيسية، ويأتي الوكلاء العاملون أولًا ثم الأحدث نشاطًا بعدهم. ينقلك Open chat إلى الجلسة الرئيسية لذلك الوكيل، ويفتح Manage agents الصفحة /settings/agents، ويفتح New agent دردشة custodian، التي توصي بمدير مكتب أو باحث أو كاتب أو مراجع، أو بفريق صغير يضم الأربعة، مستخدمة قوالب الأدوار نفسها التي يستخدمها سطر الأوامر، ومنتظرة موافقة المشغل قبل إنشاء أي شيء. واختيار Show all agents يفعل وضع الفريق: تتجمع الجلسات تحت ترويسات وكلاء قابلة للطي بترتيب القائمة المهيأ، ويصبح الصف العلوي ترويسة مساحة عمل تحمل اسم عرض Gateway المهيأ، ويصبح All agents النطاق الافتراضي المشترك للصفحات، فتعرض Automations وDashboards وSessions وTasks وUsage صفوفًا من وكلاء مختلفين مع إرفاق هوية كل وكيل. وضع الفريق تفضيل خاص بالمتصفح، معطل افتراضيًا ومحفوظ لكل gateway في ذلك المتصفح، لذا فإن Gateway نفسه عند الوصول إليه من ملف تعريف آخر أو عبر الوصول عن بعد إلى OpenClaw يبدأ في وضع الوكيل الواحد إلى أن تفعله هناك. أما كيف يجتمع عدة وكلاء معزولين داخل عملية Gateway واحدة فموضوع قائم بذاته، يتناوله دليل تشغيل عدة وكلاء في Gateway واحد.
على Diali
يستضيف Diali منصة OpenClaw، فلا يعود المنفذ والرمز المميز والشهادة من شأنك: كل عميل يشغل مساعده الخاص على مثيله الخاص، ونقدم Control UI عبر HTTPS على عنوان حقيقي بدل رابط LAN بنص غير مشفر. يولد إعداد التشغيل من لوحة تحكم Diali الخاصة بك ويكتب من جديد عند كل إصدار، لذا يطابق ما يعمل دائمًا ما اخترته، وتقيم حالة الوكيل على وحدة تخزين دائمة، مع لقطات يومية واستعادة بنقرة واحدة متاحتين عبر إضافة «النسخ الاحتياطية» (مضمنة في Max). وتصف صفحة OpenClaw المستضاف على Diali ما يتضمنه المساعد المستضاف، وتعرض صفحة أسعار Diali الخطط.
- لوحة التحكم هي Gateway نفسه، على منفذ واحد.
- متصفح loopback لا يزال يحتاج إلى السر المهيأ.
- رمز التشغيل المؤقت لا يمكن قراءته لاحقًا أبدًا.
كفاك قراءة، ابنِ وكيلك الخاص
جهز وكيلًا، واختر قناة، واجعله يعمل داخل التطبيق المفتوح لديك دائمًا.
