自訂 Agent
定義自訂 agent 後,即可依用途劃分角色的 sub-agent 架構。 Laravel 版可透過SessionConfig 的 customAgents 進行設定。
關於將多個 sub-agent 並行執行的協作,請參考 Fleet Mode。
基本用法
設定項目
description 描述越具體,自動選擇的精準度越高。
Agent 層級的宣告式 hook
自訂 agent 的hooks 可以事件名稱為鍵、宣告式動作陣列為值進行指定。
這些動作會隨對應 agent 的定義一併傳給 CLI,且僅在該 agent 中生效。
適用於只想限制特定 agent 執行工具等情境。
customAgents[*].hooks 是傳給 CLI 的宣告式動作。
動作內容請以 Copilot CLI 可接受的格式指定。
SessionConfig頂層的hooks是註冊 PHP 回呼的另一項功能,會套用於整個 session。詳情請參閱 Session Hook。.github/hooks/的檔案型 hook 載入則由enableFileHooks個別控制。
Session 開始時選擇特定 agent
指定agent 後,可從第一個 turn 就啟用特定的自訂 agent。
停用自動選擇(infer: false)
執行風險較高操作的 agent,將自動選擇停用並明確使用會較為安全。
對預設 agent 隱藏工具
使用defaultAgent.excludedTools 可只針對主 agent 隱藏特定工具。
如此更容易委派給能使用該工具的自訂 agent。
監控 sub-agent 事件
Sub-agent 執行過程中會流出subagent.* 事件。
可透過 onEvent 或 $session->on() 監控。
最佳實踐
- 將
researcher(以讀取為主)與editor(負責變更)分開 tools保持最小必要範圍,收斂權限description寫得越具體,自動委派精準度越高- 捕捉
subagent.failed以準備重試或降級方案