Subagents(サブエージェント)

サブエージェントは、複雑なタスクを自律的に実行する特化型エージェント。メインエージェントとは別のコンテキストを持ち、ツールアクセスと意思決定機能を備えるため、マルチステップ操作に向く。


主な機能

  • 自律実行

    • 独自のコンテキストで独立して実行(自律性は設定に依存)
  • ライブ進捗追跡

    • 処理中のステータス更新をリアルタイムに監視
  • コアツールアクセス

    • ファイル読み取り・コマンド実行・ファイル書き込み・MCPツールの利用
  • 並列実行

    • 複数サブエージェントを同時に走らせて効率化
  • 結果の集約

    • 完了時に結果が自動でメインエージェントへ返却

デフォルトサブエージェント

Kiroには汎用タスク向けのデフォルトサブエージェントが含まれる。

  • タスクを割り当てた際、カスタム設定を指定しない限りデフォルトが使用される。

カスタムサブエージェント

独自のエージェント設定を指定して起動できる。特定ワークフローに特化したサブエージェントを作れる。

bash
# paymentモジュールのリファクタリングをbackend agentに依頼
> backendエージェントを使用して支払いモジュールをリファクタリングしてください
  • タスク割り当て時にエージェント名を指定すると、その設定を継承してサブエージェントとして動作する。

サブエージェントの動作フロー

  1. タスク割り当て

    • タスク説明を受けて、サブエージェント利用が適切かを判断
  2. 初期化

    • エージェント設定に基づき、独立コンテキスト+ツールアクセスで作成
  3. 自律実行

    • 独立して作業を進める
    • 一部ツール権限はユーザー承認を求めて一時停止する場合あり
  4. 進捗更新

    • ライブで作業状況が更新される
  5. 結果返却

    • 完了後、結果がメインエージェントへ返却

ツールの利用可否

サブエージェントは別ランタイムで実行される。
そのため、通常のチャットで使えるツールの一部は未実装。

利用可能

  • 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"]
    }
  }
}
  • orchestratorreviewer / tester / analyzer を毎回承認なしで起動できる。

3) 両設定の併用

json
{
  "toolsSettings": {
    "subagent": {
      "availableAgents": ["reviewer", "tester", "analyzer", "docs-*"],
      "trustedAgents": ["reviewer", "tester"]
    }
  }
}
  • 起動可能:4種類
  • 承認なし:reviewer / tester のみ

ベストプラクティス

  • 複雑なタスクに使用

    • 分離メリットが出るマルチステップ操作向き
  • 明確な指示

    • 具体的なタスク説明ほど結果が良くなる
  • 進捗を監視

    • 長時間タスクは定期的に状況確認
  • 結果を検証

    • 推奨に従う前に出力をチェック

トラブルシューティング

問題解決策
サブエージェントが起動しないタスク説明が明確で実行可能か確認
必要なツールにアクセスできないサブエージェントランタイムで利用可能か確認(ツール表参照)
結果が不完全指示をより具体化/タスクを小さく分割