منصات المراسلة
Slack
الحالة: جاهز للإنتاج للرسائل المباشرة + القنوات عبر تكاملات تطبيق Slack. الوضع الافتراضي هو Socket Mode؛ كما يتم دعم وضع HTTP Events API.
الإعداد السريع
نموذج الرموز المميزة
botToken+appTokenمطلوبان لوضع Socket Mode.- وضع HTTP يتطلب
botToken+signingSecret. - رموز التكوين تتجاوز الرجوع إلى متغيرات البيئة.
- الرجوع إلى متغير البيئة
SLACK_BOT_TOKEN/SLACK_APP_TOKENينطبق فقط على الحساب الافتراضي. userToken(xoxp-...) خاص بالتكوين فقط (لا رجوع إلى متغير البيئة) ويفترض سلوك القراءة فقط افتراضيًا (userTokenReadOnly: true).- اختياري: أضف
chat:write.customizeإذا كنت تريد أن تستخدم الرسائل الصادرة هوية الوكيل النشط (usernameمخصص وأيقونة). يستخدمicon_emojiبناء الجملة:emoji_name:.
💡 للإجراءات/قراءات الدليل، يمكن تفضيل رمز المستخدم عند تكوينه. للكتابة، يبقى رمز البوت مفضلًا؛ كتابات رمز المستخدم مسموح بها فقط عندما يكون
userTokenReadOnly: falseورمز البوت غير متوفر.
التحكم في الوصول والتوجيه
يتحكم channels.slack.dmPolicy في الوصول إلى الرسائل المباشرة (قديم: channels.slack.dm.policy):
pairing(افتراضي)allowlistopen(يتطلب تضمين"*"فيchannels.slack.allowFrom؛ قديم:channels.slack.dm.allowFrom)disabled
علامات الرسائل المباشرة:
dm.enabled(افتراضي true)channels.slack.allowFrom(مفضل)dm.allowFrom(قديم)dm.groupEnabled(الرسائل المباشرة الجماعية افتراضيًا false)dm.groupChannels(قائمة السماح MPIM اختيارية)
أولوية الحسابات المتعددة:
channels.slack.accounts.default.allowFromينطبق فقط على الحسابdefault.- الحسابات المسماة ترث
channels.slack.allowFromعندما يكونallowFromالخاص بها غير معين. - الحسابات المسماة لا ترث
channels.slack.accounts.default.allowFrom.
يستخدم الاقتران في الرسائل المباشرة الأمر openclaw pairing approve slack .
يتحكم channels.slack.groupPolicy في معالجة القناة:
openallowlistdisabled
توجد قائمة السماح للقناة تحت channels.slack.channels.
ملاحظة وقت التشغيل: إذا كان channels.slack مفقودًا تمامًا (إعداد يعتمد فقط على متغيرات البيئة)، فإن وقت التشغيل يتراجع إلى groupPolicy="allowlist" ويسجل تحذيرًا (حتى إذا تم تعيين channels.defaults.groupPolicy).
تحديد الاسم/المعرف:
- يتم حل إدخالات قائمة السماح للقناة وإدخالات قائمة السماح للرسائل المباشرة عند بدء التشغيل عندما يسمح الوصول بالرمز المميز
- يتم الاحتفاظ بالإدخالات غير المحلولة كما تم تكوينها
- مطابقة التفويض الوارد تكون بالمعرف أولاً افتراضيًا؛ مطابقة اسم المستخدم/الرابط المباشر تتطلب
channels.slack.dangerouslyAllowNameMatching: true
رسائل القناة مقيدة بالإشارة افتراضيًا. مصادر الإشارة:
- إشارة صريحة للتطبيق (
<@botId>) - أنماط التعبير العادي للإشارة (
agents.list[].groupChat.mentionPatterns، الرجوعmessages.groupChat.mentionPatterns) - سلوك الرد على بوت ضمن الخيط الضمني
ضوابط لكل قناة (channels.slack.channels.<id|name>):
requireMentionusers(قائمة السماح)allowBotsskillssystemPrompttools,toolsBySender- تنسيق مفتاح
toolsBySender:id:,e164:,username:,name:, أو الحرف العام"*"(المفاتيح القديمة غير المسبوقة لا تزال تُرسم إلىid:فقط)
الأوامر وسلوك الشرطة المائلة
- الوضع التلقائي للأمر الأصلي معطل لـ Slack (
commands.native: "auto"لا يُفعّل أوامر Slack الأصلية). - فعّل معالجات أوامر Slack الأصلية باستخدام
channels.slack.commands.native: true(أوcommands.native: trueعام). - عند تمكين الأوامر الأصلية، سجل أوامر الشرطة المائلة المطابقة في Slack (
/أسماء)، باستثناء واحد:- سجل
/agentstatusلأمر الحالة (Slack يحتفظ بـ/status)
- سجل
- إذا لم تكن الأوامر الأصلية مفعلة، يمكنك تشغيل أمر شرطة مائلة واحد مُكون عبر
channels.slack.slashCommand. - قوائم وسيطات الأمر الأصلي الآن تتكيف مع استراتيجية العرض:
- حتى 5 خيارات: كتل أزرار
- 6-100 خيار: قائمة اختيار ثابتة
- أكثر من 100 خيار: اختيار خارجي مع تصفية خيارات غير متزامنة عندما تكون معالجات خيارات التفاعل متاحة
- إذا تجاوزت قيم الخيارات المشفرة حدود Slack، يتراجع التدفق إلى الأزرار
- للحِمل الطويل للخيارات، تستخدم قوائم وسيطات أمر الشرطة المائلة مربع حوار تأكيد قبل إرسال القيمة المحددة.
إعدادات أمر الشرطة المائلة الافتراضية:
enabled: falsename: "openclaw"sessionPrefix: "slack:slash"ephemeral: true
جلسات الشرطة المائلة تستخدم مفاتيح معزولة:
agent::slack:slash:
ولا تزال توجه تنفيذ الأمر ضد جلسة المحادثة المستهدفة (CommandTargetSessionKey).