Skip to main content

カスタムエージェント

カスタムエージェントを定義すると、用途ごとに役割を分けたサブエージェント構成を作れます。
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 を拾ってリトライやフォールバック戦略を用意する

参考

最終更新日 2026年10月19日