Skip to content

エージェントチーム

Triggerfishエージェントは複雑なタスクを共に取り組む協力エージェントの永続的なチームを生成できます。 各チームメンバーは独自のセッション、役割、会話コンテキスト、ツールを持ちます。1人のメンバーが リードとして指定され、作業をコーディネートします。

チームは専門的な役割が並行して作業することから恩恵を受けるオープンエンドなタスクに最適です: 調査 + 分析 + ライティング、アーキテクチャ + 実装 + レビュー、または異なる視点が互いの作業を 繰り返し検討する必要があるタスク。

利用可能性

エージェントチームは、Triggerfish Gatewayを使用する場合、Powerプラン(月額$149)が必要です。 独自のAPIキーを実行しているオープンソースユーザーはエージェントチームへの完全なアクセスを持ちます — 各チームメンバーは設定されたプロバイダーからの推論を消費します。

ツール

team_create

タスクで協力するエージェントの永続的なチームを作成します。メンバーの役割、ツール、モデルを定義します。 正確に1人のメンバーがリードでなければなりません。

パラメータータイプ必須説明
namestringはい人間が読めるチーム名
taskstringはいチームの目標(リードへの最初の指示として送られる)
membersarrayはいチームメンバーの定義(以下参照)
idle_timeout_secondsnumberいいえメンバーごとのアイドルタイムアウト。デフォルト:300(5分)
max_lifetime_secondsnumberいいえチームの最大ライフタイム。デフォルト:3600(1時間)
classification_ceilingstringいいえチーム全体の分類の上限(例:CONFIDENTIAL

メンバー定義:

フィールドタイプ必須説明
rolestringはい一意の役割識別子(例:researcherreviewer
descriptionstringはいこのメンバーが行うこと(システムプロンプトに注入)
is_leadbooleanはいこのメンバーがチームリードかどうか
modelstringいいえこのメンバーのモデル上書き
classification_ceilingstringいいえメンバーごとの分類の上限
initial_taskstringいいえ最初の指示(リードはデフォルトでチームタスク)

バリデーションルール:

  • チームにはis_lead: trueを持つメンバーが正確に1人必要です
  • すべての役割は一意で空でない必要があります
  • メンバーの分類の上限はチームの上限を超えることができません
  • nametaskは空でない必要があります

team_status

アクティブチームの現在の状態を確認します。

パラメータータイプ必須説明
team_idstringはいチームID

チームのステータス、集約taintレベル、各メンバーの現在のtaint、ステータス、最終アクティビティ タイムスタンプを含むメンバーごとの詳細を返します。

team_message

特定のチームメンバーにメッセージを送信します。追加コンテキストの提供、作業のリダイレクト、 進捗の更新要求に有用です。

パラメータータイプ必須説明
team_idstringはいチームID
rolestringいいえターゲットメンバーの役割(デフォルト:リード)
messagestringはいメッセージコンテンツ

チームはrunningステータスで、ターゲットメンバーはactiveまたはidleである必要があります。

team_disband

チームをシャットダウンしてすべてのメンバーセッションを終了します。

パラメータータイプ必須説明
team_idstringはいチームID
reasonstringいいえチームを解散する理由

チームを作成したセッションまたはリードメンバーのみがチームを解散できます。

チームの仕組み

作成

エージェントがteam_createを呼び出すと、Triggerfishは以下を行います:

  1. チーム定義(役割、リード数、分類の上限)を検証する
  2. オーケストレーターファクトリーを通じて各メンバーのために分離されたエージェントセッションを生成する
  3. 各メンバーのシステムプロンプトにチームロスタープロンプトを注入し、役割、チームメイト、 協力指示を説明する
  4. リードに(またはメンバーごとのカスタムinitial_taskに)最初のタスクを送信する
  5. 30秒ごとにチームの健全性を確認するライフサイクルモニターを開始する

各メンバーセッションは独自の会話コンテキスト、taintトラッキング、ツールアクセスで完全に分離されています。

協力

チームメンバーはsessions_sendを使用して互いに通信します。作成エージェントはメンバー間でメッセージを 中継する必要はありません。典型的なフロー:

  1. リードがチームの目標を受け取る
  2. リードがタスクを分解し、sessions_sendを通じてメンバーに割り当てを送る
  3. メンバーが自律的に作業し、ツールを呼び出して繰り返す
  4. メンバーが結果をリードに(または直接別のメンバーに)送る
  5. リードが結果を統合して作業が完了したかどうかを決定する
  6. リードがteam_disbandを呼び出してチームをシャットダウンする

チームメンバー間のメッセージはオーケストレーターを通じて直接配信されます — 各メッセージが受信者の セッションで完全なエージェントターンをトリガーします。

ステータス

いつでもteam_statusを使用して進捗を確認できます。レスポンスには以下が含まれます:

  • チームステータス: runningpausedcompleteddisbanded、またはtimed_out
  • 集約taint: すべてのメンバーにわたる最高の分類レベル
  • メンバーごとの詳細: 役割、ステータス(activeidlecompletedfailed)、 現在のtaintレベル、最終アクティビティタイムスタンプ

解散

チームは以下によって解散できます:

  • 作成セッションがteam_disbandを呼び出す
  • リードメンバーがteam_disbandを呼び出す
  • ライフサイクルモニターがライフタイム制限の後に自動解散する
  • ライフサイクルモニターがすべてのメンバーが非アクティブであることを検出する

チームが解散すると、すべてのアクティブなメンバーセッションが終了してリソースがクリーンアップされます。

チームの役割

リード

リードメンバーはチームをコーディネートします。作成時:

  • チームのtaskを最初の指示として受け取ります(initial_taskで上書きされない限り)
  • 作業の分解、タスクの割り当て、目標が達成されたときの判断のためのシステムプロンプト指示を受け取ります
  • チームを解散する権限があります

チームごとに正確に1人のリードがいます。

メンバー

リード以外のメンバーはスペシャリストです。作成時:

  • initial_taskが提供された場合はそれを受け取り、そうでなければリードが作業を送るまでアイドル状態になります
  • 完了した作業をリードまたは次の適切なチームメイトに送るためのシステムプロンプト指示を受け取ります
  • チームを解散できません

ライフサイクル監視

チームには30秒ごとに実行される自動ライフサイクル監視があります。

アイドルタイムアウト

各メンバーにはアイドルタイムアウト(デフォルト:5分)があります。メンバーがアイドル状態の場合:

  1. 最初の閾値(idle_timeout_seconds): メンバーは作業が完了している場合に結果を送るよう 促すメッセージを受け取ります
  2. 2倍の閾値(2x idle_timeout_seconds): メンバーは終了され、リードに通知されます

ライフタイムタイムアウト

チームには最大ライフタイム(デフォルト:1時間)があります。制限に達すると:

  1. リードは最終出力を生成するための60秒の猶予を与える警告メッセージを受け取ります
  2. 猶予期間後、チームは自動的に解散されます

ヘルスチェック

モニターは30秒ごとにセッションの健全性を確認します:

  • リードの失敗: リードセッションに到達できなくなった場合、チームは一時停止され作成セッションに 通知されます
  • メンバーの失敗: メンバーセッションが消えた場合、failedとしてマークされ、リードに残りの メンバーで継続するよう通知されます
  • すべて非アクティブ: すべてのメンバーがcompletedまたはfailedの場合、作成セッションに 新しい指示を注入するかまたは解散するかを選択するよう通知されます

分類とTaint

チームメンバーセッションは他のすべてのセッションと同じ分類ルールに従います:

  • 各メンバーはPUBLIC taintから開始し、分類データにアクセスするにつれてエスカレートします
  • 分類の上限はチームごとまたはメンバーごとに設定して、メンバーがアクセスできるデータを制限できます
  • ライトダウン禁止強制はすべてのメンバー間通信に適用されます。CONFIDENTIALにtaintされた メンバーはPUBLICのメンバーにデータを送信できません
  • 集約taint(すべてのメンバーにわたる最高のtaint)はteam_statusで報告され、作成セッションが チームの全体的な分類露出を追跡できます

SECURITY メンバーの分類の上限はチームの上限を超えることができません。チームの上限が

INTERNALの場合、CONFIDENTIALの上限で設定できるメンバーはいません。これは作成時に検証されます。 :::

チームとサブエージェントの比較

側面サブエージェント(subagentチーム(team_create
ライフタイム単一タスク、結果を返して終了解散またはタイムアウトまで永続
メンバー1つのエージェント異なる役割を持つ複数のエージェント
インタラクション親からのファイア・アンド・フォーゲットメンバーがsessions_sendを通じて自由に通信
コーディネーション親が結果を待つリードがコーディネート、親はteam_statusでチェックイン可能
ユースケース焦点を絞った単一ステップの委任複雑なマルチロールの協力

焦点を絞ったタスクを行い結果を返す単一のエージェントが必要な場合はサブエージェントを使用します。 タスクが互いの作業を繰り返し検討する複数の専門的な視点から恩恵を受ける場合はチームを使用します。

チームは一度作成されると自律的です。作成エージェントはステータスを確認してメッセージを送ることが

できますが、細かく管理する必要はありません。リードがコーディネーションを処理します。 :::