نظرة عامة على القنوات المتعددة
يتصل Triggerfish بمنصات المراسلة التي تستخدمها بالفعل. يمكنك التحدث مع وكيلك أينما تتواصل -- الطرفية، Telegram، Slack، Discord، WhatsApp، أداة الويب، أو البريد الإلكتروني. كل قناة لها مستوى تصنيفها الخاص، وفحوصات هوية المالك، و تطبيق السياسات.
كيف تعمل القنوات
كل محوّل قناة يُنفّذ نفس الواجهة: connect، disconnect، send، onMessage، وstatus. يقع موجّه القنوات فوق جميع المحوّلات ويتولى إرسال الرسائل وفحوصات التصنيف ومنطق إعادة المحاولة.
عندما تصل رسالة على أي قناة، يقوم الموجّه بـ:
- تحديد هوية المرسل (مالك أو خارجي) باستخدام فحوصات هوية على مستوى الكود -- وليس تفسير LLM
- وسم الرسالة بمستوى تصنيف القناة
- تحويلها إلى محرك السياسات للتطبيق
- توجيه رد الوكيل عبر نفس القناة
تصنيف القنوات
كل قناة لها مستوى تصنيف افتراضي يحدد البيانات التي يمكن أن تمر عبرها. يفرض محرك السياسات قاعدة عدم الكتابة لأسفل: البيانات على مستوى تصنيف معين لا يمكنها أبداً أن تنتقل إلى قناة ذات تصنيف أقل.
| القناة | التصنيف الافتراضي | كشف المالك |
|---|---|---|
| CLI | INTERNAL | دائماً المالك (مستخدم الطرفية) |
| Telegram | INTERNAL | مطابقة معرّف مستخدم Telegram |
| Signal | PUBLIC | ليس المالك أبداً (المحوّل هو هاتفك) |
| Slack | PUBLIC | معرّف مستخدم Slack عبر OAuth |
| Discord | PUBLIC | مطابقة معرّف مستخدم Discord |
PUBLIC | مطابقة رقم الهاتف | |
| WebChat | PUBLIC | ليس المالك أبداً (زوار) |
CONFIDENTIAL | مطابقة عنوان البريد الإلكتروني |
قابل للتخصيص بالكامل جميع التصنيفات قابلة للتكوين في
triggerfish.yaml. يمكنك تعيين أي قناة إلى أي مستوى تصنيف بناءً على متطلباتك الأمنية.
yaml
channels:
telegram:
classification: CONFIDENTIAL
slack:
classification: INTERNALالتصنيف الفعّال
التصنيف الفعّال لأي رسالة هو الحد الأدنى من تصنيف القناة وتصنيف المستلم:
| مستوى القناة | مستوى المستلم | المستوى الفعّال |
|---|---|---|
| INTERNAL | INTERNAL | INTERNAL |
| INTERNAL | EXTERNAL | PUBLIC |
| CONFIDENTIAL | INTERNAL | INTERNAL |
| CONFIDENTIAL | EXTERNAL | PUBLIC |
هذا يعني أنه حتى إذا كانت القناة مصنّفة كـ CONFIDENTIAL، فإن الرسائل إلى المستلمين الخارجيين على تلك القناة تُعامل كـ PUBLIC.
حالات القنوات
تتحرك القنوات عبر حالات محددة:
- UNTRUSTED -- القنوات الجديدة أو غير المعروفة تبدأ هنا. لا تتدفق بيانات للداخل أو الخارج. القناة معزولة تماماً حتى تقوم بتصنيفها.
- CLASSIFIED -- القناة لها مستوى تصنيف مُعيّن وهي نشطة. تتدفق الرسائل وفقاً لقواعد السياسة.
- BLOCKED -- القناة تم تعطيلها صراحةً. لا تتم معالجة أي رسائل.
قنوات UNTRUSTED لا يمكن لقناة UNTRUSTED استقبال أي بيانات
من الوكيل ولا يمكنها إرسال بيانات إلى سياق الوكيل. هذا حد أمني صارم، وليس اقتراحاً. :::
موجّه القنوات
يدير موجّه القنوات جميع المحوّلات المسجلة ويوفر:
- تسجيل المحوّلات -- تسجيل وإلغاء تسجيل محوّلات القنوات حسب معرّف القناة
- إرسال الرسائل -- توجيه الرسائل الصادرة إلى المحوّل الصحيح
- إعادة المحاولة مع تراجع أسي -- تتم إعادة محاولة الإرسالات الفاشلة حتى 3 مرات مع تأخيرات متزايدة (1 ثانية، 2 ثانية، 4 ثوانٍ)
- عمليات جماعية --
connectAll()وdisconnectAll()لإدارة دورة الحياة
yaml
# سلوك إعادة المحاولة للموجّه قابل للتكوين
router:
maxRetries: 3
baseDelay: 1000 # بالمللي ثانيةRipple: الكتابة والحضور
يُرحّل Triggerfish مؤشرات الكتابة وحالة الحضور عبر القنوات التي تدعمها. يُسمى هذا Ripple.
| القناة | مؤشرات الكتابة | إشعارات القراءة |
|---|---|---|
| Telegram | إرسال واستقبال | نعم |
| Signal | إرسال واستقبال | -- |
| Slack | إرسال فقط | -- |
| Discord | إرسال فقط | -- |
| إرسال واستقبال | نعم | |
| WebChat | إرسال واستقبال | نعم |
حالات حضور الوكيل: idle، online، away، busy، processing، speaking، error.
تقسيم الرسائل
تفرض المنصات حدوداً على طول الرسائل. يقوم Triggerfish تلقائياً بتقسيم الردود الطويلة لتتناسب مع قيود كل منصة، مع الفصل عند أسطر جديدة أو مسافات لسهولة القراءة:
| القناة | الحد الأقصى لطول الرسالة |
|---|---|
| Telegram | 4,096 حرف |
| Signal | 4,000 حرف |
| Discord | 2,000 حرف |
| Slack | 40,000 حرف |
| 4,096 حرف | |
| WebChat | غير محدود |
الخطوات التالية
قم بإعداد القنوات التي تستخدمها:
- CLI -- متاح دائماً، لا يحتاج إعداد
- Telegram -- إنشاء بوت عبر @BotFather
- Signal -- الربط عبر signal-cli daemon
- Slack -- إنشاء تطبيق Slack مع Socket Mode
- Discord -- إنشاء تطبيق بوت Discord
- WhatsApp -- الاتصال عبر WhatsApp Business Cloud API
- WebChat -- تضمين أداة دردشة في موقعك
- Email -- الاتصال عبر IMAP و SMTP relay
