カスタムエージェント
カスタムエージェントを定義すると、用途ごとに役割を分けたサブエージェント構成を作れます。Laravel版では
SessionConfig の customAgents を使って設定します。
複数のサブエージェントを並列に走らせるオーケストレーションについては Fleet Mode を参照してください。
基本的な使い方
設定項目
description は具体的に書くほど、自動選択の精度が上がります。
エージェント単位の宣言型フック
カスタムエージェントのhooks には、イベント名をキー、宣言型アクションの配列を値として指定できます。
アクションは該当するエージェントの定義とともに CLI へ渡され、そのエージェントでのみ有効になります。
特定のエージェントだけツール実行を制限したい場合などに使います。
customAgents[*].hooks は CLI へ渡す宣言型アクションです。
アクションの内容は Copilot CLI が受け付ける形式で指定してください。
SessionConfigのトップレベルhooksは PHP のコールバックを登録する別の機能で、セッション全体に適用されます。詳しくは セッションフック を参照してください。.github/hooks/のファイルベースフック読み込みはenableFileHooksで個別に制御します。
セッション開始時に特定エージェントを選ぶ
agent を指定すると、最初のターンから特定のカスタムエージェントを有効化できます。
自動選択を無効にする(infer: false)
危険度の高い操作を行うエージェントは、自動選択を無効にして明示的に使う運用が安全です。
デフォルトエージェントからツールを隠す
defaultAgent.excludedTools を使うと、メインエージェントだけから特定ツールを隠せます。そのツールを使えるカスタムエージェントへ委譲しやすくなります。
サブエージェントイベントを監視する
サブエージェント実行中はsubagent.* イベントが流れます。onEvent または $session->on() で監視できます。
ベストプラクティス
researcher(読み取り中心)とeditor(変更担当)を分けるtoolsは必要最小限にし、権限を絞るdescriptionを具体的に書いて自動委譲精度を上げるsubagent.failedを拾ってリトライやフォールバック戦略を用意する