Skip to content

Multi-Agent-Routing ​

Triggerfish unterstuetzt das Routing verschiedener Kanaele, Konten oder Kontakte an separate isolierte Agenten, jeder mit eigenem Workspace, Sessions, Persoenlichkeit und Klassifizierungsobergrenze.

Warum mehrere Agenten? ​

Ein einzelner Agent mit einer einzelnen Persoenlichkeit reicht nicht immer aus. Sie moechten vielleicht:

  • Einen persoenlichen Assistenten auf WhatsApp, der Kalender, Erinnerungen und Familiennachrichten verwaltet.
  • Einen Arbeitsassistenten auf Slack, der Jira-Tickets, GitHub-PRs und Code-Reviews verwaltet.
  • Einen Support-Agenten auf Discord, der Community-Fragen mit einem anderen Ton und eingeschraenktem Zugang beantwortet.

Multi-Agent-Routing ermoeglicht es Ihnen, all dies gleichzeitig von einer einzigen Triggerfish-Installation aus zu betreiben.

So funktioniert es ​

Multi-Agent-Routing: eingehende Kanaele werden ueber AgentRouter an isolierte Agenten-Workspaces weitergeleitet

Der AgentRouter untersucht jede eingehende Nachricht und ordnet sie basierend auf konfigurierbaren Routing-Regeln einem Agenten zu. Wenn keine Regel zutrifft, gehen Nachrichten an einen Standard-Agenten.

Routing-Regeln ​

Nachrichten koennen nach folgenden Kriterien geroutet werden:

KriteriumBeschreibungBeispiel
KanalRouting nach Messaging-PlattformAlle Slack-Nachrichten gehen an "Arbeit"
KontoRouting nach spezifischem Konto innerhalb eines KanalsArbeits-E-Mail vs. persoenliche E-Mail
KontaktRouting nach Absender-/Peer-IdentitaetNachrichten von Ihrem Chef gehen an "Arbeit"
StandardFallback, wenn keine Regel zutrifftAlles andere geht an "Persoenlich"

Konfiguration ​

Definieren Sie Agenten und Routing in 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

Jeder Agent spezifiziert:

  • id -- Eindeutige Kennung fuer das Routing.
  • name -- Menschenlesbarer Name.
  • channels -- Welche Kanal-Instanzen dieser Agent behandelt.
  • tools -- Tool-Profil und explizite Allow/Deny-Listen.
  • model -- Welches LLM-Modell verwendet werden soll (kann pro Agent unterschiedlich sein).
  • classification_ceiling -- Maximale Klassifizierungsstufe, die dieser Agent erreichen kann.

Agenten-Identitaet ​

Jeder Agent hat sein eigenes SPINE.md, das seine Persoenlichkeit, Mission und Grenzen definiert. SPINE.md-Dateien befinden sich im Workspace-Verzeichnis des Agenten:

~/.triggerfish/
  workspace/
    personal/
      SPINE.md          # Persoenlicher Assistent Persoenlichkeit
    work/
      SPINE.md          # Arbeitsassistent Persoenlichkeit
    support/
      SPINE.md          # Support-Bot Persoenlichkeit

Isolation ​

Multi-Agent-Routing setzt strikte Isolation zwischen Agenten durch:

AspektIsolation
SessionsJeder Agent hat unabhaengigen Session-Raum. Sessions werden niemals geteilt.
TaintTaint wird pro Agent verfolgt, nicht agentenuebergreifend. Arbeits-Taint beeinflusst keine persoenlichen Sessions.
SkillsSkills werden pro Workspace geladen. Ein Arbeits-Skill ist fuer den persoenlichen Agenten nicht verfuegbar.
SecretsAnmeldedaten sind pro Agent isoliert. Der Support-Agent kann nicht auf Arbeits-API-Schluessel zugreifen.
WorkspacesJeder Agent hat seinen eigenen Dateisystem-Workspace fuer Code-Ausfuehrung.

Inter-Agent-Kommunikation ist ueber sessions_send moeglich, wird aber durch die Policy-Schicht gesteuert. Ein Agent kann nicht stillschweigend auf die Daten oder Sessions eines anderen Agenten zugreifen, ohne explizite Policy-Regeln, die dies erlauben. :::

Multi-Agent-Routing dient der Trennung von Zustaendigkeiten ueber Kanaele und Personas hinweg. Fuer Agenten, die an einer gemeinsamen Aufgabe zusammenarbeiten muessen, siehe Agenten-Teams. :::

Standard-Agent ​

Wenn keine Routing-Regel auf eine eingehende Nachricht zutrifft, geht sie an den Standard-Agenten. Sie koennen dies in der Konfiguration festlegen:

yaml
agents:
  default: personal

Wenn kein Standard konfiguriert ist, wird der erste Agent in der Liste als Standard verwendet.