CLI commands
القنوات
openclaw channels
إدارة حسابات قنوات الدردشة وحالة تشغيلها على Gateway.
المستندات ذات الصلة:
الأوامر الشائعة
openclaw channels list
openclaw channels status
openclaw channels capabilities
openclaw channels capabilities --channel discord --target channel:123
openclaw channels resolve --channel slack "#general" "@jane"
openclaw channels logs --channel all
الحالة / القدرات / حلّ الأسماء / السجلات
channels status:--probe,--timeout <ms>,--jsonchannels capabilities:--channel <name>,--account <id>(فقط مع--channel)،--target <dest>,--timeout <ms>,--jsonchannels resolve:<entries...>,--channel <name>,--account <id>,--kind <auto|user|group>,--jsonchannels logs:--channel <name|all>,--lines <n>,--json
channels status --probe هو المسار الحي: على Gateway قابل للوصول، يشغّل فحوصات probeAccount لكل حساب وفحوصات auditAccount الاختيارية، لذلك يمكن أن يتضمن الإخراج حالة النقل بالإضافة إلى نتائج الفحص مثل works أو probe failed أو audit ok أو audit failed.
إذا تعذر الوصول إلى Gateway، يعود channels status إلى ملخصات مبنية على الإعدادات فقط بدلًا من إخراج الفحص الحي.
لا تستخدم openclaw sessions أو sessions.list في Gateway أو أداة الوكيل sessions_list كإشارة لصحة مقبس القناة. هذه الأسطح تعرض صفوف المحادثات المخزنة، وليس حالة تشغيل المزوّد. بعد إعادة تشغيل مزوّد Discord، قد يكون الحساب المتصل والهادئ سليمًا حتى لو لم يظهر صف جلسة Discord إلى أن يقع حدث المحادثة الوارد أو الصادر التالي.
إضافة الحسابات / إزالتها
openclaw channels add --channel telegram --token <bot-token>
openclaw channels add --channel nostr --private-key "$NOSTR_PRIVATE_KEY"
openclaw channels remove --channel telegram --delete
يعمل channels remove فقط على Plugins القنوات المثبتة/المكوّنة. استخدم channels add أولًا لقنوات الكتالوج القابلة للتثبيت.
بالنسبة إلى Plugins القنوات المدعومة بوقت التشغيل، يطلب channels remove أيضًا من Gateway العامل إيقاف الحساب المحدد قبل تحديث الإعدادات، بحيث لا يترك تعطيل الحساب أو حذفه المستمع القديم نشطًا حتى إعادة التشغيل.
تشمل أسطح الإضافة غير التفاعلية الشائعة:
- قنوات رمز البوت:
--token,--bot-token,--app-token,--token-file - حقول نقل Signal/iMessage:
--signal-number,--cli-path,--http-url,--http-host,--http-port,--db-path,--service,--region - حقول Google Chat:
--webhook-path,--webhook-url,--audience-type,--audience - حقول Matrix:
--homeserver,--user-id,--access-token,--password,--device-name,--initial-sync-limit - حقول Nostr:
--private-key,--relay-urls - حقول Tlon:
--ship,--url,--code,--group-channels,--dm-allowlist,--auto-discover-channels --use-envللمصادقة المدعومة بمتغيرات البيئة لحساب افتراضي حيثما كان ذلك مدعومًا
إذا كان يجب تثبيت Plugin قناة أثناء أمر إضافة موجّه بالأعلام، يستخدم OpenClaw مصدر التثبيت الافتراضي للقناة من دون فتح مطالبة تثبيت Plugin التفاعلية.
عند تشغيل openclaw channels add من دون أعلام، يمكن للمعالج التفاعلي أن يطالبك بما يلي:
- معرّفات الحسابات لكل قناة محددة
- أسماء عرض اختيارية لتلك الحسابات
Bind configured channel accounts to agents now?
إذا أكدت الربط الآن، يسألك المعالج أي وكيل يجب أن يملك كل حساب قناة مكوّنًا ويكتب ارتباطات توجيه محددة النطاق بالحساب.
يمكنك أيضًا إدارة قواعد التوجيه نفسها لاحقًا باستخدام openclaw agents bindings وopenclaw agents bind وopenclaw agents unbind (راجع الوكلاء).
عند إضافة حساب غير افتراضي إلى قناة لا تزال تستخدم إعدادات ذات حساب واحد في المستوى الأعلى، يرقّي OpenClaw القيم ذات الحساب في المستوى الأعلى إلى خريطة حسابات القناة قبل كتابة الحساب الجديد. تصل معظم القنوات بهذه القيم إلى channels.<channel>.accounts.default، لكن القنوات المضمّنة يمكنها بدلًا من ذلك الاحتفاظ بحساب موجود مطابق ومُرقّى. Matrix هو المثال الحالي: إذا كان هناك حساب واحد مسمى موجود بالفعل، أو كان defaultAccount يشير إلى حساب مسمى موجود، فإن الترقية تحتفظ بذلك الحساب بدلًا من إنشاء accounts.default جديد.
يبقى سلوك التوجيه متسقًا:
- تستمر ارتباطات القناة فقط الموجودة (دون
accountId) في مطابقة الحساب الافتراضي. - لا ينشئ
channels addالارتباطات تلقائيًا ولا يعيد كتابتها في الوضع غير التفاعلي. - يمكن للإعداد التفاعلي أن يضيف اختياريًا ارتباطات محددة النطاق بالحساب.
إذا كانت إعداداتك موجودة بالفعل في حالة مختلطة (حسابات مسماة موجودة وقيم حساب واحد في المستوى الأعلى لا تزال مضبوطة)، فشغّل openclaw doctor --fix لنقل القيم محددة النطاق بالحساب إلى الحساب المُرقّى المختار لتلك القناة. تروّج معظم القنوات إلى accounts.default؛ يمكن لـ Matrix الاحتفاظ بهدف مسمى/افتراضي موجود بدلًا من ذلك.
تسجيل الدخول وتسجيل الخروج (تفاعلي)
openclaw channels login --channel whatsapp
openclaw channels logout --channel whatsapp
- يدعم
channels loginالخيار--verbose. - يمكن لـ
channels loginوlogoutاستنتاج القناة عندما يكون هناك هدف تسجيل دخول مدعوم واحد فقط مكوّن. - يفضّل
channels logoutمسار Gateway الحي عندما يكون قابلًا للوصول، بحيث يوقف تسجيل الخروج أي مستمع نشط قبل مسح حالة مصادقة القناة. إذا لم يكن Gateway المحلي قابلًا للوصول، فإنه يعود إلى تنظيف المصادقة المحلي. - شغّل
channels loginمن طرفية على مضيف Gateway. يحظرexecالخاص بالوكيل تدفق تسجيل الدخول التفاعلي هذا؛ يجب استخدام أدوات تسجيل دخول الوكيل الأصلية للقناة، مثلwhatsapp_login، من الدردشة عند توفرها.
استكشاف الأخطاء وإصلاحها
- شغّل
openclaw status --deepلإجراء فحص واسع. - استخدم
openclaw doctorللإصلاحات الموجّهة. - يطبع
openclaw channels listالعبارةClaude: HTTP 403 ... user:profile← تحتاج لقطة الاستخدام إلى نطاقuser:profile. استخدم--no-usage، أو وفّر مفتاح جلسة claude.ai (CLAUDE_WEB_SESSION_KEY/CLAUDE_WEB_COOKIE)، أو أعد المصادقة عبر Claude CLI. - يعود
openclaw channels statusإلى ملخصات مبنية على الإعدادات فقط عندما لا يمكن الوصول إلى Gateway. إذا كانت بيانات اعتماد قناة مدعومة مكوّنة عبر SecretRef لكنها غير متاحة في مسار الأمر الحالي، فإنه يبلّغ عن ذلك الحساب باعتباره مكوّنًا مع ملاحظات تدهور بدلًا من إظهاره كغير مكوّن.
فحص القدرات
اجلب تلميحات قدرات المزوّد (النوايا/النطاقات حيثما توفرت) بالإضافة إلى دعم الميزات الثابت:
openclaw channels capabilities
openclaw channels capabilities --channel discord --target channel:123
ملاحظات:
--channelاختياري؛ احذفه لسرد كل قناة (بما في ذلك الامتدادات).--accountصالح فقط مع--channel.- يقبل
--targetالقيمةchannel:<id>أو معرّف قناة رقميًا خامًا، وينطبق فقط على Discord. - الفحوصات خاصة بالمزوّد: نوايا Discord + أذونات القناة الاختيارية؛ نطاقات بوت Slack والمستخدم؛ أعلام بوت Telegram + Webhook؛ إصدار عفريت Signal؛ رمز تطبيق Microsoft Teams + أدوار/نطاقات Graph (مشروحة حيثما عُرفت). القنوات التي لا تحتوي على فحوصات تعرض
Probe: unavailable.
حلّ الأسماء إلى معرّفات
حوّل أسماء القنوات/المستخدمين إلى معرّفات باستخدام دليل المزوّد:
openclaw channels resolve --channel slack "#general" "@jane"
openclaw channels resolve --channel discord "My Server/#support" "@someone"
openclaw channels resolve --channel matrix "Project Room"
ملاحظات:
- استخدم
--kind user|group|autoلفرض نوع الهدف. - يفضّل الحل المطابقات النشطة عندما تشترك عدة إدخالات في الاسم نفسه.
channels resolveللقراءة فقط. إذا كان حساب محدد مكوّنًا عبر SecretRef لكن بيانات الاعتماد تلك غير متاحة في مسار الأمر الحالي، يعيد الأمر نتائج غير محلولة ومتدهورة مع ملاحظات بدلًا من إيقاف التشغيل بالكامل.- لا يثبت
channels resolvePlugins القنوات. استخدمchannels add --channel <name>قبل حل الأسماء لقناة كتالوج قابلة للتثبيت.