tools/slash-commands.md
تتم معالجة الأوامر بواسطة Gateway. يجب إرسال معظم الأوامر كرسالة مستقلة تبدأ بـ/.
يستخدم أمر دردشة bash الخاص بالمضيف فقط ! <cmd> (مع /bash <cmd> كاسم بديل).
هناك نظامان مترابطان:
- الأوامر: رسائل
/...مستقلة. - التوجيهات:
/think،/verbose،/reasoning،/elevated،/exec،/model،/queue.- تتم إزالة التوجيهات من الرسالة قبل أن يراها النموذج.
- في رسائل الدردشة العادية (غير المقتصرة على التوجيهات)، تُعامَل كتلميحات «مضمّنة» ولا تُبقي إعدادات الجلسة.
- في الرسائل التي تحتوي على توجيهات فقط (تتضمن الرسالة توجيهات دون غيرها)، تُحفَظ في الجلسة ويُردّ بإشعار تأكيد.
- يتم تطبيق التوجيهات فقط على المرسلين المصرح لهم. لا تُطبَّق التوجيهات إلا على المرسلين المصرّح لهم (قوائم السماح/الاقتران للقنوات إضافةً إلى
commands.useAccessGroups). يرى المرسلون غير المصرّح لهم التوجيهات كنص عادي.
/help، /commands، /status، /whoami (/id).
تُنفَّذ فورًا، وتُزال قبل أن يرى النموذج الرسالة، ويستمر النص المتبقي عبر التدفق المعتاد.
التهيئة
commands.text(الافتراضيtrue) يفعّل تحليل/...في رسائل الدردشة.- على الواجهات التي لا تدعم أوامر أصلية (WhatsApp/WebChat/Signal/iMessage/Google Chat/MS Teams)، تظل الأوامر النصية تعمل حتى إذا عيّنت هذا إلى
false.
- على الواجهات التي لا تدعم أوامر أصلية (WhatsApp/WebChat/Signal/iMessage/Google Chat/MS 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>لتشغيل أوامر صدفة المضيف (/bash <cmd>اسم بديل؛ يتطلب قوائم سماحtools.elevated).commands.bashForegroundMs(الافتراضي2000) يتحكم في مدة انتظار bash قبل التحويل إلى وضع الخلفية (0يُشغِّل في الخلفية فورًا).commands.config(الافتراضيfalse) يفعّل/config(قراءة/كتابةopenclaw.json).commands.debug(الافتراضيfalse) يفعّل/debug(تجاوزات وقت التشغيل فقط).commands.allowFrom(اختياري) يحدد قائمة سماح لكل مزود لتفويض الأوامر. عند تهيئته، يكون هو مصدر التفويض الوحيد للأوامر والتوجيهات (يتم تجاهل قوائم سماح القنوات/الاقتران وcommands.useAccessGroups). استخدم"*"كقيمة افتراضية عامة؛ وتتجاوز المفاتيح الخاصة بكل مزود هذه القيمة.commands.useAccessGroups(الافتراضيtrue) يفرض قوائم السماح/السياسات على الأوامر.
قائمة الأوامر
نصية + أصلية (عند التفعيل):/help/commands/skill <name> [input](تشغيل Skill بالاسم)/status(عرض الحالة الحالية؛ يتضمن استخدام/حصة الموفّر لنموذج الموفّر الحالي عند التوفر)/allowlist(سرد/إضافة/إزالة إدخالات قوائم السماح)/approve <id> allow-once|allow-always|deny(حل مطالبات الموافقة على التنفيذ)/context [list|detail|json](شرح «السياق»؛ يعرضdetailحجم كل ملف + كل أداة + كل Skill + مطالبة النظام)/whoami(عرض معرّف المرسل؛ الاسم البديل:/id)/subagents list|stop|log|info|send(فحص/إيقاف/تسجيل/مراسلة تشغيلات الوكيل الفرعي للجلسة الحالية)/kill <id|#|all>(إيقاف فوري لوكيل فرعي واحد أو لجميع الوكلاء الفرعيين قيد التشغيل لهذه الجلسة؛ بدون رسالة تأكيد)/steer <id|#> <message>(توجيه وكيل فرعي قيد التشغيل فورًا: أثناء التشغيل إن أمكن، وإلا يتم إيقاف العمل الحالي وإعادة التشغيل باستخدام رسالة التوجيه)/tell <id|#> <message>(اسم بديل لـ/steer)/config show|get|set|unset(حفظ التهيئة على القرص، للمالك فقط؛ يتطلبcommands.config: true)/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)/verbose on|full|off(الاسم البديل:/v)/reasoning on|off|stream(الاسم البديل:/reason؛ عند التفعيل، يرسل رسالة منفصلة مسبوقة بـReasoning:؛stream= مسودة Telegram فقط)/elevated on|off|ask|full(الاسم البديل:/elev؛fullيتجاوز موافقات التنفيذ)/exec host=<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)
/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|removecommands.config=trueويحترمconfigWritesللقناة. - يتحكم
/usageفي تذييل الاستخدام لكل رد؛ ويطبع/usage costملخص تكلفة محليًا من سجلات جلسة OpenClaw. /restartمعطّل افتراضيًا؛ اضبطcommands.restart: trueلتفعيله.- الغرض من
/verboseهو التصحيح وزيادة الرؤية؛ أبقه مُعطّلًا في الاستخدام العادي. - يُعد
/reasoning(و/verbose) محفوفًا بالمخاطر في إعدادات المجموعات: فقد يكشفان عن تفكير داخلي أو مخرجات أدوات لم تقصد كشفها. يُفضَّل إبقاؤهما مُعطّلين، خصوصًا في دردشات المجموعات. - المسار السريع: تُعالج الرسائل التي تحتوي على أوامر فقط من مرسلين ضمن قوائم السماح فورًا (تجاوز الطابور + النموذج).
- بوابة الإشارة في المجموعات: تتجاوز الرسائل التي تحتوي على أوامر فقط من مرسلين ضمن قوائم السماح متطلبات الإشارة.
- الاختصارات المضمّنة (للرسل ضمن قوائم السماح فقط): تعمل بعض الأوامر أيضًا عند تضمينها في رسالة عادية وتُزال قبل أن يرى النموذج النص المتبقي.
- مثال:
hey /statusيُطلق رد حالة، ويستمر النص المتبقي عبر التدفق المعتاد.
- مثال:
- حاليًا:
/help،/commands،/status،/whoami(/id). - تُتجاهَل الرسائل غير المصرّح بها التي تحتوي على أوامر فقط بصمت، وتُعامَل رموز
/...المضمّنة كنص عادي. - أوامر Skills: تُعرَض Skills من
user-invocableكأوامر شرطة مائلة. تُنقَّى الأسماء إلىa-z0-9_(حد أقصى 32 حرفًا)؛ وتحصل التصادمات على لواحق رقمية (مثل_2).- يُشغِّل
/skill <name> [input]Skill بالاسم (مفيد عندما تمنع حدود الأوامر الأصلية إنشاء أوامر لكل Skill). - افتراضيًا، تُمرَّر أوامر Skills إلى النموذج كطلب عادي.
- قد تُصرّح Skills اختياريًا بـ
command-dispatch: toolلتوجيه الأمر مباشرةً إلى أداة (حتمي، بلا نموذج). - مثال:
/prose(إضافة OpenProse) — انظر OpenProse.
- يُشغِّل
- وسائط الأوامر الأصلية: يستخدم Discord الإكمال التلقائي للخيارات الديناميكية (وقوائم الأزرار عندما تُهمل وسائط مطلوبة). يعرض Telegram وSlack قائمة أزرار عندما يدعم الأمر خيارات وتُهمل الوسيط.
أسطح الاستخدام (ما الذي يظهر وأين)
- استخدام/حصة الموفّر (مثال: «Claude متبقّي 80%») يظهر في
/statusلموفّر النموذج الحالي عند تفعيل تتبّع الاستخدام. - الرموز/التكلفة لكل رد يتحكم فيها
/usage off|tokens|full(تُلحق بالردود العادية). /model statusيتعلق بـ النماذج/المصادقة/النقاط الطرفية، وليس بالاستخدام.
اختيار النموذج (/model)
تم تنفيذ /model كتوجيه.
أمثلة:
- يعرض
/modelو/model listمُنتقيًا مدمجًا مُرقّمًا (عائلة النموذج + الموفّرات المتاحة). - يختار
/model <#>من ذلك المُنتقي (ويُفضّل الموفّر الحالي عندما يكون ممكنًا). - يعرض
/model statusالعرض التفصيلي، بما في ذلك نقطة نهاية الموفّر المُهيّأة (baseUrl) ووضع واجهة API (api) عند التوفر.
Debug overrides
يتيح/debug تعيين تجاوزات تهيئة وقت التشغيل فقط (في الذاكرة، لا على القرص). للمالك فقط. معطّل افتراضيًا؛ فعِّله باستخدام commands.debug: true.
أمثلة:
- تُطبَّق التجاوزات فورًا على قراءات التهيئة الجديدة، لكنها لا تكتب إلى
openclaw.json. - استخدم
/debug resetلمسح جميع التجاوزات والعودة إلى تهيئة القرص.
تحديثات التهيئة
يكتب/config إلى تهيئة القرص لديك (openclaw.json). للمالك فقط. معطّل افتراضيًا؛ فعِّله باستخدام commands.config: true.
أمثلة:
- يتم التحقق من صحة التهيئة قبل الكتابة؛ تُرفَض التغييرات غير الصالحة.
- تستمر تحديثات
/configعبر عمليات إعادة التشغيل.
ملاحظات الأسطح
- الأوامر النصية تعمل ضمن جلسة الدردشة العادية (تشارك الرسائل الخاصة
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 مؤقتة.