QQ Bot
يتصل QQ Bot بـ OpenClaw عبر QQ Bot API الرسمي (بوابة WebSocket). يدعم Plugin الدردشة الخاصة C2C، ورسائل @ في المجموعات، ورسائل قنوات guild مع وسائط غنية (صور، وصوت، وفيديو، وملفات). الحالة: Plugin مضمّن. الرسائل المباشرة، والمحادثات الجماعية، وقنوات guild، والوسائط مدعومة. التفاعلات وسلاسل الرسائل غير مدعومة.Plugin المضمّن
تتضمن إصدارات OpenClaw الحالية QQ Bot، لذلك لا تحتاج البنيات المعبأة العادية إلى خطوةopenclaw plugins install منفصلة.
الإعداد
- انتقل إلى QQ Open Platform وامسح رمز QR باستخدام تطبيق QQ على هاتفك للتسجيل / تسجيل الدخول.
- انقر على Create Bot لإنشاء bot جديد في QQ.
- اعثر على AppID وAppSecret في صفحة إعدادات bot وانسخهما.
لا يتم تخزين AppSecret كنص عادي — إذا غادرت الصفحة من دون حفظه، فسيتعين عليك إنشاء واحد جديد.
- أضف القناة:
- أعد تشغيل Gateway.
التكوين
الحد الأدنى من التكوين:QQBOT_APP_IDQQBOT_CLIENT_SECRET
- ينطبق الرجوع إلى متغيرات البيئة على حساب QQ Bot الافتراضي فقط.
- يوفّر
openclaw channels add --channel qqbot --token-file ...AppSecret فقط؛ ويجب أن يكون AppID مضبوطًا بالفعل في التكوين أو فيQQBOT_APP_ID. - يقبل
clientSecretأيضًا إدخال SecretRef، وليس فقط سلسلة نصية عادية.
إعداد حسابات متعددة
شغّل عدة bots من QQ ضمن مثيل OpenClaw واحد:appId).
أضف bot ثانيًا عبر CLI:
الصوت (STT / TTS)
يدعم STT وTTS تكوينًا ذا مستويين مع رجوع حسب الأولوية:| الإعداد | خاص بـ Plugin | رجوع Framework |
|---|---|---|
| STT | channels.qqbot.stt | tools.media.audio.models[0] |
| TTS | channels.qqbot.tts | messages.tts |
enabled: false على أي منهما لتعطيله.
يمكن أيضًا ضبط سلوك رفع/تحويل الصوت الصادر باستخدام
channels.qqbot.audioFormatPolicy:
sttDirectFormatsuploadDirectFormatstranscodeEnabled
تنسيقات الهدف
| التنسيق | الوصف |
|---|---|
qqbot:c2c:OPENID | دردشة خاصة (C2C) |
qqbot:group:GROUP_OPENID | دردشة جماعية |
qqbot:channel:CHANNEL_ID | قناة guild |
لكل bot مجموعته الخاصة من OpenID الخاصة بالمستخدمين. ولا يمكن استخدام OpenID الذي استلمه Bot A لإرسال الرسائل عبر Bot B.
أوامر الشرطة المائلة
أوامر مدمجة يتم اعتراضها قبل قائمة انتظار الذكاء الاصطناعي:| الأمر | الوصف |
|---|---|
/bot-ping | اختبار زمن الاستجابة |
/bot-version | عرض إصدار Framework الخاص بـ OpenClaw |
/bot-help | عرض جميع الأوامر |
/bot-upgrade | عرض رابط دليل ترقية QQBot |
/bot-logs | تصدير سجلات Gateway الأخيرة كملف |
/bot-approve | الموافقة على إجراء QQ Bot معلّق (على سبيل المثال، تأكيد رفع C2C أو رفع مجموعة) عبر التدفق الأصلي. |
? بأي أمر للحصول على تعليمات الاستخدام (على سبيل المثال /bot-upgrade ?).
معمارية المحرك
يأتي QQ Bot كمحرك مكتفٍ ذاتيًا داخل Plugin:- يمتلك كل حساب مكدس موارد معزولًا (اتصال WebSocket، وعميل API، وذاكرة تخزين مؤقت للرموز، وجذر تخزين للوسائط) مرتبطًا بـ
appId. ولا تشارك الحسابات مطلقًا حالة الإدخال/الإخراج. - يضيف مسجل الحسابات المتعددة وسمًا لسطور السجل بالحساب المالك حتى تظل التشخيصات منفصلة عند تشغيل عدة bots ضمن Gateway واحد.
- تشترك مسارات الإدخال، والإخراج، وجسر Gateway في جذر واحد لحمولات الوسائط تحت
~/.openclaw/media، بحيث تصل عمليات الرفع والتنزيل وذاكرات التحويل المؤقتة إلى دليل واحد محمي بدلًا من شجرة لكل نظام فرعي. - يمكن نسخ بيانات الاعتماد احتياطيًا واستعادتها كجزء من لقطات بيانات اعتماد OpenClaw القياسية؛ ويعيد المحرك إرفاق مكدس موارد كل حساب عند الاستعادة من دون الحاجة إلى اقتران جديد عبر رمز QR.
الإعداد الأولي برمز QR
كبديل للصقAppID:AppSecret يدويًا، يدعم المحرك تدفق إعداد أولي برمز QR لربط QQ Bot بـ OpenClaw:
- شغّل مسار إعداد QQ Bot (على سبيل المثال
openclaw channels add --channel qqbot) واختر تدفق رمز QR عند مطالبتك بذلك. - امسح رمز QR الذي تم إنشاؤه باستخدام تطبيق الهاتف المرتبط بـ QQ Bot المستهدف.
- وافق على الاقتران على الهاتف. يحتفظ OpenClaw ببيانات الاعتماد التي تم إرجاعها داخل
credentials/ضمن نطاق الحساب الصحيح.
/bot-approve بدلًا من الرد عبر عميل QQ الخام.
استكشاف الأخطاء وإصلاحها
- يرد bot بعبارة “gone to Mars”: بيانات الاعتماد غير مكوّنة أو لم يتم بدء Gateway.
- لا توجد رسائل واردة: تحقّق من أن
appIdوclientSecretصحيحان، وأن bot مفعّل على QQ Open Platform. - لا يزال الإعداد باستخدام
--token-fileيظهر كغير مكوّن: يقوم--token-fileفقط بتعيين AppSecret. ما زلت بحاجة إلىappIdفي التكوين أوQQBOT_APP_ID. - الرسائل الاستباقية لا تصل: قد يعترض QQ الرسائل التي يبدأها bot إذا لم يكن المستخدم قد تفاعل مؤخرًا.
- لم يتم تفريغ الصوت إلى نص: تأكد من تكوين STT وأن provider يمكن الوصول إليه.