Skip to content

Multi-Agent Routing

Sinusuportahan ng Triggerfish ang pag-route ng iba't ibang channels, accounts, o contacts sa hiwalay na isolated agents, bawat isa ay may sariling workspace, sessions, personality, at classification ceiling.

Bakit Maramihang Agents?

Hindi palaging sapat ang iisang agent na may iisang personality. Maaaring gusto mo ng:

  • Isang personal assistant sa WhatsApp na humahawak ng calendar, reminders, at family messages.
  • Isang work assistant sa Slack na nagma-manage ng Jira tickets, GitHub PRs, at code reviews.
  • Isang support agent sa Discord na sumasagot ng community questions na may ibang tone at limitadong access.

Pinapayagan ka ng multi-agent routing na patakbuhin ang lahat ng ito nang sabay-sabay mula sa iisang Triggerfish installation.

Paano Gumagana

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

Sinusuri ng AgentRouter ang bawat inbound message at mina-map ito sa isang agent batay sa configurable routing rules. Kung walang rule na tumugma, napupunta ang messages sa default agent.

Mga Routing Rule

Maaaring i-route ang messages ayon sa:

CriteriaPaglalarawanHalimbawa
ChannelI-route ayon sa messaging platformLahat ng Slack messages ay napupunta sa "Work"
AccountI-route ayon sa specific account sa loob ng channelWork email vs personal email
ContactI-route ayon sa sender/peer identityMessages mula sa manager mo ay napupunta sa "Work"
DefaultFallback kapag walang rule na tumugmaLahat ng iba pa ay napupunta sa "Personal"

Configuration

Mag-define ng agents at routing sa triggerfish.yaml:

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

Bawat agent ay nagsi-specify ng:

  • id -- Unique identifier para sa routing.
  • name -- Human-readable na pangalan.
  • channels -- Aling channel instances ang hina-handle ng agent na ito.
  • tools -- Tool profile at explicit allow/deny lists.
  • model -- Aling LLM model ang gagamitin (maaaring mag-iba per agent).
  • classification_ceiling -- Maximum classification level na maaaring maabot ng agent na ito.

Agent Identity

Bawat agent ay may sariling SPINE.md na nagde-define ng personality, mission, at boundaries nito. Ang SPINE.md files ay nasa workspace directory ng agent:

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

Isolation

Ine-enforce ng multi-agent routing ang strict isolation sa pagitan ng agents:

AspetoIsolation
SessionsBawat agent ay may independent session space. Hindi kailanman shine-share ang sessions.
TaintAng taint ay tina-track per-agent, hindi sa lahat ng agents. Hindi naaapektuhan ng work taint ang personal sessions.
SkillsNilo-load ang skills per-workspace. Ang work skill ay hindi available sa personal agent.
SecretsAng credentials ay isolated per-agent. Hindi maa-access ng support agent ang work API keys.
WorkspacesBawat agent ay may sariling filesystem workspace para sa code execution.

Posible ang inter-agent communication sa pamamagitan ng sessions_send pero gine-gate ito ng policy layer. Hindi maaaring tahimik na i-access ng isang agent ang data o sessions ng ibang agent nang walang explicit policy rules na nagpapahintulot nito. :::

Ang multi-agent routing ay para sa paghihiwalay ng concerns sa mga channels at personas. Para sa mga agents na kailangang mag-collaborate sa shared task, tingnan ang Agent Teams. :::

Default Agent

Kapag walang routing rule na tumugma sa inbound message, napupunta ito sa default agent. Maaari mo itong i-set sa configuration:

yaml
agents:
  default: personal

Kung walang default na naka-configure, ang unang agent sa list ang ginagamit bilang default.