channels.*. تغطي الوصول إلى الرسائل المباشرة والمجموعات،
وإعدادات الحسابات المتعددة، وبوابة الإشارة، والمفاتيح الخاصة بكل قناة لـ Slack وDiscord وTelegram وWhatsApp وMatrix وiMessage والقنوات المضمّنة الأخرى.
بالنسبة إلى الوكلاء، والأدوات، ووقت تشغيل Gateway، والمفاتيح الأخرى على المستوى الأعلى، راجع
مرجع الإعدادات.
القنوات
تبدأ كل قناة تلقائيًا عندما يكون قسم إعداداتها موجودًا (ما لم تكنenabled: false).
الوصول إلى الرسائل المباشرة والمجموعات
تدعم جميع القنوات سياسات الرسائل المباشرة وسياسات المجموعات:| سياسة الرسائل المباشرة | السلوك |
|---|---|
pairing (الافتراضي) | يحصل المرسلون غير المعروفين على رمز اقتران لمرة واحدة؛ ويجب على المالك الموافقة |
allowlist | فقط المرسلون المدرجون في allowFrom (أو مخزن السماح المقترن) |
open | السماح بجميع الرسائل المباشرة الواردة (يتطلب allowFrom: ["*"]) |
disabled | تجاهل جميع الرسائل المباشرة الواردة |
| سياسة المجموعات | السلوك |
|---|---|
allowlist (الافتراضي) | فقط المجموعات المطابقة لقائمة السماح المضبوطة |
open | تجاوز قوائم سماح المجموعات (مع استمرار تطبيق بوابة الإشارة) |
disabled | حظر جميع رسائل المجموعات/الغرف |
يضبط
channels.defaults.groupPolicy القيمة الافتراضية عندما تكون groupPolicy الخاصة بمزوّد ما غير مضبوطة.
تنتهي صلاحية رموز الاقتران بعد ساعة واحدة. ويكون الحد الأقصى لطلبات اقتران الرسائل المباشرة المعلقة هو 3 لكل قناة.
إذا كانت كتلة المزوّد مفقودة بالكامل (channels.<provider> غير موجودة)، تعود سياسة المجموعات في وقت التشغيل إلى allowlist (إغلاق آمن) مع تحذير عند بدء التشغيل.تجاوزات نموذج القناة
استخدمchannels.modelByChannel لتثبيت معرّفات قنوات محددة على نموذج معيّن. تقبل القيم provider/model أو الأسماء المستعارة للنماذج المضبوطة. ويُطبَّق ربط القناة عندما لا تكون الجلسة تملك بالفعل تجاوزًا للنموذج (على سبيل المثال، تم ضبطه عبر /model).
الإعدادات الافتراضية للقنوات وHeartbeat
استخدمchannels.defaults لسلوك سياسة المجموعات وHeartbeat المشترك بين المزودين:
channels.defaults.groupPolicy: سياسة المجموعات الاحتياطية عندما تكونgroupPolicyعلى مستوى المزوّد غير مضبوطة.channels.defaults.contextVisibility: وضع الرؤية الافتراضي للسياق الإضافي لجميع القنوات. القيم:all(الافتراضي، تضمين جميع سياقات الاقتباس/السلسلة/السجل)، وallowlist(تضمين السياق فقط من المرسلين المدرجين في قائمة السماح)، وallowlist_quote(مثل allowlist لكن مع الاحتفاظ بسياق الاقتباس/الرد الصريح). التجاوز لكل قناة:channels.<channel>.contextVisibility.channels.defaults.heartbeat.showOk: تضمين حالات القنوات السليمة في مخرجات Heartbeat.channels.defaults.heartbeat.showAlerts: تضمين الحالات المتدهورة/حالات الخطأ في مخرجات Heartbeat.channels.defaults.heartbeat.useIndicator: عرض مخرجات Heartbeat مضغوطة على نمط المؤشر.
WhatsApp متعدد الحسابات
WhatsApp متعدد الحسابات
- تستخدم الأوامر الصادرة الحساب
defaultافتراضيًا إذا كان موجودًا؛ وإلا أول معرّف حساب مضبوط (بعد الفرز). - يؤدي
channels.whatsapp.defaultAccountالاختياري إلى تجاوز اختيار الحساب الافتراضي الاحتياطي عندما يطابق معرّف حساب مضبوط. - يُرحَّل دليل مصادقة Baileys القديم أحادي الحساب بواسطة
openclaw doctorإلىwhatsapp/default. - التجاوزات لكل حساب:
channels.whatsapp.accounts.<id>.sendReadReceiptsوchannels.whatsapp.accounts.<id>.dmPolicyوchannels.whatsapp.accounts.<id>.allowFrom.
Telegram
- Bot token:
channels.telegram.botTokenأوchannels.telegram.tokenFile(ملف عادي فقط؛ تُرفض الروابط الرمزية)، معTELEGRAM_BOT_TOKENكرجوع احتياطي للحساب الافتراضي. - يؤدي
channels.telegram.defaultAccountالاختياري إلى تجاوز اختيار الحساب الافتراضي عندما يطابق معرّف حساب مضبوط. - في إعدادات الحسابات المتعددة (معرّفا حسابين أو أكثر)، اضبط قيمة افتراضية صريحة (
channels.telegram.defaultAccountأوchannels.telegram.accounts.default) لتجنب التوجيه الاحتياطي؛ ويحذّرopenclaw doctorعندما تكون هذه القيمة مفقودة أو غير صالحة. - يمنع
configWrites: falseعمليات الكتابة إلى الإعدادات التي يبدأها Telegram (ترحيلات معرّفات المجموعات الفائقة، و/config set|unset). - تضبط إدخالات
bindings[]ذات المستوى الأعلى معtype: "acp"روابط ACP دائمة لموضوعات المنتدى (استخدمchatId:topic:topicIdالقياسي فيmatch.peer.id). تتشارك دلالات الحقول في وكلاء ACP. - تستخدم معاينات البث في Telegram كلاً من
sendMessageوeditMessageText(وتعمل في الدردشات المباشرة والجماعية). - سياسة إعادة المحاولة: راجع سياسة إعادة المحاولة.
Discord
- الرمز:
channels.discord.token، معDISCORD_BOT_TOKENكرجوع احتياطي للحساب الافتراضي. - تستخدم الاستدعاءات الصادرة المباشرة التي توفّر
tokenصريحًا لـ Discord ذلك الرمز في الاستدعاء؛ بينما تظل إعدادات إعادة المحاولة/السياسة الخاصة بالحساب تأتي من الحساب المحدد في لقطة وقت التشغيل النشطة. - يؤدي
channels.discord.defaultAccountالاختياري إلى تجاوز اختيار الحساب الافتراضي عندما يطابق معرّف حساب مضبوط. - استخدم
user:<id>(رسالة مباشرة) أوchannel:<id>(قناة guild) كأهداف للتسليم؛ وتُرفض المعرّفات الرقمية المجردة. - تكون slugs الخاصة بـ guild بأحرف صغيرة مع استبدال المسافات بـ
-؛ وتستخدم مفاتيح القنوات الاسم المحوّل إلى slug (من دون#). ويفضَّل استخدام معرّفات guild. - تُتجاهل الرسائل التي ينشئها bot افتراضيًا. يفعّل
allowBots: trueقبولها؛ واستخدمallowBots: "mentions"لقبول رسائل bot التي تذكر bot فقط (مع استمرار تصفية الرسائل الخاصة به). - يؤدي
channels.discord.guilds.<id>.ignoreOtherMentions(وتجاوزات القنوات) إلى إسقاط الرسائل التي تذكر مستخدمًا آخر أو دورًا آخر ولكن لا تذكر bot (باستثناء @everyone/@here). - يؤدي
maxLinesPerMessage(الافتراضي 17) إلى تقسيم الرسائل الطويلة عموديًا حتى عندما تكون أقل من 2000 حرف. - تتحكم
channels.discord.threadBindingsفي التوجيه المرتبط بسلاسل Discord:enabled: تجاوز Discord لميزات الجلسات المرتبطة بالسلسلة (/focusو/unfocusو/agentsو/session idleو/session max-ageوالتسليم/التوجيه المرتبط)idleHours: تجاوز Discord للإلغاء التلقائي للتركيز بسبب عدم النشاط بالساعات (0للتعطيل)maxAgeHours: تجاوز Discord للحد الأقصى الصلب للعمر بالساعات (0للتعطيل)spawnSubagentSessions: مفتاح اشتراك لـsessions_spawn({ thread: true })من أجل إنشاء/ربط السلاسل تلقائيًا
- تضبط إدخالات
bindings[]ذات المستوى الأعلى معtype: "acp"روابط ACP دائمة للقنوات والسلاسل (استخدم معرّف القناة/السلسلة فيmatch.peer.id). تتشارك دلالات الحقول في وكلاء ACP. - يضبط
channels.discord.ui.components.accentColorلون التمييز لحاويات Discord components v2. - يفعّل
channels.discord.voiceمحادثات قنوات Discord الصوتية بالإضافة إلى تجاوزات الانضمام التلقائي + TTS الاختيارية. - تمرر
channels.discord.voice.daveEncryptionوchannels.discord.voice.decryptionFailureToleranceإلى خيارات DAVE في@discordjs/voice(القيم الافتراضيةtrueو24). - يحاول OpenClaw أيضًا استعادة استقبال الصوت عبر مغادرة/إعادة الانضمام إلى جلسة صوتية بعد تكرار إخفاقات فك التشفير.
- تعد
channels.discord.streamingمفتاح وضع البث الرسمي. ويتم ترحيل القيم القديمةstreamModeوقيمstreamingالمنطقية تلقائيًا. - تعيّن
channels.discord.autoPresenceتوافر وقت التشغيل إلى حالة حضور bot (سليم => online، متدهور => idle، مستنزف => dnd) وتسمح بتجاوزات اختيارية لنص الحالة. - يعيد
channels.discord.dangerouslyAllowNameMatchingتفعيل المطابقة القابلة للتغيير للاسم/الوسم (وضع توافق للطوارئ). channels.discord.execApprovals: تسليم موافقات Exec الأصلية في Discord وتفويض الموافقين.enabled: trueأوfalseأو"auto"(الافتراضي). وفي الوضع التلقائي، تُفعّل موافقات exec عندما يمكن حلّ الموافقين منapproversأوcommands.ownerAllowFrom.approvers: معرّفات مستخدمي Discord المسموح لهم بالموافقة على طلبات exec. ويعود إلىcommands.ownerAllowFromعند عدم ضبطه.agentFilter: قائمة سماح اختيارية لمعرّفات الوكلاء. احذفها لتوجيه الموافقات لجميع الوكلاء.sessionFilter: أنماط اختيارية لمفاتيح الجلسات (كسلسلة فرعية أو regex).target: مكان إرسال مطالبات الموافقة. يرسل"dm"(الافتراضي) إلى الرسائل المباشرة للموافقين، ويرسل"channel"إلى القناة الأصلية، ويرسل"both"إلى كليهما. وعندما يتضمن الهدف"channel"، لا يمكن استخدام الأزرار إلا من قبل الموافقين المحلولين.cleanupAfterResolve: عندما تكونtrue، يحذف رسائل الموافقة المباشرة بعد الموافقة أو الرفض أو انتهاء المهلة.
off (لا شيء)، وown (رسائل bot، الافتراضي)، وall (كل الرسائل)، وallowlist (من guilds.<id>.users على جميع الرسائل).
Google Chat
- JSON حساب الخدمة: مضمن (
serviceAccount) أو قائم على ملف (serviceAccountFile). - كما أن SecretRef الخاص بحساب الخدمة مدعوم أيضًا (
serviceAccountRef). - الرجوع الاحتياطي عبر البيئة:
GOOGLE_CHAT_SERVICE_ACCOUNTأوGOOGLE_CHAT_SERVICE_ACCOUNT_FILE. - استخدم
spaces/<spaceId>أوusers/<userId>كأهداف للتسليم. - يعيد
channels.googlechat.dangerouslyAllowNameMatchingتفعيل المطابقة القابلة للتغيير لعنوان البريد الإلكتروني الأساسي (وضع توافق للطوارئ).
Slack
- وضع Socket يتطلب كلاً من
botTokenوappToken(SLACK_BOT_TOKEN+SLACK_APP_TOKENكرجوع احتياطي عبر البيئة للحساب الافتراضي). - وضع HTTP يتطلب
botTokenبالإضافة إلىsigningSecret(على الجذر أو لكل حساب). - يقبل كل من
botTokenوappTokenوsigningSecretوuserTokenسلاسل صريحة أو كائنات SecretRef. - تكشف لقطات حساب Slack عن حقول مصدر/حالة لكل اعتماد مثل
botTokenSourceوbotTokenStatusوappTokenStatus، وفي وضع HTTP،signingSecretStatus. وتعنيconfigured_unavailableأن الحساب مضبوط عبر SecretRef لكن مسار الأمر/وقت التشغيل الحالي لم يتمكن من حل قيمة السر. - يمنع
configWrites: falseعمليات الكتابة إلى الإعدادات التي يبدأها Slack. - يؤدي
channels.slack.defaultAccountالاختياري إلى تجاوز اختيار الحساب الافتراضي عندما يطابق معرّف حساب مضبوط. - تُعد
channels.slack.streaming.modeمفتاح وضع البث الرسمي في Slack. وتتحكمchannels.slack.streaming.nativeTransportفي ناقل البث الأصلي في Slack. ويتم ترحيل القيم القديمةstreamMode، والقيم المنطقيةstreaming، وnativeStreamingتلقائيًا. - استخدم
user:<id>(رسالة مباشرة) أوchannel:<id>كأهداف للتسليم.
off وown (الافتراضي) وall وallowlist (من reactionAllowlist).
عزل جلسات السلاسل: تكون thread.historyScope لكل سلسلة على حدة (الافتراضي) أو مشتركة عبر القناة. وتقوم thread.inheritParent بنسخ سجل القناة الأب إلى السلاسل الجديدة.
- يتطلب البث الأصلي في Slack بالإضافة إلى حالة السلسلة على نمط Slack assistant “is typing…” هدف سلسلة رد. وتبقى الرسائل المباشرة ذات المستوى الأعلى خارج السلسلة افتراضيًا، لذلك تستخدم
typingReactionأو التسليم العادي بدلًا من المعاينة بنمط السلسلة. - تضيف
typingReactionتفاعلًا مؤقتًا إلى رسالة Slack الواردة أثناء تنفيذ الرد، ثم تزيله عند الاكتمال. استخدم shortcode لرمز Slack التعبيري مثل"hourglass_flowing_sand". channels.slack.execApprovals: تسليم موافقات Exec الأصلية في Slack وتفويض الموافقين. المخطط نفسه كما في Discord: enabled(true/false/"auto")، وapprovers(معرّفات مستخدمي Slack)، وagentFilter، وsessionFilter، وtarget("dm"أو"channel"أو"both").
| مجموعة الإجراءات | الافتراضي | ملاحظات |
|---|---|---|
| reactions | مفعّل | التفاعل + سرد التفاعلات |
| messages | مفعّل | القراءة/الإرسال/التحرير/الحذف |
| pins | مفعّل | التثبيت/إزالة التثبيت/السرد |
| memberInfo | مفعّل | معلومات العضو |
| emojiList | مفعّل | قائمة emoji المخصصة |
Mattermost
يأتي Mattermost كـ Plugin: openclaw plugins install @openclaw/mattermost.
oncall (الرد عند @-mention، وهو الافتراضي)، وonmessage (كل رسالة)، وonchar (الرسائل التي تبدأ ببادئة تشغيل).
عند تفعيل الأوامر الأصلية في Mattermost:
- يجب أن يكون
commands.callbackPathمسارًا (مثل/api/channels/mattermost/command) وليس عنوان URL كاملًا. - يجب أن يُحل
commands.callbackUrlإلى نقطة نهاية OpenClaw gateway وأن يكون قابلاً للوصول من خادم Mattermost. - تتم مصادقة callbacks الخاصة بالشرطة المائلة الأصلية باستخدام الرموز الخاصة بكل أمر التي يعيدها
Mattermost أثناء تسجيل أوامر الشرطة المائلة. وإذا فشل التسجيل أو لم تُفعَّل
أي أوامر، يرفض OpenClaw callbacks مع
Unauthorized: invalid command token. - بالنسبة إلى مضيفي callback الخاصين/الداخليين/ضمن tailnet، قد يتطلب Mattermost
أن تتضمن
ServiceSettings.AllowedUntrustedInternalConnectionsالمضيف/النطاق الخاص بالـ callback. استخدم قيم المضيف/النطاق، وليس عناوين URL الكاملة. channels.mattermost.configWrites: السماح أو منع عمليات الكتابة إلى الإعدادات التي يبدأها Mattermost.channels.mattermost.requireMention: اشتراط@mentionقبل الرد في القنوات.channels.mattermost.groups.<channelId>.requireMention: تجاوز بوابة الإشارة لكل قناة ("*"للقيمة الافتراضية).- يؤدي
channels.mattermost.defaultAccountالاختياري إلى تجاوز اختيار الحساب الافتراضي عندما يطابق معرّف حساب مضبوط.
Signal
off وown (الافتراضي) وall وallowlist (من reactionAllowlist).
channels.signal.account: تثبيت بدء تشغيل القناة على هوية حساب Signal محددة.channels.signal.configWrites: السماح أو منع عمليات الكتابة إلى الإعدادات التي يبدأها Signal.- يؤدي
channels.signal.defaultAccountالاختياري إلى تجاوز اختيار الحساب الافتراضي عندما يطابق معرّف حساب مضبوط.
BlueBubbles
يُعد BlueBubbles هو المسار الموصى به لـ iMessage (مدعومًا بـ Plugin، ومضبوطًا تحتchannels.bluebubbles).
- مسارات المفاتيح الأساسية المغطاة هنا:
channels.bluebubblesوchannels.bluebubbles.dmPolicy. - يؤدي
channels.bluebubbles.defaultAccountالاختياري إلى تجاوز اختيار الحساب الافتراضي عندما يطابق معرّف حساب مضبوط. - يمكن لإدخالات
bindings[]ذات المستوى الأعلى معtype: "acp"ربط محادثات BlueBubbles بجلسات ACP دائمة. استخدم handle في BlueBubbles أو سلسلة هدف (chat_id:*أوchat_guid:*أوchat_identifier:*) فيmatch.peer.id. دلالات الحقول المشتركة: وكلاء ACP. - تم توثيق إعدادات قناة BlueBubbles الكاملة في BlueBubbles.
iMessage
يشغّل OpenClaw الأمرimsg rpc (JSON-RPC عبر stdio). لا حاجة إلى daemon أو منفذ.
-
يؤدي
channels.imessage.defaultAccountالاختياري إلى تجاوز اختيار الحساب الافتراضي عندما يطابق معرّف حساب مضبوط. - يتطلب Full Disk Access لقاعدة بيانات Messages.
-
فضّل الأهداف
chat_id:<id>. استخدمimsg chats --limit 20لسرد الدردشات. -
يمكن أن يشير
cliPathإلى SSH wrapper؛ اضبطremoteHost(hostأوuser@host) لجلب المرفقات عبر SCP. -
تقيّد
attachmentRootsوremoteAttachmentRootsمسارات المرفقات الواردة (الافتراضي:/Users/*/Library/Messages/Attachments). -
يستخدم SCP التحقق الصارم من مفتاح المضيف، لذا تأكد من أن مفتاح مضيف relay موجود مسبقًا في
~/.ssh/known_hosts. -
channels.imessage.configWrites: السماح أو منع عمليات الكتابة إلى الإعدادات التي يبدأها iMessage. -
يمكن لإدخالات
bindings[]ذات المستوى الأعلى معtype: "acp"ربط محادثات iMessage بجلسات ACP دائمة. استخدم handle مُطبّعًا أو هدف دردشة صريحًا (chat_id:*أوchat_guid:*أوchat_identifier:*) فيmatch.peer.id. دلالات الحقول المشتركة: وكلاء ACP.
مثال على SSH wrapper لـ iMessage
مثال على SSH wrapper لـ iMessage
Matrix
تأتي Matrix مدعومة بـ Plugin ويتم ضبطها تحتchannels.matrix.
- تستخدم مصادقة الرمز
accessToken؛ بينما تستخدم مصادقة كلمة المرورuserId+password. - يوجّه
channels.matrix.proxyحركة HTTP الخاصة بـ Matrix عبر وكيل HTTP(S) صريح. ويمكن للحسابات المسماة تجاوزه باستخدامchannels.matrix.accounts.<id>.proxy. - يسمح
channels.matrix.network.dangerouslyAllowPrivateNetworkباستخدام homeservers الخاصة/الداخلية. ويُعدproxyوهذا الاشتراك الشبكي عنصرَي تحكم مستقلين. - يختار
channels.matrix.defaultAccountالحساب المفضل في إعدادات الحسابات المتعددة. - تكون القيمة الافتراضية لـ
channels.matrix.autoJoinهيoff، لذلك يتم تجاهل الغرف المدعوّة والدعوات الجديدة على نمط الرسائل المباشرة حتى تضبطautoJoin: "allowlist"معautoJoinAllowlistأوautoJoin: "always". channels.matrix.execApprovals: تسليم موافقات Exec الأصلية في Matrix وتفويض الموافقين.enabled: trueأوfalseأو"auto"(الافتراضي). وفي الوضع التلقائي، تُفعّل موافقات exec عندما يمكن حلّ الموافقين منapproversأوcommands.ownerAllowFrom.approvers: معرّفات مستخدمي Matrix (مثل@owner:example.org) المسموح لهم بالموافقة على طلبات exec.agentFilter: قائمة سماح اختيارية لمعرّفات الوكلاء. احذفها لتوجيه الموافقات لجميع الوكلاء.sessionFilter: أنماط اختيارية لمفاتيح الجلسات (كسلسلة فرعية أو regex).target: مكان إرسال مطالبات الموافقة."dm"(الافتراضي)، أو"channel"(الغرفة الأصلية)، أو"both".- التجاوزات لكل حساب:
channels.matrix.accounts.<id>.execApprovals.
- تتحكم
channels.matrix.dm.sessionScopeفي كيفية تجميع رسائل Matrix المباشرة في جلسات: تشاركper-user(الافتراضي) حسب النظير الموجّه، بينما تعزلper-roomكل غرفة رسائل مباشرة. - تستخدم فحوصات الحالة وعمليات البحث المباشر في الدليل في Matrix سياسة الوكيل نفسها المستخدمة في حركة وقت التشغيل.
- تم توثيق إعدادات Matrix الكاملة، وقواعد الاستهداف، وأمثلة الإعداد في Matrix.
Microsoft Teams
تأتي Microsoft Teams مدعومة بـ Plugin ويتم ضبطها تحتchannels.msteams.
- مسارات المفاتيح الأساسية المغطاة هنا:
channels.msteamsوchannels.msteams.configWrites. - تم توثيق إعدادات Teams الكاملة (بيانات الاعتماد، وwebhook، وسياسة الرسائل المباشرة/المجموعات، والتجاوزات لكل فريق/قناة) في Microsoft Teams.
IRC
تأتي IRC مدعومة بـ Plugin ويتم ضبطها تحتchannels.irc.
- مسارات المفاتيح الأساسية المغطاة هنا:
channels.ircوchannels.irc.dmPolicyوchannels.irc.configWritesوchannels.irc.nickserv.*. - يؤدي
channels.irc.defaultAccountالاختياري إلى تجاوز اختيار الحساب الافتراضي عندما يطابق معرّف حساب مضبوط. - تم توثيق إعدادات قناة IRC الكاملة (المضيف/المنفذ/TLS/القنوات/قوائم السماح/بوابة الإشارة) في IRC.
الحسابات المتعددة (كل القنوات)
شغّل عدة حسابات لكل قناة (لكل منهاaccountId خاص بها):
- تُستخدم
defaultعند حذفaccountId(في CLI + التوجيه). - تنطبق رموز البيئة فقط على الحساب الافتراضي.
- تنطبق إعدادات القناة الأساسية على جميع الحسابات ما لم يتم تجاوزها لكل حساب.
- استخدم
bindings[].match.accountIdلتوجيه كل حساب إلى وكيل مختلف. - إذا أضفت حسابًا غير افتراضي عبر
openclaw channels add(أو onboarding القناة) بينما كنت لا تزال تستخدم إعداد قناة أحادي الحساب على المستوى الأعلى، يقوم OpenClaw أولًا بترقية القيم أحادية الحساب على المستوى الأعلى الخاصة بالحساب إلى خريطة حسابات القناة بحيث يواصل الحساب الأصلي العمل. وتنقل معظم القنوات هذه القيم إلىchannels.<channel>.accounts.default؛ أما Matrix فيمكنها بدلًا من ذلك الحفاظ على هدف مسمّى/افتراضي مطابق موجود. - تستمر الروابط الحالية الخاصة بالقناة فقط (من دون
accountId) في مطابقة الحساب الافتراضي؛ وتبقى الروابط الخاصة بالحساب اختيارية. - يقوم
openclaw doctor --fixأيضًا بإصلاح الأشكال المختلطة عبر نقل قيم أحادية الحساب على المستوى الأعلى الخاصة بالحساب إلى الحساب المُرقّى المختار لتلك القناة. وتستخدم معظم القنواتaccounts.default؛ أما Matrix فيمكنها الحفاظ على هدف مسمّى/افتراضي مطابق موجود بدلًا من ذلك.
قنوات Plugin الأخرى
يتم ضبط كثير من قنوات Plugins على شكلchannels.<id> وتوثيقها في صفحات القنوات المخصصة لها (مثل Feishu وMatrix وLINE وNostr وZalo وNextcloud Talk وSynology Chat وTwitch).
راجع فهرس القنوات الكامل: القنوات.
بوابة الإشارة في الدردشة الجماعية
تتطلب رسائل المجموعات افتراضيًا إشارة (إشارة من بيانات التعريف أو أنماط regex آمنة). ينطبق ذلك على مجموعات WhatsApp وTelegram وDiscord وGoogle Chat وiMessage. أنواع الإشارة:- الإشارات عبر بيانات التعريف: إشارات @ الأصلية في المنصة. ويتم تجاهلها في وضع الدردشة الذاتية في WhatsApp.
- أنماط النص: أنماط regex آمنة في
agents.list[].groupChat.mentionPatterns. وتُتجاهل الأنماط غير الصالحة والتكرار المتداخل غير الآمن. - لا تُفرض بوابة الإشارة إلا عندما يكون الاكتشاف ممكنًا (إشارات أصلية أو وجود نمط واحد على الأقل).
messages.groupChat.historyLimit القيمة الافتراضية العامة. ويمكن للقنوات التجاوز عبر channels.<channel>.historyLimit (أو لكل حساب). اضبط 0 للتعطيل.
حدود سجل الرسائل المباشرة
telegram وwhatsapp وdiscord وslack وsignal وimessage وmsteams.
وضع الدردشة الذاتية
ضمّن رقمك الخاص فيallowFrom لتفعيل وضع الدردشة الذاتية (يتجاهل إشارات @ الأصلية، ويرد فقط على الأنماط النصية):
الأوامر (معالجة أوامر الدردشة)
تفاصيل الأوامر
تفاصيل الأوامر
- تضبط هذه الكتلة أسطح الأوامر. وبالنسبة إلى فهرس الأوامر المضمنة + المجمعة الحالي، راجع أوامر الشرطة المائلة.
- هذه الصفحة هي مرجع لمفاتيح الإعدادات، وليست فهرس الأوامر الكامل. الأوامر المملوكة للقنوات/Plugins مثل QQ Bot
/bot-pingو/bot-helpو/bot-logs، وLINE /card، وdevice-pair /pair، وmemory /dreaming، وphone-control /phone، وTalk /voiceموثقة في صفحات القنوات/Plugins الخاصة بها بالإضافة إلى أوامر الشرطة المائلة. - يجب أن تكون الأوامر النصية رسائل مستقلة تبدأ بـ
/. - يؤدي
native: "auto"إلى تشغيل الأوامر الأصلية لـ Discord/Telegram، ويُبقي Slack معطلًا. - يؤدي
nativeSkills: "auto"إلى تشغيل أوامر Skills الأصلية لـ Discord/Telegram، ويُبقي Slack معطلًا. - التجاوز لكل قناة:
channels.discord.commands.native(قيمة منطقية أو"auto"). وتؤديfalseإلى مسح الأوامر المسجلة سابقًا. - تجاوز تسجيل Skills الأصلية لكل قناة باستخدام
channels.<provider>.commands.nativeSkills. - تضيف
channels.telegram.customCommandsإدخالات إضافية إلى قائمة bot في Telegram. - يؤدي
bash: trueإلى تفعيل! <cmd>لصدفة المضيف. ويتطلبtools.elevated.enabledوأن يكون المرسل ضمنtools.elevated.allowFrom.<channel>. - يؤدي
config: trueإلى تفعيل/config(قراءة/كتابةopenclaw.json). وبالنسبة إلى عملاء gateway chat.send، تتطلب عمليات الكتابة الدائمة بواسطة/config set|unsetأيضًاoperator.admin؛ بينما يبقى/config showللقراءة فقط متاحًا لعملاء المشغل العاديين ذوي نطاق الكتابة. - يؤدي
mcp: trueإلى تفعيل/mcpلإعدادات خادم MCP الذي يديره OpenClaw تحتmcp.servers. - يؤدي
plugins: trueإلى تفعيل/pluginsلاكتشاف Plugins وتثبيتها وعناصر التحكم في التفعيل/التعطيل. - تتحكم
channels.<provider>.configWritesفي طفرات الإعدادات لكل قناة (الافتراضي: true). - وبالنسبة إلى القنوات متعددة الحسابات، تتحكم
channels.<provider>.accounts.<id>.configWritesأيضًا في عمليات الكتابة التي تستهدف ذلك الحساب (على سبيل المثال/allowlist --config --account <id>أو/config set channels.<provider>.accounts.<id>...). - يؤدي
restart: falseإلى تعطيل/restartوإجراءات أداة إعادة تشغيل gateway. الافتراضي:true. - تُعد
ownerAllowFromقائمة السماح الصريحة للمالك للأوامر/الأدوات الخاصة بالمالك فقط. وهي منفصلة عنallowFrom. - تؤدي
ownerDisplay: "hash"إلى تجزئة معرّفات المالك في system prompt. اضبطownerDisplaySecretللتحكم في التجزئة. - تكون
allowFromلكل provider. وعند ضبطها، تصبح مصدر التفويض الوحيد (ويتم تجاهل قوائم سماح القنوات/الاقتران وuseAccessGroups). - يؤدي
useAccessGroups: falseإلى السماح للأوامر بتجاوز سياسات مجموعات الوصول عندما لا تكونallowFromمضبوطة. - خريطة توثيق الأوامر:
ذو صلة
- مرجع الإعدادات — المفاتيح ذات المستوى الأعلى
- الإعدادات — الوكلاء
- نظرة عامة على القنوات