Skip to content

Multi-Agent Routing

Triggerfish مختلف channels، accounts، یا contacts کو الگ isolated agents تک routing support کرتا ہے، ہر ایک کا اپنا workspace، sessions، personality، اور classification ceiling کے ساتھ۔

Multiple Agents کیوں؟

ایک personality والا single agent ہمیشہ کافی نہیں ہوتا۔ آپ چاہتے ہو سکتے ہیں:

  • WhatsApp پر personal assistant جو calendar، reminders، اور family messages handle کرے۔
  • Slack پر work assistant جو Jira tickets، GitHub PRs، اور code reviews manage کرے۔
  • Discord پر support agent جو مختلف tone اور limited access کے ساتھ community questions کا جواب دے۔

Multi-agent routing آپ کو یہ سب ایک Triggerfish installation سے simultaneously چلانے دیتا ہے۔

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

Multi-agent routing: inbound channels routed through AgentRouter to isolated agent workspaces

AgentRouter ہر inbound message examine کرتا ہے اور اسے configurable routing rules کی بنیاد پر agent تک map کرتا ہے۔ اگر کوئی rule match نہ کرے تو messages default agent کو جاتے ہیں۔

Routing Rules

Messages ان کی بنیاد پر route کی جا سکتی ہیں:

Criteriaتفصیلمثال
ChannelMessaging platform سے routeتمام Slack messages "Work" کو جاتے ہیں
AccountChannel کے اندر مخصوص account سے routeWork email بمقابلہ personal email
ContactSender/peer identity سے routeManager کے messages "Work" کو جاتے ہیں
Defaultکوئی rule match نہ کرے تو fallbackباقی سب "Personal" کو جاتے ہیں

Configuration

triggerfish.yaml میں agents اور routing define کریں:

yaml
agents:
  list:
    - id: personal
      name: "Personal Assistant"
      channels: [whatsapp-personal, telegram-dm]
      tools:
        profile: "full"
      model: claude-opus-4-5
      classification_ceiling: PERSONAL

    - id: work
      name: "Work Assistant"
      channels: [slack-work, email-work]
      tools:
        profile: "coding"
        allow: [browser, github]
      model: claude-sonnet-4-5
      classification_ceiling: CONFIDENTIAL

    - id: support
      name: "Customer Support"
      channels: [discord-server]
      tools:
        profile: "messaging"
      model: claude-haiku-4-5
      classification_ceiling: PUBLIC

ہر agent specify کرتا ہے:

  • id -- Routing کے لیے unique identifier۔
  • name -- Human-readable name۔
  • channels -- کون سے channel instances یہ agent handle کرتا ہے۔
  • tools -- Tool profile اور explicit allow/deny lists۔
  • model -- کون سا LLM model استعمال کرنا ہے (per agent مختلف ہو سکتا ہے)۔
  • classification_ceiling -- یہ agent جو زیادہ سے زیادہ classification level reach کر سکتا ہے۔

Agent Identity

ہر agent کا اپنا SPINE.md ہے جو اس کی personality، mission، اور boundaries define کرتا ہے۔ SPINE.md files agent کی workspace directory میں رہتی ہیں:

~/.triggerfish/
  workspace/
    personal/
      SPINE.md          # Personal assistant personality
    work/
      SPINE.md          # Work assistant personality
    support/
      SPINE.md          # Support bot personality

Isolation

Multi-agent routing agents کے درمیان strict isolation enforce کرتی ہے:

پہلوIsolation
Sessionsہر agent کا independent session space۔ Sessions کبھی shared نہیں
TaintTaint per-agent track ہوتا ہے، agents کے پار نہیں۔ Work taint personal sessions کو affect نہیں کرتا
SkillsSkills per-workspace load ہوتی ہیں۔ Work skill personal agent کو available نہیں
SecretsCredentials per-agent isolated۔ Support agent work API keys access نہیں کر سکتا
Workspacesہر agent کی code execution کے لیے اپنی filesystem workspace ہے

Inter-agent communication sessions_send کے ذریعے ممکن ہے لیکن policy

layer سے gated ہے۔ ایک agent بغیر explicit policy rules کے خاموشی سے دوسرے agent کا data یا sessions access نہیں کر سکتا۔ :::

Multi-agent routing channels اور personas کے پار concerns separate کرنے

کے لیے ہے۔ ایسے agents کے لیے جنہیں shared task پر collaborate کرنا ہو، دیکھیں Agent Teams۔ :::

Default Agent

جب کوئی routing rule inbound message سے match نہ کرے، وہ default agent کو جاتا ہے۔ آپ یہ configuration میں set کر سکتے ہیں:

yaml
agents:
  default: personal

اگر کوئی default configure نہ ہو، تو list میں پہلا agent بطور default استعمال ہوتا ہے۔