代理團隊
Triggerfish 代理可以產生持久的協作代理團隊,共同處理複雜任務。每個團隊成員擁有自己的工作階段、角色、對話上下文和工具。其中一位成員被指定為領導者並協調工作。
團隊最適合受益於專門角色平行工作的開放式任務:研究 + 分析 + 撰寫、架構 + 實作 + 審查,或任何需要不同觀點相互迭代的任務。
可用性
代理團隊在使用 Triggerfish Gateway 時需要 Power 方案($149/月)。使用自己 API 金鑰的開源使用者可以完全存取代理團隊——每個團隊成員從您配置的供應商消耗推理。
工具
team_create
建立一個持久的代理團隊,協作完成任務。定義成員角色、工具和模型。必須恰好有一位成員是領導者。
| 參數 | 類型 | 必要 | 描述 |
|---|---|---|---|
name | string | 是 | 人類可讀的團隊名稱 |
task | string | 是 | 團隊目標(作為初始指示傳送給領導者) |
members | array | 是 | 團隊成員定義(見下方) |
idle_timeout_seconds | number | 否 | 每位成員的閒置逾時。預設:300(5 分鐘) |
max_lifetime_seconds | number | 否 | 團隊最長生命週期。預設:3600(1 小時) |
classification_ceiling | string | 否 | 全團隊分類上限(例如 CONFIDENTIAL) |
成員定義:
| 欄位 | 類型 | 必要 | 描述 |
|---|---|---|---|
role | string | 是 | 唯一角色識別碼(例如 researcher、reviewer) |
description | string | 是 | 此成員的職責(注入到系統提示中) |
is_lead | boolean | 是 | 此成員是否為團隊領導者 |
model | string | 否 | 此成員的模型覆寫 |
classification_ceiling | string | 否 | 每位成員的分類上限 |
initial_task | string | 否 | 初始指示(領導者預設使用團隊任務) |
驗證規則:
- 團隊必須恰好有一位
is_lead: true的成員 - 所有角色必須唯一且非空
- 成員分類上限不能超過團隊上限
name和task必須非空
team_status
檢查活躍團隊的當前狀態。
| 參數 | 類型 | 必要 | 描述 |
|---|---|---|---|
team_id | string | 是 | 團隊 ID |
回傳團隊的狀態、聚合 taint 等級,以及每位成員的詳情,包括每位成員的當前 taint、狀態和最後活動時間戳記。
team_message
傳送訊息給特定的團隊成員。適用於提供額外上下文、重新導向工作或詢問進度更新。
| 參數 | 類型 | 必要 | 描述 |
|---|---|---|---|
team_id | string | 是 | 團隊 ID |
role | string | 否 | 目標成員角色(預設為領導者) |
message | string | 是 | 訊息內容 |
團隊必須處於 running 狀態,目標成員必須為 active 或 idle。
team_disband
關閉團隊並終止所有成員工作階段。
| 參數 | 類型 | 必要 | 描述 |
|---|---|---|---|
team_id | string | 是 | 團隊 ID |
reason | string | 否 | 解散團隊的原因 |
只有建立團隊的工作階段或領導者成員可以解散團隊。
團隊如何運作
建立
當代理呼叫 team_create 時,Triggerfish:
- 驗證團隊定義(角色、領導者數量、分類上限)
- 透過協調器工廠為每位成員產生一個隔離的代理工作階段
- 將團隊名單提示注入每位成員的系統提示中,描述其角色、隊友和協作指示
- 將初始任務傳送給領導者(或每位成員的自訂
initial_task) - 啟動每 30 秒檢查團隊健康的生命週期監控器
每位成員的工作階段完全隔離,有自己的對話上下文、taint 追蹤和工具存取。
協作
團隊成員使用 sessions_send 相互通訊。建立代理不需要在成員之間轉送訊息。典型流程:
- 領導者接收團隊目標
- 領導者分解任務並透過
sessions_send向成員傳送分配 - 成員自主工作,呼叫工具並迭代
- 成員將結果傳回領導者(或直接傳給另一位成員)
- 領導者綜合結果並決定工作何時完成
- 領導者呼叫
team_disband關閉團隊
成員之間的訊息透過協調器直接傳遞——每條訊息在接收者的工作階段中觸發一個完整的代理回合。
狀態
隨時使用 team_status 檢查進度。回應包括:
- 團隊狀態:
running、paused、completed、disbanded或timed_out - 聚合 taint: 所有成員中最高的分類等級
- 每位成員詳情: 角色、狀態(
active、idle、completed、failed)、當前 taint 等級和最後活動時間戳記
解散
團隊可透過以下方式解散:
- 建立工作階段呼叫
team_disband - 領導者成員呼叫
team_disband - 生命週期監控器在生命週期限制到期後自動解散
- 生命週期監控器偵測到所有成員都不活躍
當團隊被解散時,所有活躍的成員工作階段都會被終止並清理資源。
團隊角色
領導者
領導者成員協調團隊。建立時:
- 接收團隊的
task作為初始指示(除非被initial_task覆寫) - 獲得系統提示指示,用於分解工作、分配任務和決定何時達成目標
- 有權解散團隊
每個團隊恰好有一位領導者。
成員
非領導者成員是專家。建立時:
- 如果提供了
initial_task則接收,否則閒置直到領導者傳送工作 - 獲得系統提示指示,用於將完成的工作傳送給領導者或下一位適當的隊友
- 無法解散團隊
生命週期監控
團隊有自動的生命週期監控,每 30 秒執行一次。
閒置逾時
每位成員有閒置逾時(預設:5 分鐘)。當成員閒置時:
- 第一閾值(idle_timeout_seconds): 成員收到提醒訊息,要求如果工作已完成就傳送結果
- 雙倍閾值(2x idle_timeout_seconds): 成員被終止,領導者收到通知
生命週期逾時
團隊有最長生命週期(預設:1 小時)。當限制到達時:
- 領導者收到警告訊息,有 60 秒產生最終輸出
- 寬限期過後,團隊自動解散
健康檢查
監控器每 30 秒檢查工作階段健康:
- 領導者故障: 如果領導者工作階段無法連線,團隊暫停並通知建立工作階段
- 成員故障: 如果成員工作階段消失,標記為
failed並通知領導者繼續與剩餘成員合作 - 全部不活躍: 如果所有成員都為
completed或failed,通知建立工作階段注入新指示或解散
分類和 Taint
團隊成員工作階段遵循與所有其他工作階段相同的分類規則:
- 每位成員以
PUBLICtaint 開始,並在存取分類資料時提升 - 分類上限可以按團隊或按成員設定,限制成員可以存取的資料
- 降級寫入執行適用於所有成員間通訊。taint 為
CONFIDENTIAL的成員無法向PUBLIC的成員傳送資料 - 聚合 taint(所有成員中最高的 taint)在
team_status中報告,讓建立工作階段可以追蹤團隊的整體分類曝露
安全性 成員分類上限不能超過團隊上限。如果團隊上限是 INTERNAL,沒有成員可以配置 CONFIDENTIAL 上限。這在建立時驗證。 :::
團隊與子代理比較
| 面向 | 子代理(subagent) | 團隊(team_create) |
|---|---|---|
| 生命週期 | 單一任務,回傳結果後退出 | 持久存在直到解散或逾時 |
| 成員 | 一個代理 | 多個具有不同角色的代理 |
| 互動 | 從父代理發射後不管 | 成員透過 sessions_send 自由通訊 |
| 協調 | 父代理等待結果 | 領導者協調,父代理可透過 team_status 簽到 |
| 使用場景 | 專注的單步驟委派 | 複雜的多角色協作 |
使用子代理當您需要單一代理執行專注任務並回傳結果。使用團隊當任務受益於多個專門觀點相互迭代。
團隊一旦建立就是自主的。建立代理可以檢查狀態和傳送訊息,但不需要微觀管理。領導者處理協調。 :::
