カスタムエージェント
カスタムエージェントを定義すると、用途ごとに役割を分けたサブエージェント構成を作れます。Laravel版では
SessionConfig の customAgents を使って設定します。
複数のサブエージェントを並列に走らせるオーケストレーションについては Fleet Mode を参照してください。
基本的な使い方
設定項目
| プロパティ | 型 | 必須 | 説明 |
|---|---|---|---|
name | string | ✅ | エージェントの識別子 |
displayName | string | 表示名 | |
description | string | ランタイムが委譲先を選ぶ際の説明 | |
tools | ?array | 使用可能ツール。null / 省略時はすべて利用可能 | |
prompt | string | ✅ | エージェント専用のシステムプロンプト |
mcpServers | array | このエージェント専用のMCPサーバー設定 | |
infer | bool | 自動選択対象にするか(デフォルト: true) | |
skills | array | 起動時に読み込むスキル名のリスト |
description は具体的に書くほど、自動選択の精度が上がります。
セッション開始時に特定エージェントを選ぶ
agent を指定すると、最初のターンから特定のカスタムエージェントを有効化できます。
自動選択を無効にする(infer: false)
危険度の高い操作を行うエージェントは、自動選択を無効にして明示的に使う運用が安全です。
デフォルトエージェントからツールを隠す
defaultAgent.excludedTools を使うと、メインエージェントだけから特定ツールを隠せます。そのツールを使えるカスタムエージェントへ委譲しやすくなります。
サブエージェントイベントを監視する
サブエージェント実行中はsubagent.* イベントが流れます。onEvent または $session->on() で監視できます。
ベストプラクティス
researcher(読み取り中心)とeditor(変更担当)を分けるtoolsは必要最小限にし、権限を絞るdescriptionを具体的に書いて自動委譲精度を上げるsubagent.failedを拾ってリトライやフォールバック戦略を用意する