什麼是子代理?
子代理是預先配置的 AI 個性,Claude Code 可以將任務委派給它們。每個子代理:- 具有特定的目的和專業領域
- 使用與主要對話分離的自己的上下文視窗
- 可以配置允許使用的特定工具
- 包含指導其行為的自訂系統提示
主要優勢
上下文保護
每個子代理在自己的上下文中運作,防止主要對話的污染並保持其專注於高層次目標。
專業知識
子代理可以針對特定領域進行詳細指令的微調,在指定任務上獲得更高的成功率。
可重複使用性
一旦建立,子代理可以在不同專案中使用,並與您的團隊共享以實現一致的工作流程。
靈活權限
每個子代理可以有不同的工具存取層級,允許您將強大的工具限制在特定的子代理類型。
快速開始
建立您的第一個子代理:1
開啟子代理介面
執行以下命令:
2
選擇「建立新代理」
選擇是否建立專案層級或使用者層級的子代理
3
定義子代理
- 建議:先用 Claude 生成,然後自訂以使其成為您的
- 詳細描述您的子代理以及何時應該使用它
- 選擇您想要授予存取權限的工具(或留空以繼承所有工具)
- 介面顯示所有可用工具,使選擇變得容易
- 如果您正在使用 Claude 生成,您也可以按
e在自己的編輯器中編輯系統提示
4
儲存並使用
您的子代理現在可用了!Claude 會在適當時自動使用它,或者您可以明確調用它:
子代理配置
檔案位置
子代理儲存為帶有 YAML 前置資料的 Markdown 檔案,位於兩個可能的位置:| 類型 | 位置 | 範圍 | 優先級 |
|---|---|---|---|
| 專案子代理 | .claude/agents/ | 在當前專案中可用 | 最高 |
| 使用者子代理 | ~/.claude/agents/ | 在所有專案中可用 | 較低 |
外掛代理
外掛可以提供與 Claude Code 無縫整合的自訂子代理。外掛代理的工作方式與使用者定義的代理完全相同,並出現在/agents 介面中。
外掛代理位置:外掛在其 agents/ 目錄中包含代理(或外掛清單中指定的自訂路徑)。
使用外掛代理:
- 外掛代理與您的自訂代理一起出現在
/agents中 - 可以明確調用:“使用來自 security-plugin 的 code-reviewer 代理”
- 可以在適當時由 Claude 自動調用
- 可以透過
/agents介面進行管理(檢視、檢查)
基於 CLI 的配置
您也可以使用--agents CLI 標誌動態定義子代理,該標誌接受 JSON 物件:
- 快速測試子代理配置
- 不需要儲存的會話特定子代理
- 需要自訂子代理的自動化腳本
- 在文件或腳本中共享子代理定義
檔案格式
每個子代理都在具有此結構的 Markdown 檔案中定義:配置欄位
| 欄位 | 必需 | 描述 |
|---|---|---|
name | 是 | 使用小寫字母和連字符的唯一識別符 |
description | 是 | 子代理目的的自然語言描述 |
tools | 否 | 特定工具的逗號分隔列表。如果省略,從主執行緒繼承所有工具 |
model | 否 | 此子代理使用的模型。可以是模型別名(sonnet、opus、haiku)或 'inherit' 以使用主要對話的模型。如果省略,預設為配置的子代理模型 |
模型選擇
model 欄位允許您控制子代理使用哪個 AI 模型:
- 模型別名:使用可用別名之一:
sonnet、opus或haiku 'inherit':使用與主要對話相同的模型(對一致性有用)- 省略:如果未指定,使用為子代理配置的預設模型(
sonnet)
使用
'inherit' 在您希望子代理適應主要對話的模型選擇時特別有用,確保整個會話中的一致能力和回應風格。可用工具
子代理可以被授予存取 Claude Code 任何內部工具的權限。請參閱工具文件以獲取可用工具的完整列表。**建議:**使用
/agents 命令修改工具存取權限 - 它提供一個互動式介面,列出所有可用工具,包括任何連接的 MCP 伺服器工具,使選擇您需要的工具變得更容易。- 省略
tools欄位以從主執行緒繼承所有工具(預設),包括 MCP 工具 - 指定個別工具作為逗號分隔列表以進行更精細的控制(可以手動編輯或透過
/agents編輯)
tools 欄位時,子代理繼承主執行緒可用的所有 MCP 工具。
管理子代理
使用 /agents 命令(建議)
/agents 命令提供子代理管理的全面介面:
- 檢視所有可用的子代理(內建、使用者和專案)
- 使用引導設定建立新的子代理
- 編輯現有的自訂子代理,包括其工具存取權限
- 刪除自訂子代理
- 查看當重複存在時哪些子代理是活躍的
- 輕鬆管理工具權限,提供可用工具的完整列表
直接檔案管理
您也可以透過直接處理子代理檔案來管理它們:有效使用子代理
自動委派
Claude Code 基於以下因素主動委派任務:- 您請求中的任務描述
- 子代理配置中的
description欄位 - 當前上下文和可用工具
為了鼓勵更主動的子代理使用,在您的
description 欄位中包含諸如「主動使用」或「必須使用」等短語。明確調用
透過在命令中提及特定子代理來請求它:範例子代理
程式碼審查員
除錯器
資料科學家
最佳實務
- 從 Claude 生成的代理開始:我們強烈建議使用 Claude 生成您的初始子代理,然後對其進行迭代以使其個人化。這種方法為您提供最佳結果 - 一個堅實的基礎,您可以根據特定需求進行自訂。
- 設計專注的子代理:建立具有單一、明確責任的子代理,而不是試圖讓一個子代理做所有事情。這提高了效能並使子代理更可預測。
- 編寫詳細提示:在您的系統提示中包含具體指令、範例和約束。您提供的指導越多,子代理的表現就越好。
- 限制工具存取:只授予子代理目的所需的工具。這提高了安全性並幫助子代理專注於相關行動。
- 版本控制:將專案子代理檢入版本控制,這樣您的團隊就可以從中受益並協作改進它們。
進階用法
鏈接子代理
對於複雜的工作流程,您可以鏈接多個子代理:動態子代理選擇
Claude Code 根據上下文智慧地選擇子代理。讓您的description 欄位具體且面向行動以獲得最佳結果。
效能考量
- 上下文效率:代理有助於保護主要上下文,實現更長的整體會話
- 延遲:子代理每次被調用時都從乾淨的狀態開始,可能會增加延遲,因為它們需要收集執行工作所需的上下文。