Skip to content

Multi-Channel جائزہ

Triggerfish آپ کے موجودہ messaging platforms سے جڑتا ہے۔ آپ اپنے ایجنٹ سے جہاں بھی پہلے سے بات کرتے ہیں وہاں بات کریں — terminal، Telegram، Slack، Discord، WhatsApp، web widget، یا email۔ ہر channel کا اپنا classification level، owner identity checks، اور policy enforcement ہے۔

Channels کیسے کام کرتے ہیں

ہر channel adapter وہی interface implement کرتا ہے: connect، disconnect، send، onMessage، اور status۔ Channel router تمام adapters کے اوپر ہوتا ہے اور message dispatch، classification checks، اور retry logic سنبھالتا ہے۔

Channel router: all channel adapters flow through a central classification gate to the Gateway Server

جب کسی channel پر پیغام آتا ہے، router:

  1. Code-level identity checks کا استعمال کرتے ہوئے sender کی شناخت کرتا ہے (owner یا external) — LLM interpretation نہیں
  2. پیغام کو channel کی classification level سے tag کرتا ہے
  3. نافذ کاری کے لیے policy engine کو forward کرتا ہے
  4. ایجنٹ کی response کو اسی channel کے ذریعے واپس route کرتا ہے

Channel Classification

ہر channel کی ایک ڈیفالٹ classification level ہوتی ہے جو طے کرتی ہے کہ اس سے کیا ڈیٹا بہہ سکتا ہے۔ Policy engine no write-down قاعدہ نافذ کرتی ہے: ایک دی گئی classification سطح پر ڈیٹا کم classification والے channel کی طرف کبھی نہیں بہہ سکتا۔

Channelڈیفالٹ ClassificationOwner Detection
CLIINTERNALہمیشہ owner (terminal user)
TelegramINTERNALTelegram user ID match
SignalPUBLICکبھی owner نہیں (adapter آپ کا فون ہے)
SlackPUBLICSlack user ID بذریعہ OAuth
DiscordPUBLICDiscord user ID match
WhatsAppPUBLICPhone number match
WebChatPUBLICکبھی owner نہیں (زائرین)
EmailCONFIDENTIALEmail address match

مکمل طور پر قابل ترتیب تمام classifications آپ کی triggerfish.yaml میں

قابل ترتیب ہیں۔ آپ اپنی سیکیورٹی ضروریات کی بنیاد پر کسی بھی channel کو کوئی بھی classification level دے سکتے ہیں۔

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

Effective Classification

کسی بھی پیغام کی effective classification channel classification اور recipient classification میں سے کم ہوتی ہے:

Channel LevelRecipient LevelEffective Level
INTERNALINTERNALINTERNAL
INTERNALEXTERNALPUBLIC
CONFIDENTIALINTERNALINTERNAL
CONFIDENTIALEXTERNALPUBLIC

اس کا مطلب ہے کہ یہاں تک کہ اگر channel CONFIDENTIAL classified ہو، اس channel پر external recipients کو پیغامات PUBLIC سمجھے جاتے ہیں۔

Channel States

Channels مقررہ states سے گزرتے ہیں:

  • UNTRUSTED — نئے یا نامعلوم channels یہاں سے شروع ہوتے ہیں۔ کوئی ڈیٹا اندر یا باہر نہیں بہتا۔ Channel مکمل isolated ہے جب تک آپ اسے classify نہ کریں۔
  • CLASSIFIED — Channel کو classification level تفویض کی گئی ہے اور یہ فعال ہے۔ پیغامات policy قواعد کے مطابق بہتے ہیں۔
  • BLOCKED — Channel کو صراحتاً غیر فعال کیا گیا ہے۔ کوئی پیغام process نہیں ہوتے۔

UNTRUSTED Channels ایک UNTRUSTED channel ایجنٹ سے کوئی ڈیٹا receive

نہیں کر سکتا اور ایجنٹ کے context میں ڈیٹا نہیں بھیج سکتا۔ یہ ایک سخت سیکیورٹی حد ہے، کوئی تجویز نہیں۔ :::

Channel Router

Channel router تمام registered adapters کا انتظام کرتا ہے اور فراہم کرتا ہے:

  • Adapter registration — Channel ID کے ذریعے channel adapters register اور unregister کریں
  • Message dispatch — Outbound پیغامات کو صحیح adapter تک route کریں
  • Retry with exponential backoff — ناکام sends کو بڑھتی ہوئی delays (1s، 2s، 4s) کے ساتھ 3 بار retry کیے جاتے ہیں
  • Bulk operations — Lifecycle management کے لیے connectAll() اور disconnectAll()
yaml
# Router retry behavior قابل ترتیب ہے
router:
  maxRetries: 3
  baseDelay: 1000 # milliseconds

Ripple: Typing اور Presence

Triggerfish ان channels پر typing indicators اور presence state relay کرتا ہے جو انہیں support کرتے ہیں۔ اسے Ripple کہتے ہیں۔

ChannelTyping IndicatorsRead Receipts
TelegramSend اور receiveہاں
SignalSend اور receive--
Slackصرف Send--
Discordصرف Send--
WhatsAppSend اور receiveہاں
WebChatSend اور receiveہاں

Agent presence states: idle، online، away، busy، processing، speaking، error۔

Message Chunking

Platforms کی message length limits ہوتی ہیں۔ Triggerfish خود بخود لمبی responses کو ہر platform کی constraints میں fit کرنے کے لیے chunk کرتا ہے، پڑھنے کے لیے newlines یا spaces پر split کرتا ہے:

Channelزیادہ سے زیادہ Message Length
Telegram4,096 حروف
Signal4,000 حروف
Discord2,000 حروف
Slack40,000 حروف
WhatsApp4,096 حروف
WebChatلامحدود

اگلے اقدامات

وہ channels ترتیب دیں جو آپ استعمال کرتے ہیں:

  • CLI — ہمیشہ دستیاب، کوئی setup ضروری نہیں
  • Telegram — @BotFather کے ذریعے bot بنائیں
  • Signal — signal-cli daemon کے ذریعے link کریں
  • Slack — Socket Mode کے ساتھ Slack app بنائیں
  • Discord — Discord bot application بنائیں
  • WhatsApp — WhatsApp Business Cloud API کے ذریعے جڑیں
  • WebChat — اپنی site پر chat widget embed کریں
  • Email — IMAP اور SMTP relay کے ذریعے جڑیں