أوامر الشرطة المائلة
تُعالَج الأوامر بواسطة Gateway. يجب إرسال معظم الأوامر كرسالة مستقلة تبدأ بـ/.
ويستخدم أمر bash الخاص بالمضيف فقط الصيغة ! <cmd> (مع /bash <cmd> كاسم بديل).
هناك نظامان مرتبطان:
- الأوامر: رسائل مستقلة بصيغة
/.... - التوجيهات:
/thinkو/fastو/verboseو/reasoningو/elevatedو/execو/modelو/queue.- تُزال التوجيهات من الرسالة قبل أن يراها النموذج.
- في رسائل الدردشة العادية (وليست رسائل توجيهات فقط)، تُعامَل بوصفها “تلميحات مضمّنة” ولا تُبقِي إعدادات الجلسة.
- في الرسائل التي تحتوي على توجيهات فقط (الرسالة تحتوي على توجيهات فقط)، تُحفَظ في الجلسة ويُرد عليها برسالة إقرار.
- لا تُطبَّق التوجيهات إلا على المرسلين المخوّلين. إذا كان
commands.allowFromمضبوطًا، فهو قائمة السماح الوحيدة المستخدمة؛ وإلا تأتي المصادقة من قوائم السماح/الاقتران الخاصة بالقنوات بالإضافة إلىcommands.useAccessGroups. أما المرسلون غير المخوّلين فيرون التوجيهات كنص عادي.
/help و/commands و/status و/whoami (/id).
تُشغَّل هذه الأوامر فورًا، وتُزال قبل أن يرى النموذج الرسالة، ويستمر النص المتبقي عبر التدفق العادي.
التكوين
commands.text(الافتراضيtrue) يفعّل تحليل/...في رسائل الدردشة.- على الأسطح التي لا تدعم الأوامر الأصلية (WhatsApp/WebChat/Signal/iMessage/Google Chat/Microsoft Teams)، تظل الأوامر النصية تعمل حتى إذا ضبطت هذا الخيار على
false.
- على الأسطح التي لا تدعم الأوامر الأصلية (WhatsApp/WebChat/Signal/iMessage/Google Chat/Microsoft Teams)، تظل الأوامر النصية تعمل حتى إذا ضبطت هذا الخيار على
commands.native(الافتراضي"auto") يسجل الأوامر الأصلية.- تلقائي: مفعّل في Discord/Telegram؛ ومعطّل في Slack (حتى تضيف أوامر الشرطة المائلة)؛ ويتم تجاهله لدى الموفّرين الذين لا يدعمون الأوامر الأصلية.
- اضبط
channels.discord.commands.nativeأوchannels.telegram.commands.nativeأوchannels.slack.commands.nativeللتجاوز لكل موفّر (قيمة منطقية أو"auto"). - تؤدي القيمة
falseإلى مسح الأوامر المسجلة سابقًا على Discord/Telegram عند بدء التشغيل. أما أوامر Slack فتُدار داخل تطبيق Slack ولا تُزال تلقائيًا.
commands.nativeSkills(الافتراضي"auto") يسجل أوامر Skills بشكل أصلي عندما يكون ذلك مدعومًا.- تلقائي: مفعّل في Discord/Telegram؛ ومعطّل في Slack (يتطلب Slack إنشاء أمر شرطة مائلة لكل Skill).
- اضبط
channels.discord.commands.nativeSkillsأوchannels.telegram.commands.nativeSkillsأوchannels.slack.commands.nativeSkillsللتجاوز لكل موفّر (قيمة منطقية أو"auto").
commands.bash(الافتراضيfalse) يفعّل! <cmd>لتشغيل أوامر shell على المضيف (/bash <cmd>اسم بديل؛ ويتطلب قوائم سماحtools.elevated).commands.bashForegroundMs(الافتراضي2000) يتحكم في المدة التي ينتظرها bash قبل التبديل إلى وضع الخلفية (0ينقله إلى الخلفية فورًا).commands.config(الافتراضيfalse) يفعّل/config(لقراءة/كتابةopenclaw.json).commands.mcp(الافتراضيfalse) يفعّل/mcp(لقراءة/كتابة تكوين MCP المُدار من OpenClaw تحتmcp.servers).commands.plugins(الافتراضيfalse) يفعّل/plugins(اكتشاف plugins/حالته بالإضافة إلى عناصر التحكم في التثبيت + التمكين/التعطيل).commands.debug(الافتراضيfalse) يفعّل/debug(تجاوزات وقت التشغيل فقط).commands.allowFrom(اختياري) يضبط قائمة سماح لكل موفّر لمصادقة الأوامر. وعند تهيئته، يصبح مصدر المصادقة الوحيد للأوامر والتوجيهات (يتم تجاهل قوائم السماح/الاقتران الخاصة بالقنوات وcommands.useAccessGroups). استخدم"*"كافتراضي عام؛ وتتجاوز المفاتيح الخاصة بالموفّر هذا الافتراضي.commands.useAccessGroups(الافتراضيtrue) يفرض قوائم السماح/السياسات للأوامر عندما لا يكونcommands.allowFromمضبوطًا.
قائمة الأوامر
نصي + أصلي (عند التمكين):/help/commands/tools [compact|verbose](يعرض ما يمكن للوكيل الحالي استخدامه الآن؛ ويضيفverboseأوصافًا)/skill <name> [input](تشغيل Skill بالاسم)/status(عرض الحالة الحالية؛ ويتضمن استخدام/حصة الموفّر لموفّر النموذج الحالي عندما يكون ذلك متاحًا)/tasks(سرد المهام الخلفية للجلسة الحالية؛ ويعرض تفاصيل المهام النشطة والحديثة مع أعداد التراجع المحلية للوكيل)/allowlist(سرد/إضافة/إزالة إدخالات قائمة السماح)/approve <id> <decision>(حل مطالبات الموافقة على exec؛ استخدم رسالة الموافقة المعلّقة لمعرفة القرارات المتاحة)/context [list|detail|json](يشرح “السياق”؛ ويعرضdetailحجم كل ملف + كل أداة + كل Skill + مطالبة النظام)/btw <question>(اطرح سؤالًا جانبيًا مؤقتًا حول الجلسة الحالية دون تغيير سياق الجلسة في المستقبل؛ راجع /tools/btw)/export-session [path](اسم بديل:/export) (تصدير الجلسة الحالية إلى HTML مع مطالبة النظام الكاملة)/whoami(عرض معرّف المرسل الخاص بك؛ الاسم البديل:/id)/session idle <duration|off>(إدارة إلغاء التركيز التلقائي بسبب عدم النشاط لارتباطات السلاسل المركزة)/session max-age <duration|off>(إدارة إلغاء التركيز التلقائي بالحد الأقصى الصارم للعمر لارتباطات السلاسل المركزة)/subagents list|kill|log|info|send|steer|spawn(فحص أو التحكم أو إنشاء عمليات تشغيل وكيل فرعي للجلسة الحالية)/acp spawn|cancel|steer|close|status|set-mode|set|cwd|permissions|timeout|model|reset-options|doctor|install|sessions(فحص جلسات ACP runtime والتحكم فيها)/agents(سرد الوكلاء المرتبطين بالسلسلة لهذه الجلسة)/focus <target>(Discord: اربط هذه السلسلة، أو سلسلة جديدة، بهدف جلسة/وكيل فرعي)/unfocus(Discord: إزالة الربط الحالي للسلسلة)/kill <id|#|all>(إيقاف وكيل فرعي واحد أو جميع الوكلاء الفرعيين الجاري تشغيلهم لهذه الجلسة فورًا؛ دون رسالة تأكيد)/steer <id|#> <message>(توجيه وكيل فرعي قيد التشغيل فورًا: أثناء التشغيل عندما يكون ذلك ممكنًا، وإلا إيقاف العمل الحالي وإعادة البدء برسالة التوجيه)/tell <id|#> <message>(اسم بديل لـ/steer)/config show|get|set|unset(حفظ التكوين على القرص، للمالك فقط؛ يتطلبcommands.config: true)/mcp show|get|set|unset(إدارة تكوين خادم OpenClaw MCP، للمالك فقط؛ يتطلبcommands.mcp: true)/plugins list|show|get|install|enable|disable(فحص plugins المكتشفة، وتثبيت Plugins جديدة، وتبديل حالة التمكين؛ الكتابة للمالك فقط؛ يتطلبcommands.plugins: true)/pluginهو اسم بديل لـ/plugins.- يقبل
/plugin install <spec>مواصفات plugin نفسها التي يقبلهاopenclaw plugins install: مسار/أرشيف محلي، أو حزمة npm، أوclawhub:<pkg>. - تظل عمليات كتابة التمكين/التعطيل ترد بتلميح لإعادة التشغيل. وعلى Gateway أمامي مراقَب، قد ينفذ OpenClaw إعادة التشغيل تلك تلقائيًا مباشرة بعد الكتابة.
/debug show|set|unset|reset(تجاوزات وقت التشغيل، للمالك فقط؛ يتطلبcommands.debug: true)/usage off|tokens|full|cost(تذييل الاستخدام لكل رد أو ملخص تكلفة محلي)/tts off|always|inbound|tagged|status|provider|limit|summary|audio(التحكم في TTS؛ راجع /tts)- Discord: الأمر الأصلي هو
/voice(لأن Discord يحجز/tts)؛ لكن النص/ttsلا يزال يعمل.
- Discord: الأمر الأصلي هو
/stop/restart/dock-telegram(اسم بديل:/dock_telegram) (تحويل الردود إلى Telegram)/dock-discord(اسم بديل:/dock_discord) (تحويل الردود إلى Discord)/dock-slack(اسم بديل:/dock_slack) (تحويل الردود إلى Slack)/activation mention|always(للمجموعات فقط)/send on|off|inherit(للمالك فقط)/resetأو/new [model](تلميح نموذج اختياري؛ ويُمرَّر الباقي كما هو)/think <off|minimal|low|medium|high|xhigh>(خيارات ديناميكية بحسب النموذج/الموفّر؛ الأسماء البديلة:/thinkingو/t)/fast status|on|off(عند حذف الوسيطة يُعرض وضع fast الفعلي الحالي)/verbose on|full|off(اسم بديل:/v)/reasoning on|off|stream(اسم بديل:/reason؛ وعند التفعيل يرسل رسالة منفصلة تبدأ بـReasoning:؛ أماstreamفلـ Telegram draft فقط)/elevated on|off|ask|full(اسم بديل:/elev؛ وتؤديfullإلى تخطي موافقات exec)/exec host=<auto|sandbox|gateway|node> security=<deny|allowlist|full> ask=<off|on-miss|always> node=<id>(أرسل/execلعرض الحالي)/model <name>(اسم بديل:/models؛ أو/<alias>منagents.defaults.models.*.alias)/queue <mode>(بالإضافة إلى خيارات مثلdebounce:2s cap:25 drop:summarize؛ أرسل/queueلرؤية الإعدادات الحالية)/bash <command>(للمضيف فقط؛ اسم بديل لـ! <command>؛ يتطلبcommands.bash: true+ قوائم سماحtools.elevated)/dreaming [off|core|rem|deep|status|help](تبديل وضع dreaming أو عرض الحالة؛ راجع Dreaming)
/compact [instructions](راجع /concepts/compaction)! <command>(للمضيف فقط؛ واحد في كل مرة؛ استخدم!poll+!stopللوظائف الطويلة)!poll(التحقق من المخرجات/الحالة؛ ويقبلsessionIdاختياريًا؛ كما يعمل/bash poll)!stop(إيقاف مهمة bash الجاري تشغيلها؛ ويقبلsessionIdاختياريًا؛ كما يعمل/bash stop)
- تقبل الأوامر وجود
:اختياري بين الأمر والوسائط (مثل/think: highأو/send: onأو/help:). - يقبل
/new <model>اسمًا بديلًا للنموذج، أوprovider/model، أو اسم موفّر (مطابقة ضبابية)؛ وإذا لم توجد مطابقة، يُعامل النص على أنه نص الرسالة. - للحصول على تفصيل كامل لاستخدام الموفّر، استخدم
openclaw status --usage. - يتطلب
/allowlist add|removeضبطcommands.config=trueويحترمconfigWritesالخاص بالقناة. - في القنوات متعددة الحسابات، تحترم أيضًا أوامر
/allowlist --account <id>و/config set channels.<provider>.accounts.<id>...الموجهة للتكوين قيمةconfigWritesالخاصة بالحساب المستهدف. - يتحكم
/usageفي تذييل الاستخدام لكل رد؛ بينما يطبع/usage costملخص تكلفة محليًا من سجلات جلسات OpenClaw. - يكون
/restartمفعّلًا افتراضيًا؛ اضبطcommands.restart: falseلتعطيله. - أمر Discord الأصلي فقط:
/vc join|leave|statusيتحكم في القنوات الصوتية (يتطلبchannels.discord.voiceوالأوامر الأصلية؛ وغير متاح كنص). - تتطلب أوامر ربط السلاسل في Discord (
/focusو/unfocusو/agentsو/session idleو/session max-age) تفعيل ربط السلاسل فعليًا (session.threadBindings.enabledو/أوchannels.discord.threadBindings.enabled). - مرجع أمر ACP وسلوك runtime: وكلاء ACP.
- يُقصد بـ
/verboseالتصحيح وزيادة الرؤية؛ ويجب إبقاؤه معطّلًا في الاستخدام العادي. - يحتفظ
/fast on|offبتجاوز للجلسة. استخدم خيارinheritفي واجهة Sessions لمسحه والعودة إلى افتراضيات التكوين. /fastخاص بالمزوّد: يربطه OpenAI/OpenAI Codex بالقيمةservice_tier=priorityعلى نقاط النهاية الأصلية لـ Responses، بينما تربطه طلبات Anthropic العامة المباشرة، بما في ذلك الحركة الموثّقة عبر OAuth المرسلة إلىapi.anthropic.com، بالقيمةservice_tier=autoأوstandard_only. راجع OpenAI وAnthropic.- لا تزال ملخصات فشل الأدوات تُعرض عند الحاجة، لكن نص الفشل المفصل لا يُدرج إلا عندما يكون
/verboseمضبوطًا علىonأوfull. - يُعد
/reasoning(وكذلك/verbose) محفوفًا بالمخاطر في إعدادات المجموعات: فقد يكشف تفكيرًا داخليًا أو مخرجات أدوات لم تكن تنوي كشفها. يُفضَّل إبقاؤهما معطلَين، خاصة في المحادثات الجماعية. - يحتفظ
/modelبالنموذج الجديد للجلسة فورًا. - إذا كان الوكيل في حالة خمول، فستستخدمه العملية التالية مباشرة.
- إذا كانت هناك عملية نشطة بالفعل، يضع OpenClaw التبديل المباشر كحالة معلّقة ولا يعيد التشغيل إلى النموذج الجديد إلا عند نقطة إعادة محاولة نظيفة.
- إذا كان نشاط الأدوات أو مخرجات الرد قد بدأ بالفعل، فقد يبقى التبديل المعلق في قائمة الانتظار حتى فرصة إعادة محاولة لاحقة أو دور المستخدم التالي.
- المسار السريع: تُعالَج الرسائل التي تحتوي على أوامر فقط من مرسلين مدرجين في قائمة السماح فورًا (متجاوزة قائمة الانتظار + النموذج).
- بوابة الإشارة في المجموعات: تتجاوز الرسائل التي تحتوي على أوامر فقط من مرسلين مدرجين في قائمة السماح متطلبات الإشارة.
- الاختصارات المضمّنة (للمرسلين المدرجين في قائمة السماح فقط): تعمل بعض الأوامر أيضًا عند تضمينها في رسالة عادية وتُزال قبل أن يرى النموذج النص المتبقي.
- مثال:
hey /statusيطلق رد حالة، ويستمر النص المتبقي عبر التدفق العادي.
- مثال:
- حاليًا:
/helpو/commandsو/statusو/whoami(/id). - تُتجاهل الرسائل غير المخوّلة التي تحتوي على أوامر فقط بصمت، وتُعامَل رموز
/...المضمّنة كنص عادي. - أوامر Skills: تُعرَض Skills القابلة للاستدعاء من المستخدم كأوامر شرطة مائلة. وتُنقّى الأسماء إلى
a-z0-9_(حد أقصى 32 محرفًا)؛ وتحصل التصادمات على لواحق رقمية (مثل_2).- يقوم
/skill <name> [input]بتشغيل Skill بالاسم (وهو مفيد عندما تمنع حدود الأوامر الأصلية إنشاء أمر لكل Skill). - افتراضيًا، تُمرَّر أوامر Skills إلى النموذج كطلب عادي.
- يمكن لـ Skills أن تعلن اختياريًا
command-dispatch: toolلتوجيه الأمر مباشرة إلى أداة (حتمي، بلا نموذج). - مثال:
/prose(plugin OpenProse) — راجع OpenProse.
- يقوم
- وسائط الأوامر الأصلية: يستخدم Discord الإكمال التلقائي للخيارات الديناميكية (وقوائم الأزرار عندما تُهمل الوسائط المطلوبة). ويعرض Telegram وSlack قائمة أزرار عندما يدعم الأمر اختيارات ويتم حذف الوسيطة.
/tools
يجيب /tools عن سؤال وقت تشغيل، وليس سؤال تكوين: ما الذي يمكن لهذا الوكيل استخدامه الآن في
هذه المحادثة.
- يكون
/toolsالافتراضي موجزًا ومحسنًا للمسح السريع. - يضيف
/tools verboseأوصافًا قصيرة. - تعرض الأسطح التي تدعم الأوامر الأصلية مع الوسائط مفتاح الوضع نفسه
compact|verbose. - تكون النتائج على نطاق الجلسة، لذا فإن تغيير الوكيل، أو القناة، أو السلسلة، أو تخويل المرسل، أو النموذج يمكن أن يغيّر المخرجات.
- يتضمن
/toolsالأدوات التي يمكن الوصول إليها فعليًا في وقت التشغيل، بما في ذلك الأدوات الأساسية، وأدوات plugins المتصلة، والأدوات المملوكة للقنوات.
/tools على أنه فهرس ثابت.
أسطح الاستخدام (ما الذي يظهر وأين)
- استخدام/حصة الموفّر (مثال: “Claude بقي منه 80%”) يظهر في
/statusلموفّر النموذج الحالي عندما يكون تتبع الاستخدام مفعّلًا. ويُطبِّع OpenClaw نوافذ الموفّرين إلى% left؛ وبالنسبة إلى MiniMax، تُعكس حقول النسبة المئوية التي تعطي الباقي فقط قبل العرض، كما تفضّل استجاباتmodel_remainsإدخال نموذج الدردشة مع تسمية خطة معنونة بالنموذج. - يمكن لأسطر الرموز/الذاكرة المخبأة في
/statusأن تعود إلى أحدث إدخال لاستخدام النصّ الحواري عندما تكون لقطة الجلسة الحية قليلة التفاصيل. وتظل القيم الحية الحالية غير الصفرية هي الفائزة، كما يمكن لهذا الرجوع إلى النص الحواري أيضًا استعادة تسمية نموذج runtime النشط بالإضافة إلى إجمالي أكبر موجّه للمطالبات عندما تكون الإجماليات المخزنة مفقودة أو أصغر. - يتحكم
/usage off|tokens|fullفي الرموز/التكلفة لكل رد (تُلحَق بالردود العادية). - يتعلق
/model statusبـ النماذج/المصادقة/نقاط النهاية، وليس بالاستخدام.
اختيار النموذج (/model)
تم تنفيذ /model كتوجيه.
أمثلة:
- يعرض
/modelو/model listمنتقيًا موجزًا مرقّمًا (عائلة النموذج + الموفّرون المتاحون). - على Discord، يفتح
/modelو/modelsمنتقيًا تفاعليًا مع قوائم منسدلة للموفّر والنموذج بالإضافة إلى خطوة Submit. - يقوم
/model <#>بالاختيار من ذلك المنتقي (ويفضّل الموفّر الحالي عندما يكون ذلك ممكنًا). - يعرض
/model statusالعرض المفصل، بما في ذلك نقطة النهاية المهيأة للمزوّد (baseUrl) ووضع API (api) عندما يكون ذلك متاحًا.
تجاوزات التصحيح
يتيح لك/debug ضبط تجاوزات وقت التشغيل فقط للتكوين (في الذاكرة، وليس على القرص). للمالك فقط. وهو معطل افتراضيًا؛ قم بتمكينه باستخدام commands.debug: true.
أمثلة:
- تُطبَّق التجاوزات فورًا على قراءات التكوين الجديدة، لكنها لا تكتب إلى
openclaw.json. - استخدم
/debug resetلمسح جميع التجاوزات والعودة إلى التكوين الموجود على القرص.
تحديثات التكوين
يكتب/config إلى التكوين الموجود لديك على القرص (openclaw.json). للمالك فقط. معطل افتراضيًا؛ قم بتمكينه باستخدام commands.config: true.
أمثلة:
- يُتحقق من صحة التكوين قبل الكتابة؛ وتُرفض التغييرات غير الصالحة.
- تبقى تحديثات
/configمحفوظة عبر إعادة التشغيل.
تحديثات MCP
يكتب/mcp تعريفات خوادم MCP المُدارة من OpenClaw تحت mcp.servers. للمالك فقط. معطل افتراضيًا؛ قم بتمكينه باستخدام commands.mcp: true.
أمثلة:
- يخزن
/mcpالتكوين في إعداد OpenClaw، وليس في إعدادات المشروع المملوكة لـ Pi. - تحدد محولات runtime وسائل النقل القابلة للتنفيذ فعليًا.
تحديثات plugins
يتيح/plugins للمشغلين فحص plugins المكتشفة وتبديل حالة التمكين في التكوين. ويمكن للتدفقات للقراءة فقط استخدام /plugin كاسم بديل. وهو معطل افتراضيًا؛ قم بتمكينه باستخدام commands.plugins: true.
أمثلة:
- يستخدم
/plugins listو/plugins showاكتشاف plugin الحقيقي مقابل مساحة العمل الحالية والتكوين الموجود على القرص. - يقوم
/plugins enable|disableفقط بتحديث تكوين plugin؛ ولا يثبّت plugins أو يزيل تثبيتها. - بعد تغييرات التمكين/التعطيل، أعد تشغيل gateway لتطبيقها.
ملاحظات الأسطح
- الأوامر النصية تعمل في جلسة الدردشة العادية (تشترك الرسائل الخاصة في
main، وللمجموعات جلستها الخاصة). - الأوامر الأصلية تستخدم جلسات معزولة:
- Discord:
agent:<agentId>:discord:slash:<userId> - Slack:
agent:<agentId>:slack:slash:<userId>(البادئة قابلة للتكوين عبرchannels.slack.slashCommand.sessionPrefix) - Telegram:
telegram:slash:<userId>(يستهدف جلسة الدردشة عبرCommandTargetSessionKey)
- Discord:
- يستهدف
/stopجلسة الدردشة النشطة حتى يتمكن من إيقاف التشغيل الحالي. - Slack: ما زال
channels.slack.slashCommandمدعومًا لأمر واحد من نمط/openclaw. إذا فعّلتcommands.native، فيجب إنشاء أمر شرطة مائلة واحد في Slack لكل أمر مضمّن (بنفس أسماء/help). وتُسلَّم قوائم وسائط الأوامر في Slack كأزرار Block Kit مؤقتة.- استثناء Slack الأصلي: سجّل
/agentstatus(وليس/status) لأن Slack يحجز/status. ولا يزال النص/statusيعمل في رسائل Slack.
- استثناء Slack الأصلي: سجّل
أسئلة BTW الجانبية
يمثل/btw سؤالًا جانبيًا سريعًا حول الجلسة الحالية.
وعلى عكس الدردشة العادية:
- فهو يستخدم الجلسة الحالية كسياق خلفي،
- ويعمل كاستدعاء منفصل من دون أدوات لمرة واحدة،
- ولا يغيّر سياق الجلسة في المستقبل،
- ولا يُكتب في سجل النص الحواري،
- ويُسلَّم كنتيجة جانبية حية بدلًا من رسالة مساعد عادية.
/btw مفيدًا عندما تريد توضيحًا مؤقتًا بينما تستمر
المهمة الرئيسية.
مثال: