AI 程式設計教學中文版
官方教學中文版Agents & Skills

Subagents

Gemini CLI Subagents 的用途:專門角色、任務分工、模型設定、啟用停用和適用邊界。

📖 本篇術語速查表
英文 / 縮寫中文一句話解釋
Subagents子代理拆分並行或多角色任務。
窄任務narrow給子代理的任務要明確。
寫入隔離isolation各子代理改動不衝突。

不想讀完?把下面這段提示詞丟給 AI 幫你跑完——幫你在 Gemini CLI 裡把一個大任務拆成清晰分工的 subagents。

你是 Gemini CLI Subagent 設計顧問。

【角色】
Gemini CLI Subagent 設計顧問,按最小夠用、安全優先的原則給可落地方案,每條結論都落到能照做的步驟或示例,不停留在空泛建議。

【輸入】
- 要拆的大任務:___
- 能否拆成互不依賴的子任務:___
- 各部分寫入範圍:___
- 是否需要不同許可權:___
- 經驗水平:___

【工作流程】
1. 判斷任務是否適合拆
2. 拆成職責窄、互不衝突的子代理
3. 給各子代理任務、寫入範圍、許可權
4. 定彙總標準
5. 給驗證

【輸出規範】
▌一、是否適合拆
▌二、各 subagent 角色與窄任務
▌三、寫入範圍與許可權
▌四、彙總標準 + 驗證

【硬約束】
- 強序列任務不拆
- 寫入範圍不衝突,否則不推薦
- 寫許可權收緊 + 審批
- 不要替我臆測情況或編造不存在的能力,資訊不全先問清
- 不確定的設定或介面一律以官方文件為準,禁止照搬過時寫法

Subagents 是專門角色。它們適合把複雜任務拆給不同職責的 agent,而不是讓一個通用 agent 從頭包到尾。

Subagent 適合隔離上下文和職責,不適合把不清楚的任務甩給另一個 agent。主 agent 仍然要負責整合結果和最終判斷。

Subagent 和 Skill 的區別是:Skill 是給目前 agent 載入專門流程;Subagent 是把一段任務委託給另一個獨立上下文的 specialist。Subagent 有自己的 system prompt、工具集和上下文視窗,完成後把結果回傳給主 agent。

官方也支援自定義 agent:專案級可放 .gemini/agents/*.md,使用者級可放 ~/.gemini/agents/*.md。這類設定會影響任務委託方式,適合團隊明確角色邊界後再引入。

常用命令

/agents list
/agents reload
/agents enable <agent-name>
/agents disable <agent-name>
/agents config <agent-name>

可以顯式用 @agent_name 強制委託,例如:

@codebase_investigator 分析 AgentRegistry 和 LocalAgentExecutor 的關係。

這種寫法會給主模型一個強提示,讓它優先呼叫對應 subagent。

適合場景

  • 程式碼審查 agent。
  • 測試修復 agent。
  • 文件整理 agent。
  • 安全檢查 agent。
  • 大專案中分工掃描。
  • 大量上下文檢索,不想汙染主會話。
  • 專門工具集和主 agent 不同的任務。

不適合場景

  • 簡單單檔案問題。
  • 任務目標不清楚。
  • 需要統一上下文強一致的操作。
  • 需要馬上人工判斷的高風險操作。
需求SkillSubagent
給目前 agent 加流程適合不必要
大量只讀掃描可輔助適合
獨立 specialist 角色不適合適合
需要隔離上下文不適合適合
需要主 agent 統一執行適合謹慎

內建 subagents

Gemini CLI 官方文件列出的內建 agent 包括:

  • codebase_investigator:分析程式碼庫、依賴關係和複雜實現。
  • cli_help:回答 Gemini CLI 自身命令、設定和文件問題。
  • generalist:通用型隔離上下文,適合大輸出、多步驟、資源密集型任務。
  • browser_agent:實驗性瀏覽器自動化 agent,預設關閉。

browser_agent 的邊界要特別謹慎。它可以持久 profile、臨時 profile 或連線已有 Chrome;可設定 allowedDomainsmaxActionsPerTaskconfirmSensitiveActionsblockFileUploads 等安全項。涉及賬號後臺、表單、上傳、指令碼執行時,不應預設放開。

官方文件還強調 subagent 不能遞迴呼叫其他 subagent,這是為了避免委託鏈失控。主 agent 仍然要負責檢查結果、整合衝突、決定是否繼續執行。

設定入口

Subagent 的啟用、停用、模型和 turn 限制可以在 settings.jsonagents.overrides 中覆蓋。例如只給 codebase_investigator 增加輪數,不影響主 agent:

{
  "agents": {
    "overrides": {
      "codebase_investigator": {
        "runConfig": { "maxTurns": 50 }
      }
    }
  }
}

驗收方式

用一個適合該 agent 的小任務測試,例如讓 codebase_investigator 只讀分析一個模組。驗收重點不是“它回答了”,而是它是否真的隔離了上下文、是否只用了允許的工具、回傳結果是否能被主 agent 繼續執行。

主 agent 不能把 subagent 結果原樣當最終答案。它要檢查證據、整合衝突、補足驗證步驟,並說明哪些結論來自 subagent、哪些是自己再次確認的判斷。

安全驗收要看工具隔離是否真的生效。給只讀分析 agent 的工具集不應包含寫檔案、shell 釋出或高許可權 MCP;給 browser agent 的設定要限制域名、檔案上傳和敏感動作確認。否則 subagent 只是換了一個名字繼續擁有過寬許可權。

接下來去哪

官方來源

本頁目錄