Skip to content

代理團隊

Triggerfish 代理可以產生持久的協作代理團隊,共同處理複雜任務。每個團隊成員擁有自己的工作階段、角色、對話上下文和工具。其中一位成員被指定為領導者並協調工作。

團隊最適合受益於專門角色平行工作的開放式任務:研究 + 分析 + 撰寫、架構 + 實作 + 審查,或任何需要不同觀點相互迭代的任務。

可用性

代理團隊在使用 Triggerfish Gateway 時需要 Power 方案($149/月)。使用自己 API 金鑰的開源使用者可以完全存取代理團隊——每個團隊成員從您配置的供應商消耗推理。

工具

team_create

建立一個持久的代理團隊,協作完成任務。定義成員角色、工具和模型。必須恰好有一位成員是領導者。

參數類型必要描述
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 的成員
  • 所有角色必須唯一且非空
  • 成員分類上限不能超過團隊上限
  • nametask 必須非空

team_status

檢查活躍團隊的當前狀態。

參數類型必要描述
team_idstring團隊 ID

回傳團隊的狀態、聚合 taint 等級,以及每位成員的詳情,包括每位成員的當前 taint、狀態和最後活動時間戳記。

team_message

傳送訊息給特定的團隊成員。適用於提供額外上下文、重新導向工作或詢問進度更新。

參數類型必要描述
team_idstring團隊 ID
rolestring目標成員角色(預設為領導者)
messagestring訊息內容

團隊必須處於 running 狀態,目標成員必須為 activeidle

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 檢查進度。回應包括:

  • 團隊狀態: runningpausedcompleteddisbandedtimed_out
  • 聚合 taint: 所有成員中最高的分類等級
  • 每位成員詳情: 角色、狀態(activeidlecompletedfailed)、當前 taint 等級和最後活動時間戳記

解散

團隊可透過以下方式解散:

  • 建立工作階段呼叫 team_disband
  • 領導者成員呼叫 team_disband
  • 生命週期監控器在生命週期限制到期後自動解散
  • 生命週期監控器偵測到所有成員都不活躍

當團隊被解散時,所有活躍的成員工作階段都會被終止並清理資源。

團隊角色

領導者

領導者成員協調團隊。建立時:

  • 接收團隊的 task 作為初始指示(除非被 initial_task 覆寫)
  • 獲得系統提示指示,用於分解工作、分配任務和決定何時達成目標
  • 有權解散團隊

每個團隊恰好有一位領導者。

成員

非領導者成員是專家。建立時:

  • 如果提供了 initial_task 則接收,否則閒置直到領導者傳送工作
  • 獲得系統提示指示,用於將完成的工作傳送給領導者或下一位適當的隊友
  • 無法解散團隊

生命週期監控

團隊有自動的生命週期監控,每 30 秒執行一次。

閒置逾時

每位成員有閒置逾時(預設:5 分鐘)。當成員閒置時:

  1. 第一閾值(idle_timeout_seconds): 成員收到提醒訊息,要求如果工作已完成就傳送結果
  2. 雙倍閾值(2x idle_timeout_seconds): 成員被終止,領導者收到通知

生命週期逾時

團隊有最長生命週期(預設:1 小時)。當限制到達時:

  1. 領導者收到警告訊息,有 60 秒產生最終輸出
  2. 寬限期過後,團隊自動解散

健康檢查

監控器每 30 秒檢查工作階段健康:

  • 領導者故障: 如果領導者工作階段無法連線,團隊暫停並通知建立工作階段
  • 成員故障: 如果成員工作階段消失,標記為 failed 並通知領導者繼續與剩餘成員合作
  • 全部不活躍: 如果所有成員都為 completedfailed,通知建立工作階段注入新指示或解散

分類和 Taint

團隊成員工作階段遵循與所有其他工作階段相同的分類規則:

  • 每位成員以 PUBLIC taint 開始,並在存取分類資料時提升
  • 分類上限可以按團隊或按成員設定,限制成員可以存取的資料
  • 降級寫入執行適用於所有成員間通訊。taint 為 CONFIDENTIAL 的成員無法向 PUBLIC 的成員傳送資料
  • 聚合 taint(所有成員中最高的 taint)在 team_status 中報告,讓建立工作階段可以追蹤團隊的整體分類曝露

安全性 成員分類上限不能超過團隊上限。如果團隊上限是 INTERNAL,沒有成員可以配置 CONFIDENTIAL 上限。這在建立時驗證。 :::

團隊與子代理比較

面向子代理(subagent團隊(team_create
生命週期單一任務,回傳結果後退出持久存在直到解散或逾時
成員一個代理多個具有不同角色的代理
互動從父代理發射後不管成員透過 sessions_send 自由通訊
協調父代理等待結果領導者協調,父代理可透過 team_status 簽到
使用場景專注的單步驟委派複雜的多角色協作

使用子代理當您需要單一代理執行專注任務並回傳結果。使用團隊當任務受益於多個專門觀點相互迭代。

團隊一旦建立就是自主的。建立代理可以檢查狀態和傳送訊息,但不需要微觀管理。領導者處理協調。 :::