Subagents(サブエージェント)
サブエージェントは、複雑なタスクを自律的に実行する特化型エージェント。メインエージェントとは別のコンテキストを持ち、ツールアクセスと意思決定機能を備えるため、マルチステップ操作に向く。
主な機能
-
自律実行
- 独自のコンテキストで独立して実行(自律性は設定に依存)
-
ライブ進捗追跡
- 処理中のステータス更新をリアルタイムに監視
-
コアツールアクセス
- ファイル読み取り・コマンド実行・ファイル書き込み・MCPツールの利用
-
並列実行
- 複数サブエージェントを同時に走らせて効率化
-
結果の集約
- 完了時に結果が自動でメインエージェントへ返却
デフォルトサブエージェント
Kiroには汎用タスク向けのデフォルトサブエージェントが含まれる。
- タスクを割り当てた際、カスタム設定を指定しない限りデフォルトが使用される。
カスタムサブエージェント
独自のエージェント設定を指定して起動できる。特定ワークフローに特化したサブエージェントを作れる。
例
bash
# paymentモジュールのリファクタリングをbackend agentに依頼
> backendエージェントを使用して支払いモジュールをリファクタリングしてください- タスク割り当て時にエージェント名を指定すると、その設定を継承してサブエージェントとして動作する。
サブエージェントの動作フロー
-
タスク割り当て
- タスク説明を受けて、サブエージェント利用が適切かを判断
-
初期化
- エージェント設定に基づき、独立コンテキスト+ツールアクセスで作成
-
自律実行
- 独立して作業を進める
- 一部ツール権限はユーザー承認を求めて一時停止する場合あり
-
進捗更新
- ライブで作業状況が更新される
-
結果返却
- 完了後、結果がメインエージェントへ返却
ツールの利用可否
サブエージェントは別ランタイムで実行される。
そのため、通常のチャットで使えるツールの一部は未実装。
利用可能
read(ファイル/ディレクトリ読み取り)write(ファイル作成/編集)shell(bashコマンド実行)- MCPツール
利用不可
web_search(Webリサーチ)web_fetch(URL取得)introspect(CLI情報)thinking(推論ツール)todo_list(タスク追跡)use_aws(AWSコマンド)grep(ファイル内容検索)glob(パターン検索)
サブエージェントアクセスの設定
1) 起動可能エージェントの制限(availableAgents)
availableAgents で、サブエージェントとして起動できるエージェントを制限できる。
Globパターン対応。
json
{
"toolsSettings": {
"subagent": {
"availableAgents": ["reviewer", "tester", "docs-*"]
}
}
}- この例では
reviewer/tester/docs-*に一致するエージェントのみが起動可能。
2) 特定エージェントの信頼設定(trustedAgents)
trustedAgents を使うと、特定エージェントを権限確認なしで起動できる。
Globパターン対応。
json
{
"name": "orchestrator",
"description": "Agent that coordinates multiple specialized subagents",
"tools": ["fs_read", "subagent"],
"toolsSettings": {
"subagent": {
"trustedAgents": ["reviewer", "tester", "analyzer"]
}
}
}orchestratorはreviewer/tester/analyzerを毎回承認なしで起動できる。
3) 両設定の併用
json
{
"toolsSettings": {
"subagent": {
"availableAgents": ["reviewer", "tester", "analyzer", "docs-*"],
"trustedAgents": ["reviewer", "tester"]
}
}
}- 起動可能:4種類
- 承認なし:
reviewer/testerのみ
ベストプラクティス
-
複雑なタスクに使用
- 分離メリットが出るマルチステップ操作向き
-
明確な指示
- 具体的なタスク説明ほど結果が良くなる
-
進捗を監視
- 長時間タスクは定期的に状況確認
-
結果を検証
- 推奨に従う前に出力をチェック
トラブルシューティング
| 問題 | 解決策 |
|---|---|
| サブエージェントが起動しない | タスク説明が明確で実行可能か確認 |
| 必要なツールにアクセスできない | サブエージェントランタイムで利用可能か確認(ツール表参照) |
| 結果が不完全 | 指示をより具体化/タスクを小さく分割 |