Skip to content

نمای کلی چندکاناله

Triggerfish به پلتفرم‌های پیام‌رسانی موجود شما متصل می‌شود. با عامل خود هر جا که قبلاً ارتباط برقرار می‌کنید صحبت کنید — ترمینال، Telegram، Slack، Discord، واتس‌اپ، ابزارک وب یا ایمیل. هر کانال سطح طبقه‌بندی، بررسی‌های هویت مالک و اجرای سیاست مخصوص خود را دارد.

نحوه عملکرد کانال‌ها

هر آداپتور کانال یک رابط مشترک پیاده‌سازی می‌کند: connect، disconnect، send، onMessage و status. مسیریاب کانال بالای تمام آداپتورها قرار دارد و ارسال پیام، بررسی‌های طبقه‌بندی و منطق تلاش مجدد را مدیریت می‌کند.

مسیریاب کانال: تمام آداپتورهای کانال از طریق دروازه طبقه‌بندی مرکزی به سرور Gateway جریان می‌یابند

وقتی پیامی از هر کانالی می‌رسد، مسیریاب:

۱. فرستنده را (مالک یا خارجی) با استفاده از بررسی‌های هویت در سطح کد شناسایی می‌کند — نه تفسیر LLM ۲. پیام را با سطح طبقه‌بندی کانال علامت‌گذاری می‌کند ۳. آن را برای اجرا به موتور سیاست ارسال می‌کند ۴. پاسخ عامل را از همان کانال بازمی‌گرداند

طبقه‌بندی کانال

هر کانال یک سطح طبقه‌بندی پیش‌فرض دارد که تعیین می‌کند چه داده‌هایی می‌توانند از آن عبور کنند. موتور سیاست قانون عدم نوشتن به پایین را اجرا می‌کند: داده در یک سطح طبقه‌بندی مشخص هرگز نمی‌تواند به کانالی با طبقه‌بندی پایین‌تر جریان یابد.

کانالطبقه‌بندی پیش‌فرضتشخیص مالک
CLIINTERNALهمیشه مالک (کاربر ترمینال)
TelegramINTERNALتطابق شناسه کاربر Telegram
SignalPUBLICهرگز مالک نیست (آداپتور شماره تلفن شماست)
SlackPUBLICشناسه کاربر Slack از طریق OAuth
DiscordPUBLICتطابق شناسه کاربر Discord
WhatsAppPUBLICتطابق شماره تلفن
WebChatPUBLICهرگز مالک نیست (بازدیدکنندگان)
EmailCONFIDENTIALتطابق آدرس ایمیل

کاملاً قابل پیکربندی تمام طبقه‌بندی‌ها در triggerfish.yaml قابل پیکربندی هستند. می‌توانید هر کانال را بر اساس نیازهای امنیتی خود به هر سطح طبقه‌بندی تنظیم کنید.

yaml
channels:
  telegram:
    classification: CONFIDENTIAL
  slack:
    classification: INTERNAL

طبقه‌بندی مؤثر

طبقه‌بندی مؤثر برای هر پیام حداقل طبقه‌بندی کانال و طبقه‌بندی گیرنده است:

سطح کانالسطح گیرندهسطح مؤثر
INTERNALINTERNALINTERNAL
INTERNALEXTERNALPUBLIC
CONFIDENTIALINTERNALINTERNAL
CONFIDENTIALEXTERNALPUBLIC

این بدان معناست که حتی اگر کانالی CONFIDENTIAL طبقه‌بندی شده باشد، پیام‌ها به گیرندگان خارجی در آن کانال به‌عنوان PUBLIC برخورد می‌شوند.

وضعیت‌های کانال

کانال‌ها از وضعیت‌های تعریف‌شده عبور می‌کنند:

  • UNTRUSTED — کانال‌های جدید یا ناشناخته اینجا شروع می‌کنند. هیچ داده‌ای وارد یا خارج نمی‌شود. کانال تا زمان طبقه‌بندی کاملاً جداسازی شده است.
  • CLASSIFIED — کانال سطح طبقه‌بندی تعیین‌شده دارد و فعال است. پیام‌ها طبق قوانین سیاست جریان می‌یابند.
  • BLOCKED — کانال صراحتاً غیرفعال شده. هیچ پیامی پردازش نمی‌شود.

کانال‌های UNTRUSTED کانال UNTRUSTED نمی‌تواند هیچ داده‌ای از عامل دریافت کند و نمی‌تواند داده‌ای به زمینه عامل بفرستد. این یک مرز امنیتی سخت است، نه یک پیشنهاد. :::

مسیریاب کانال

مسیریاب کانال تمام آداپتورهای ثبت‌شده را مدیریت و ارائه می‌دهد:

  • ثبت آداپتور — ثبت و لغو ثبت آداپتورهای کانال با شناسه کانال
  • ارسال پیام — مسیریابی پیام‌های خروجی به آداپتور صحیح
  • تلاش مجدد با تأخیر نمایی — ارسال‌های ناموفق تا ۳ بار با تأخیرهای افزایشی (۱ ثانیه، ۲ ثانیه، ۴ ثانیه) مجدداً تلاش می‌شوند
  • عملیات دسته‌ایconnectAll() و disconnectAll() برای مدیریت چرخه عمر
yaml
# رفتار تلاش مجدد مسیریاب قابل پیکربندی است
router:
  maxRetries: 3
  baseDelay: 1000 # میلی‌ثانیه

Ripple: تایپ و حضور

Triggerfish نشانگرهای تایپ و وضعیت حضور را بین کانال‌هایی که پشتیبانی می‌کنند رله می‌کند. این Ripple نامیده می‌شود.

کانالنشانگرهای تایپرسید خوانده‌شده
Telegramارسال و دریافتبله
Signalارسال و دریافت
Slackفقط ارسال
Discordفقط ارسال
WhatsAppارسال و دریافتبله
WebChatارسال و دریافتبله

وضعیت‌های حضور عامل: idle، online، away، busy، processing، speaking، error.

تقسیم‌بندی پیام

پلتفرم‌ها محدودیت طول پیام دارند. Triggerfish به‌صورت خودکار پاسخ‌های بلند را برای جا شدن در محدودیت‌های هر پلتفرم تقسیم می‌کند و برای خوانایی روی خطوط جدید یا فاصله‌ها می‌شکند:

کانالحداکثر طول پیام
Telegram۴٬۰۹۶ کاراکتر
Signal۴٬۰۰۰ کاراکتر
Discord۲٬۰۰۰ کاراکتر
Slack۴۰٬۰۰۰ کاراکتر
WhatsApp۴٬۰۹۶ کاراکتر
WebChatنامحدود

گام‌های بعدی

کانال‌هایی که استفاده می‌کنید را راه‌اندازی کنید:

  • CLI — همیشه در دسترس، نیازی به راه‌اندازی ندارد
  • Telegram — ایجاد ربات از طریق @BotFather
  • Signal — اتصال از طریق daemon signal-cli
  • Slack — ایجاد برنامه Slack با Socket Mode
  • Discord — ایجاد برنامه ربات Discord
  • WhatsApp — اتصال از طریق WhatsApp Business Cloud API
  • WebChat — جاسازی ابزارک چت در سایت شما
  • Email — اتصال از طریق IMAP و رله SMTP