التثبيت
ثبّت QQ Bot قبل الإعداد:الإعداد
- انتقل إلى QQ Open Platform وامسح رمز QR باستخدام QQ على هاتفك للتسجيل / تسجيل الدخول.
- انقر على Create Bot لإنشاء بوت QQ جديد.
- ابحث عن AppID وAppSecret في صفحة إعدادات البوت وانسخهما.
لا يُخزَّن AppSecret بنص صريح — إذا غادرت الصفحة دون حفظه، فسيتعين عليك إعادة إنشاء واحد جديد.
- أضف القناة:
- أعد تشغيل Gateway.
التكوين
أدنى تكوين:QQBOT_APP_IDQQBOT_CLIENT_SECRET
- ينطبق الرجوع إلى البيئة على حساب QQ Bot الافتراضي فقط.
- يوفر
openclaw channels add --channel qqbot --token-file ...AppSecret فقط؛ يجب أن يكون AppID مضبوطًا مسبقًا في التكوين أوQQBOT_APP_ID. - يقبل
clientSecretأيضًا إدخال SecretRef، وليس سلسلة نصية صريحة فقط. - سلاسل العلامات القديمة
secretref:/...ليست قيمclientSecretصالحة؛ استخدم كائنات SecretRef مهيكلة مثل المثال أعلاه.
إعداد حسابات متعددة
شغّل عدة بوتات QQ ضمن نسخة OpenClaw واحدة:appId).
أضف بوتًا ثانيًا عبر CLI:
دردشات المجموعات
يستخدم دعم دردشة المجموعات في QQ Bot معرّفات OpenID لمجموعات QQ، وليس أسماء العرض. أضف البوت إلى مجموعة، ثم اذكره أو اضبط المجموعة للتشغيل دون ذكر.groups["*"] القيم الافتراضية لكل مجموعة، ويتجاوز إدخال
groups.GROUP_OPENID محدد هذه القيم الافتراضية لمجموعة واحدة. تشمل إعدادات
المجموعة:
requireMention: يتطلب @mention قبل أن يرد البوت. الافتراضي:true.ignoreOtherMentions: يتجاهل الرسائل التي تذكر شخصًا آخر وليس البوت.historyLimit: يحتفظ برسائل المجموعة الحديثة غير المتضمنة لذكر كسياق للدور المذكور التالي. اضبط0للتعطيل.toolPolicy:fullأوrestrictedأوnoneللأدوات ضمن نطاق المجموعة.name: تسمية سهلة القراءة تُستخدم في السجلات وسياق المجموعة.prompt: موجّه سلوك لكل مجموعة يُلحَق بسياق الوكيل.
mention وalways. يقابل requireMention: true
mention؛ ويقابل requireMention: false always. يتقدم تجاوز التفعيل
على مستوى الجلسة، عند وجوده، على التكوين.
قائمة الانتظار الواردة تكون لكل نظير. تحصل نظراء المجموعات على حد قائمة انتظار أكبر، وتُبقي رسائل البشر
قبل أحاديث البوت عند الامتلاء، وتدمج دفعات رسائل المجموعة العادية
في دور واحد منسوب. تستمر أوامر Slash في العمل واحدًا تلو الآخر.
الصوت (STT / TTS)
يدعم STT وTTS تكوينًا من مستويين مع رجوع حسب الأولوية:| الإعداد | خاص بـ Plugin | رجوع إطار العمل |
|---|---|---|
| STT | channels.qqbot.stt | tools.media.audio.models[0] |
| TTS | channels.qqbot.tts, channels.qqbot.accounts.<id>.tts | messages.tts |
enabled: false على أي منهما للتعطيل.
تستخدم تجاوزات TTS على مستوى الحساب الشكل نفسه مثل messages.tts وتُدمج بعمق
فوق تكوين TTS للقناة/العام.
تُعرَض مرفقات الصوت الواردة من QQ للوكلاء كبيانات تعريف وسائط صوتية مع
إبقاء ملفات الصوت الخام خارج MediaPaths العامة. تؤدي الردود النصية الصريحة
[[audio_as_voice]] إلى إنشاء TTS وإرسال رسالة صوت QQ أصلية عند تكوين TTS.
يمكن أيضًا ضبط سلوك رفع/تحويل ترميز الصوت الصادر باستخدام
channels.qqbot.audioFormatPolicy:
sttDirectFormatsuploadDirectFormatstranscodeEnabled
تنسيقات الهدف
| التنسيق | الوصف |
|---|---|
qqbot:c2c:OPENID | دردشة خاصة (C2C) |
qqbot:group:GROUP_OPENID | دردشة مجموعة |
qqbot:channel:CHANNEL_ID | قناة نقابة |
لكل بوت مجموعته الخاصة من معرّفات OpenID للمستخدمين. لا يمكن استخدام OpenID مستلم بواسطة البوت A لإرسال رسائل عبر البوت B.
أوامر Slash
الأوامر المدمجة التي تُعترض قبل قائمة انتظار الذكاء الاصطناعي:| الأمر | الوصف |
|---|---|
/bot-ping | اختبار زمن الاستجابة |
/bot-version | عرض إصدار إطار عمل OpenClaw |
/bot-help | سرد كل الأوامر |
/bot-me | عرض معرّف مستخدم QQ الخاص بالمرسل (openid) لإعداد allowFrom/groupAllowFrom |
/bot-upgrade | عرض رابط دليل ترقية QQBot |
/bot-logs | تصدير سجلات Gateway الحديثة كملف |
/bot-approve | الموافقة على إجراء QQ Bot معلّق (على سبيل المثال، تأكيد رفع C2C أو مجموعة) عبر التدفق الأصلي. |
? بأي أمر للحصول على مساعدة الاستخدام (على سبيل المثال /bot-upgrade ?).
أوامر الإدارة (/bot-me, /bot-upgrade, /bot-logs, /bot-clear-storage, /bot-streaming, /bot-approve) مخصصة للرسائل المباشرة فقط وتتطلب أن يكون openid الخاص بالمرسل في قائمة allowFrom صريحة غير شاملة. تسمح صيغة شاملة allowFrom: ["*"] بالدردشة لكنها لا تمنح صلاحية الوصول إلى أوامر الإدارة. تُطابق رسائل المجموعات groupAllowFrom أولًا ثم تعود إلى allowFrom. يؤدي تشغيل أمر إدارة في مجموعة إلى إرجاع تلميح بدل إسقاطه بصمت.
بنية المحرك
يأتي QQ Bot كمحرك مستقل داخل Plugin:- يمتلك كل حساب مكدس موارد معزولًا (اتصال WebSocket، عميل API، ذاكرة تخزين مؤقت للرمز المميز، جذر تخزين الوسائط) مرتبطًا بـ
appId. لا تشترك الحسابات أبدًا في الحالة الواردة/الصادرة. - يوسم المسجل متعدد الحسابات أسطر السجل بالحساب المالك حتى تبقى التشخيصات قابلة للفصل عند تشغيل عدة بوتات ضمن Gateway واحد.
- تشترك مسارات الوارد والصادر وجسر Gateway في جذر حمولة وسائط واحد ضمن
~/.openclaw/media، بحيث تستقر عمليات الرفع والتنزيل وذاكرات تحويل الترميز المؤقتة ضمن دليل محمي واحد بدل شجرة لكل نظام فرعي. - يمر تسليم الوسائط الغنية عبر مسار
sendMediaواحد لأهداف C2C والمجموعات. تستخدم الملفات المحلية والمخازن المؤقتة الأكبر من حد الملفات الكبيرة نقاط نهاية الرفع المجزأ في QQ، بينما تستخدم الحمولات الأصغر واجهة API الوسائط ذات العملية الواحدة. - يمكن نسخ بيانات الاعتماد احتياطيًا واستعادتها كجزء من لقطات بيانات اعتماد 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 الخام.
استكشاف الأخطاء وإصلاحها
- يرد البوت “gone to Mars”: بيانات الاعتماد غير مكوّنة أو Gateway غير مشغّل.
- لا توجد رسائل واردة: تحقق من صحة
appIdوclientSecret، وأن البوت مفعّل على QQ Open Platform. - ردود ذاتية متكررة: يسجل OpenClaw فهارس مراجع الصادر في QQ على أنها
من تأليف البوت ويتجاهل الأحداث الواردة التي يطابق
msgIdxالحالي فيها حساب البوت نفسه. يمنع هذا حلقات صدى المنصة مع السماح للمستخدمين باقتباس رسائل البوت السابقة أو الرد عليها. - الإعداد باستخدام
--token-fileلا يزال يظهر غير مكوّن: يضبط--token-fileAppSecret فقط. ما زلت بحاجة إلىappIdفي التكوين أوQQBOT_APP_ID. - الرسائل الاستباقية لا تصل: قد يعترض QQ الرسائل التي يبدأها البوت إذا لم يتفاعل المستخدم مؤخرًا.
- الصوت لا يُنسخ: تأكد من تكوين STT وأن المزود قابل للوصول.