Skip to main content
يتصل OpenClaw بمنصة Feishu/Lark (منصة التعاون المتكاملة) من خلال Plugin الرسمي @openclaw/feishu: الرسائل المباشرة مع البوت، ومحادثات المجموعات، وردود البطاقات المتدفقة، وأدوات مستندات Feishu والويكي والتخزين السحابي وBitable. الحالة: جاهز للإنتاج للرسائل المباشرة مع البوت ومحادثات المجموعات. يُعد WebSocket وسيلة نقل الأحداث الافتراضية (ولا يلزم عنوان URL عام)؛ ووضع Webhook اختياري.

البدء السريع

يتطلب OpenClaw 2026.5.29 أو إصدارًا أحدث. شغّل openclaw --version للتحقق. رقِّ باستخدام openclaw update.
1

تشغيل معالج إعداد القناة

يؤدي هذا إلى تثبيت Plugin @openclaw/feishu إذا لم يكن موجودًا، ثم يرشدك خلال الإعداد:
  • الإعداد اليدوي: الصق App ID وApp Secret من Feishu Open Platform ‏(https://open.feishu.cn) أو Lark Developer ‏(https://open.larksuite.com).
  • الإعداد عبر رمز QR: امسح رمز QR ضوئيًا في تطبيق Feishu لإنشاء بوت تلقائيًا. تقصر هذه العملية الرسائل المباشرة على حسابك فقط (dmPolicy: "allowlist" باستخدام open_id الخاص بك).
يسألك المعالج أيضًا عن نطاق API ‏(Feishu أم Lark) وسياسة المجموعة. إذا لم يتفاعل تطبيق Feishu المحلي على الهاتف المحمول مع رمز QR، فأعد تشغيل الإعداد واختر الإعداد اليدوي.
2

بعد اكتمال الإعداد، أعد تشغيل Gateway لتطبيق التغييرات

التحكم في الوصول

الرسائل المباشرة

اضبط channels.feishu.dmPolicy (الافتراضي: pairing) للتحكم في مَن يمكنه إرسال رسالة مباشرة إلى البوت: الموافقة على طلب إقران:

محادثات المجموعات

سياسة المجموعة (channels.feishu.groupPolicy، الافتراضي: allowlist): اشتراط الإشارة (channels.feishu.requireMention):
  • الافتراضي: يلزم توجيه @إشارة، إلا عندما تكون سياسة المجموعة الفعلية هي "open"؛ إذ تكون القيمة الافتراضية هناك false كي تظل الرسائل التي لا يمكن أن تتضمن إشارات (مثل الصور) تصل إلى الوكيل.
  • اضبط true أو false صراحةً للتجاوز؛ والتجاوز لكل مجموعة هو: channels.feishu.groups.<chat_id>.requireMention.
  • لا تُعامل إشارتا البث فقط @all و@_all على أنهما إشارتان إلى البوت. وتظل الرسالة التي تشير إلى كل من @all والبوت مباشرةً محسوبةً كإشارة إلى البوت.

أمثلة على إعداد المجموعات

السماح بجميع المجموعات، دون اشتراط @إشارة

السماح بجميع المجموعات، مع استمرار اشتراط @إشارة

السماح بمجموعات محددة فقط

في وضع allowlist، يمكنك أيضًا قبول مجموعة بإضافة إدخال groups.<chat_id> صريح. لا تتجاوز الإدخالات الصريحة groupPolicy: "disabled". تضبط الإعدادات الافتراضية ذات حرف البدل ضمن groups.* المجموعات المطابقة، لكنها لا تقبل المجموعات بمفردها.

تقييد المرسلين داخل مجموعة

يضبط channels.feishu.groupSenderAllowFrom قائمة السماح نفسها للمرسلين في جميع المجموعات؛ ويكون لـ allowFrom الخاص بكل مجموعة الأولوية.

الحصول على معرّفات المجموعات والمستخدمين

معرّفات المجموعات (chat_id، التنسيق: oc_xxx)

افتح المجموعة في Feishu/Lark، وانقر على أيقونة القائمة في الزاوية العلوية اليمنى، ثم انتقل إلى Settings. يُدرج معرّف المجموعة (chat_id) في صفحة الإعدادات. الحصول على معرّف المجموعة

معرّفات المستخدمين (open_id، التنسيق: ou_xxx)

شغّل Gateway، وأرسل رسالة مباشرة إلى البوت، ثم تحقق من السجلات:
ابحث عن open_id في مخرجات السجل. يمكنك أيضًا التحقق من طلبات الإقران المعلقة:

الأوامر الشائعة

لا يدعم Feishu/Lark قوائم أوامر الشرطة المائلة الأصلية، لذا أرسل هذه الأوامر كرسائل نصية عادية.

استكشاف الأخطاء وإصلاحها

لا يستجيب البوت في محادثات المجموعات

  1. تأكد من إضافة البوت إلى المجموعة
  2. تأكد من توجيه @إشارة إلى البوت (مطلوب افتراضيًا)
  3. تحقق من أن groupPolicy ليس "disabled"
  4. تحقق من السجلات: openclaw logs --follow

لا يتلقى البوت الرسائل

  1. تأكد من نشر البوت والموافقة عليه في Feishu Open Platform / Lark Developer
  2. تأكد من أن اشتراك الأحداث يتضمن im.message.receive_v1
  3. تأكد من تحديد persistent connection ‏(WebSocket)
  4. تأكد من منح جميع نطاقات الأذونات المطلوبة
  5. تأكد من تشغيل Gateway: ‏openclaw gateway status
  6. تحقق من السجلات: openclaw logs --follow

لا يتفاعل إعداد رمز QR في تطبيق Feishu على الهاتف المحمول

  1. أعد تشغيل الإعداد: openclaw channels login --channel feishu
  2. اختر الإعداد اليدوي
  3. أنشئ تطبيقًا ذاتي الإنشاء في Feishu Open Platform وانسخ App ID وApp Secret الخاصين به
  4. الصق بيانات الاعتماد هذه في معالج الإعداد

تسرّب App Secret

  1. أعد تعيين App Secret في Feishu Open Platform / Lark Developer
  2. حدّث القيمة في إعداداتك
  3. أعد تشغيل Gateway: ‏openclaw gateway restart

الإعداد المتقدم

حسابات متعددة

يتحكم defaultAccount في الحساب المستخدم عندما لا تحدد واجهات API الصادرة accountId. ترث إدخالات الحساب إعدادات المستوى الأعلى؛ ويمكن تجاوز معظم مفاتيح المستوى الأعلى لكل حساب. يستخدم accounts.<id>.tts البنية نفسها التي يستخدمها messages.tts، ويُدمج بعمق فوق إعداد TTS العام، بحيث يمكن لإعدادات Feishu متعددة البوتات إبقاء بيانات اعتماد المزوّد المشتركة عامةً مع تجاوز الصوت أو النموذج أو الشخصية أو الوضع التلقائي فقط لكل حساب.

حدود الرسائل

  • textChunkLimit - حجم جزء النص الصادر (الافتراضي: 4000 حرفًا)
  • streaming.chunkMode - يقسم "length" (الافتراضي) عند الحد؛ ويفضل "newline" حدود الأسطر الجديدة
  • mediaMaxMb - حد رفع الوسائط وتنزيلها (الافتراضي: 30 ميغابايت)

التدفق

يدعم Feishu/Lark الردود المتدفقة عبر البطاقات التفاعلية (واجهة Card Kit للتدفق). عند التمكين، يحدّث البوت البطاقة في الوقت الفعلي أثناء إنشاء النص.
اضبط streaming.mode: "off" لإرسال الرد الكامل في رسالة واحدة؛ كما يعطّل renderMode: "raw" (نص عادي بدلًا من البطاقات) البطاقات المتدفقة. يكون streaming.block.enabled معطلًا افتراضيًا؛ ولا تمكّنه إلا عندما تريد إرسال كتل المساعد المكتملة قبل الرد النهائي. تُرحّل القيمة المنطقية القديمة streaming والمفاتيح المسطحة blockStreaming / blockStreamingCoalesce / chunkMode إلى هذه البنية المتداخلة عبر openclaw doctor --fix.

تحسين الحصة

قلّل عدد استدعاءات API الخاصة بـ Feishu/Lark باستخدام علامتين اختياريتين:
  • typingIndicator (الافتراضي true): اضبط false لتخطي استدعاءات تفاعل الكتابة
  • resolveSenderNames (الافتراضي true): اضبط false لتخطي عمليات البحث عن الملف الشخصي للمرسل

نطاق جلسة المجموعة وسلاسل المواضيع

يتحكم channels.feishu.groupSessionScope (على المستوى الأعلى أو لكل حساب أو لكل مجموعة) في كيفية تعيين رسائل المجموعة إلى جلسات الوكيل: بالنسبة إلى نطاقات المواضيع، تستخدم مجموعات المواضيع الأصلية في Feishu/Lark الحدث thread_id ‏(omt_*) بوصفه مفتاح جلسة الموضوع الأساسي. إذا أغفل حدث بدء موضوع أصلي thread_id، فإن OpenClaw يجلبه من Feishu قبل توجيه الدور. تواصل ردود المجموعات العادية التي يحولها OpenClaw إلى سلاسل استخدام معرّف الرسالة الجذرية للرد (om_*) كي يظل الدور الأول والأدوار اللاحقة في الجلسة نفسها. اضبط replyInThread: "enabled" (على المستوى الأعلى أو لكل مجموعة) لجعل ردود البوت تنشئ سلسلة موضوع في Feishu أو تتابعها بدلًا من الرد داخل السياق. يُعد topicSessionMode السلف المهمل لـ groupSessionScope؛ ويُفضّل groupSessionScope.

أدوات مساحة عمل Feishu

يوفر Plugin أدوات للوكيل خاصة بمستندات Feishu والمحادثات وقاعدة المعرفة والتخزين السحابي والأذونات وBitable، بالإضافة إلى Skills المطابقة (feishu-doc، feishu-drive، feishu-perm، feishu-wiki). تخضع عائلات الأدوات للتحكم بواسطة channels.feishu.tools: يمثل tools.base اسمًا مستعارًا لـ tools.bitable؛ وتتغلب قيمة bitable الصريحة عند تعيين كليهما. توجد بوابات كل حساب ضمن accounts.<id>.tools. امنح drive:drive.metadata:readonly لإجراء عمليات بحث مباشرة عن feishu_drive info خارج الدليل الجذر، ما لم يكن التطبيق يمتلك بالفعل نطاق drive:drive الكامل. من دون أيٍّ من النطاقين، يُبقي info البحث القديم في الدليل الجذر متاحًا عبر drive:drive:readonly.

جلسات ACP

يدعم Feishu/Lark بروتوكول ACP للرسائل المباشرة ورسائل سلاسل المجموعات. يعتمد ACP في Feishu/Lark على الأوامر النصية، ولا توجد قوائم أصلية لأوامر الشرطة المائلة، لذا استخدم رسائل /acp ... مباشرةً في المحادثة.

ربط ACP دائم

إنشاء ACP من الدردشة

في رسالة مباشرة أو سلسلة على Feishu/Lark:
يعمل --thread here مع الرسائل المباشرة ورسائل سلاسل Feishu/Lark. تُوجَّه رسائل المتابعة في المحادثة المرتبطة مباشرةً إلى جلسة ACP تلك.

التوجيه متعدد الوكلاء

استخدم bindings لتوجيه الرسائل المباشرة أو المجموعات في Feishu/Lark إلى وكلاء مختلفين.
حقول التوجيه:
  • match.channel: "feishu"
  • match.peer.kind: "direct" (رسالة مباشرة) أو "group" (دردشة جماعية)
  • match.peer.id: معرّف Open ID للمستخدم (ou_xxx) أو معرّف المجموعة (oc_xxx)
راجع الحصول على معرّفات المجموعة/المستخدم للاطلاع على نصائح البحث.

عزل الوكيل لكل مستخدم (إنشاء الوكيل الديناميكي)

فعّل dynamicAgentCreation لإنشاء نسخ وكلاء معزولة تلقائيًا لكل مستخدم للرسائل المباشرة. يحصل كل مستخدم على ما يلي:
  • دليل مساحة عمل مستقل
  • USER.md / SOUL.md / MEMORY.md منفصلة
  • سجل محادثات خاص
  • Skills وحالة معزولتان
هذا ضروري للروبوتات العامة عندما تريد أن يحظى كل مستخدم بتجربة مساعد ذكاء اصطناعي خاصة به.
تتضمن الروابط الديناميكية قيمة Feishu الموحّدة accountId، بحيث توجّه الحسابات الافتراضية والمسمّاة كل مرسل إلى الوكيل الديناميكي الصحيح.إذا أنشأ حساب مسمّى وكيلاً ديناميكيًا غير محدد النطاق في إصدار أقدم، فسيظل ذلك الوكيل القديم محسوبًا ضمن maxAgents. تأكد من أن الحساب الافتراضي لا يستخدمه قبل إزالته، أو زِد maxAgents مؤقتًا؛ لا يستطيع OpenClaw الاستدلال بأمان على الحساب الذي يملك الحالة القديمة الملتبسة.

الإعداد السريع

آلية العمل

عندما يرسل مستخدم جديد رسالته المباشرة الأولى:
  1. تُنشئ القناة agentId فريدًا: feishu-{user_open_id} للحساب الافتراضي، أو ملخص هوية محدودًا مسبوقًا بالحساب لحساب مُسمّى
  2. تُنشئ مساحة عمل جديدة في مسار workspaceTemplate
  3. تُسجّل الوكيل وتُنشئ ارتباطًا لهذا المستخدم
  4. يضمن مساعد مساحة العمل وجود ملفات التمهيد (AGENTS.md وSOUL.md وUSER.md وغيرها) عند الوصول الأول
  5. تُوجّه جميع الرسائل المستقبلية من هذا المستخدم إلى وكيله المخصص

خيارات الإعداد

متغيرات القالب:
  • {agentId} - معرّف الوكيل المُنشأ (مثل feishu-ou_xxxxxx أو feishu-support-<identity_digest>)
  • {userId} - معرّف Feishu المفتوح للمرسل (مثل ou_xxxxxx)

نطاق الجلسة

يتحكم session.dmScope في كيفية ربط الرسائل المباشرة بجلسات الوكيل. هذا إعداد عام يؤثر في جميع القنوات. المقايضة: يتيح استخدام "main" التحميل التلقائي لملفات التمهيد (USER.md وSOUL.md وMEMORY.md)، لكنه يعني أن جميع الرسائل المباشرة عبر جميع القنوات تشترك في نمط مفتاح الجلسة نفسه. بالنسبة إلى الروبوتات العامة متعددة المستخدمين التي يكون فيها العزل أهم من التحميل التلقائي لملفات التمهيد، يُنصح باستخدام "per-channel-peer" وإدارة ملفات التمهيد يدويًا.
استخدم "per-account-channel-peer" عندما ينبغي لحسابات Feishu المسماة الاحتفاظ بجلسات منفصلة للمرسل نفسه. تحافظ الارتباطات الديناميكية على نطاق الحساب.

نشر نموذجي متعدد المستخدمين

التحقق

تحقق من سجلات Gateway للتأكد من أن الإنشاء الديناميكي يعمل:
اعرض جميع مساحات العمل التي أُنشئت:

ملاحظات

  • عزل مساحة العمل: يحصل كل مستخدم على دليل مساحة عمل ومثيل وكيل خاصين به. لا يمكن للمستخدمين رؤية سجل محادثات بعضهم أو ملفاتهم ضمن تدفق المراسلة المعتاد.
  • حدود الأمان: هذه آلية لعزل سياق المراسلة، وليست حدود أمان بين مستأجرين مشتركين عدائيين. تشترك الحسابات في عملية الوكيل وبيئة المضيف.
  • يجب إبقاء الكتابة إلى الإعدادات مفعّلة: يكتب إنشاء الوكلاء الديناميكيين الوكلاء والارتباطات في الإعدادات؛ ويُتخطى عندما تكون channels.feishu.configWrites بالقيمة false (الافتراضي: مفعّل).
  • يجب أن يكون bindings فارغًا: تسجّل الوكلاء الديناميكية ارتباطاتها تلقائيًا
  • مسار الترقية: تستمر الارتباطات اليدوية الحالية في العمل إلى جانب الوكلاء الديناميكيين
  • session.dmScope عام: يؤثر هذا في جميع القنوات، وليس Feishu فقط

مرجع الإعدادات

الإعدادات الكاملة: إعدادات Gateway

أنواع الرسائل المدعومة

الاستقبال

  • ✅ النص
  • ✅ النص المنسّق (منشور)
  • ✅ الصور
  • ✅ الملفات
  • ✅ الصوت
  • ✅ الفيديو/الوسائط
  • ✅ الملصقات
تُطبَّع رسائل Feishu/Lark الصوتية الواردة على هيئة عناصر نائبة للوسائط بدلًا من بيانات JSON خام من file_key. عند تكوين tools.media.audio، ينزّل OpenClaw مورد الملاحظة الصوتية ويشغّل النسخ الصوتي المشترك قبل دور الوكيل، بحيث يتلقى الوكيل النص المنطوق المنسوخ. إذا ضمّن Feishu نص النسخ مباشرةً في حمولة الصوت، يُستخدم ذلك النص دون استدعاء ASR آخر. في غياب موفّر للنسخ الصوتي، يظل الوكيل يتلقى العنصر النائب <media:audio> مع المرفق المحفوظ، وليس حمولة مورد Feishu الخام.

الإرسال

  • ✅ النص
  • ✅ الصور
  • ✅ الملفات
  • ✅ الصوت
  • ✅ الفيديو/الوسائط
  • ✅ البطاقات التفاعلية (بما في ذلك التحديثات المتدفقة)
  • ⚠️ النص المنسّق (تنسيق بأسلوب المنشورات؛ لا يدعم إمكانات التأليف الكاملة في Feishu/Lark)
تستخدم فقاعات الصوت الأصلية في Feishu/Lark نوع الرسائل audio في Feishu وتتطلب وسائط رفع Ogg/Opus ‏(file_type: "opus"). تُرسل وسائط .opus و.ogg الموجودة مباشرةً كصوت أصلي. تُحوَّل صيغ MP3/WAV/M4A وغيرها من صيغ الصوت المحتملة إلى Ogg/Opus بتردد 48kHz باستخدام ffmpeg فقط عندما يطلب الرد التسليم الصوتي (audioAsVoice / أداة الرسائل asVoice، بما في ذلك ردود الملاحظات الصوتية عبر TTS). تظل مرفقات MP3 العادية ملفات عادية. إذا كان ffmpeg مفقودًا أو فشل التحويل، يعود OpenClaw إلى استخدام مرفق ملف ويسجّل السبب.

سلاسل المواضيع والردود

  • ✅ الردود المضمنة
  • ✅ الردود ضمن سلاسل المواضيع
  • ✅ تظل ردود الوسائط مرتبطة بسلسلة الموضوع عند الرد على رسالة ضمن سلسلة
تُغطّى آلية توجيه جلسات مجموعات المواضيع ضمن نطاق جلسة المجموعة وسلاسل المواضيع.

ذو صلة