Skip to content

マルチエージェントルーティング

Triggerfishは異なるチャンネル、アカウント、または連絡先を、それぞれ独自のワークスペース、 セッション、個性、分類の上限を持つ別々の分離されたエージェントにルーティングすることをサポートします。

なぜ複数のエージェントが必要か?

単一の個性を持つ単一のエージェントでは常に十分ではありません。以下のものが必要かもしれません:

  • カレンダー、リマインダー、家族のメッセージを処理するWhatsApp上のパーソナルアシスタント
  • Jiraチケット、GitHub PR、コードレビューを管理するSlack上のワークアシスタント
  • 異なるトーンと制限されたアクセスでコミュニティの質問に答えるDiscord上のサポートエージェント

マルチエージェントルーティングにより、単一のTriggerfishインストールからこれらすべてを同時に実行できます。

仕組み

マルチエージェントルーティング:インバウンドチャンネルがAgentRouterを通じて分離されたエージェントワークスペースにルーティング

AgentRouterは各インバウンドメッセージを調べ、設定可能なルーティングルールに基づいてエージェントに マップします。ルールが一致しない場合、メッセージはデフォルトエージェントに送られます。

ルーティングルール

メッセージは以下でルーティングできます:

基準説明
チャンネルメッセージングプラットフォームでルーティングすべてのSlackメッセージが「Work」へ
アカウントチャンネル内の特定のアカウントでルーティング仕事のメールと個人のメール
連絡先送信者/ピアのアイデンティティでルーティング上司からのメッセージが「Work」へ
デフォルトルールが一致しない場合のフォールバックそれ以外はすべて「Personal」へ

設定

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

各エージェントは以下を指定します:

  • id — ルーティング用の一意識別子。
  • name — 人間が読める名前。
  • channels — このエージェントが処理するチャンネルインスタンス。
  • tools — ツールプロファイルと明示的な許可/拒否リスト。
  • model — 使用するLLMモデル(エージェントごとに異なる場合あり)。
  • classification_ceiling — このエージェントが到達できる最大分類レベル。

エージェントアイデンティティ

各エージェントは個性、ミッション、境界を定義する独自のSPINE.mdを持ちます。SPINE.mdファイルは エージェントのワークスペースディレクトリに置かれます:

~/.triggerfish/
  workspace/
    personal/
      SPINE.md          # パーソナルアシスタントの個性
    work/
      SPINE.md          # ワークアシスタントの個性
    support/
      SPINE.md          # サポートボットの個性

分離

マルチエージェントルーティングはエージェント間の厳格な分離を強制します:

側面分離
セッション各エージェントは独立したセッション空間を持ちます。セッションは共有されません。
TaintTaintはエージェントごとに追跡され、エージェントをまたぎません。仕事のtaintは個人セッションに影響しません。
スキルスキルはワークスペースごとにロードされます。仕事のスキルはパーソナルエージェントには利用できません。
シークレット認証情報はエージェントごとに分離されています。サポートエージェントは仕事のAPIキーにアクセスできません。
ワークスペース各エージェントはコード実行のための独自のファイルシステムワークスペースを持ちます。

エージェント間通信はsessions_sendを通じて可能ですが、ポリシーレイヤーによって

ゲートされています。1つのエージェントは明示的に許可するポリシールールなしに、別のエージェントのデータや セッションにサイレントにアクセスできません。 :::

マルチエージェントルーティングはチャンネルとペルソナをまたいで関心を分離するためのものです。

共有タスクで協力する必要があるエージェントについては、エージェントチームを 参照してください。 :::

デフォルトエージェント

ルーティングルールがインバウンドメッセージと一致しない場合、デフォルトエージェントに送られます。 設定で設定できます:

yaml
agents:
  default: personal

デフォルトが設定されていない場合、リストの最初のエージェントがデフォルトとして使用されます。