# サブエージェント管理 (/ja/docs/verdent-for-vscode/agents-rules/subagent-management)

> Verdent でのサブエージェントの理解と管理



サブエージェントは、独自のカスタムシステムプロンプト、独立したコンテキストウィンドウ、隔離された実行環境で動作する特化型 AI エージェントです。メインエージェントから委任された特定のタスクを処理し、メインの会話コンテキストを汚染しません。

**主な特徴:**

* **隔離されたコンテキストウィンドウ:** 各サブエージェントは独自の独立したコンテキストウィンドウを保持します。サブエージェントが返す最終結果のみがメインエージェントのコンテキストを消費し、中間処理は消費しません。
* **カスタムシステムプロンプト:** すべてのサブエージェントは、その動作、性格、タスク解釈アプローチを定義する専用のシステムプロンプトを持ちます。
* **自動タスク委任:** メインエージェントは、適切なタスクタイプを検出すると、自動ツール選択と同様に、サブエージェントを自動的に呼び出します。
* **手動呼び出し:** @メンション（`@Verifier`、`@Explorer`、`@Code-reviewer`）を使ってサブエージェントを明示的に参照できます。

**2 つのカテゴリ:**

* **デフォルトサブエージェント:** 組み込み（Verifier、Explorer、Code-reviewer）— すぐに利用でき、事前設定済み
* **カスタムサブエージェント:** ユーザーが作成し、`~/.verdent/subagents/` に保存される — プロジェクト固有のニーズに合わせて調整

***

## デフォルトサブエージェントの理解 [#デフォルトサブエージェントの理解]

Verdent for VS Code には、事前設定済みですぐに利用でき、セットアップや設定が不要な 3 つの組み込みデフォルトサブエージェントが含まれています。

<Tabs>
  <Tab title="@Verifier">
    **専門領域:** 迅速なコードチェックと検証

    **機能:**

    * コードロジックを検証
    * 構文の正確性をチェック
    * 要件に対する実装を確認

    **使い方:**
    コーディングタスク中に参照します:

    ```
    @Verifier check this authentication logic
    ```

    **最適な用途:** 完全なコードレビューのオーバーヘッドなしで迅速に検証
  </Tab>

  <Tab title="@Explorer">
    **専門領域:** 高速なコードベースの探索とナビゲーション

    **機能:**

    * パターンや名前でファイルを検索
    * キーワードや関数でコードを検索
    * アーキテクチャに関する質問に回答
    * 機能がどこに実装されているかを特定

    **使い方:**
    コードベースに関する質問で自動的に呼び出されるか、明示的に要求されたときに使用します:

    ```
    @Explorer find all API endpoints
    ```

    **最適な用途:**

    * 馴染みのないコードベースの理解
    * 特定の実装箇所の特定
    * アーキテクチャ分析

    **パフォーマンス:** トークン効率が高く、複雑な検索では複数のインスタンスを並列実行できます
  </Tab>

  <Tab title="@Code-reviewer">
    **専門領域:** コード品質の評価

    **機能:**

    * 新規および変更されたコードのセキュリティ脆弱性を事前にスキャン
    * 保守性の問題を特定
    * パフォーマンスの問題を検出

    **使い方:**
    品質チェックのために参照します:

    ```
    @Code-reviewer review this authentication flow
    ```

    **最適な用途:**

    * コミット前のレビュー
    * 統合前の問題の特定
    * コード品質基準の確保
  </Tab>
</Tabs>

***

### 自動呼び出しと手動呼び出し [#自動呼び出しと手動呼び出し]

**自動選択のトリガー:**

メインエージェントは、タスクパターンの認識に基づいてサブエージェントを自動的に選択します:

**Explorer サブエージェント:**

* コードベース構造に関する質問（「アーキテクチャはどうなっていますか?」「X はどこに実装されていますか?」）
* ファイル検索のリクエスト（「〜するすべてのファイルを検索して」「〜に関連するコンポーネントを表示して」）
* コードナビゲーションのクエリ（「認証はどう動作しますか?」「この関数を呼び出しているのは何ですか?」）

**Code-reviewer サブエージェント:**

* セキュリティレビューのリクエスト（「セキュリティ脆弱性をレビューして」「SQL インジェクションのリスクをチェックして」）
* コード品質評価のプロンプト（「コード品質を分析して」「保守性の問題を特定して」）
* コミット前レビューのシナリオ（コード変更が提示されたときに暗黙的に）

**Verifier サブエージェント:**

* 検証のリクエスト（「このロジックを検証して」「この実装が正しいかチェックして」）
* 構文と正確性のチェック（「このコードは動きますか?」「認証フローを検証して」）

**手動指定:**

@メンションを使って自動ルーティングを上書きできます:

```
@Explorer find all authentication-related files
@Code-reviewer review the security of login flow
@Verifier check validation logic in middleware
```

**Add Subagent ボタン:**
Input Box の **Add Subagent** ボタンを選択すると、次のことができます:

* 利用可能なサブエージェント（デフォルトとカスタム）から選択
* 選択したサブエージェントにタスクを明示的に委任
* 自動ルーティングの判断を上書き

**手動指定のメリット:**

* **正確性:** 特定のサブエージェントが確実にタスクを処理
* **上書き:** 複数が該当しうる場合に特定のサブエージェントを選択
* **テスト:** カスタムサブエージェントの動作を明示的に検証
* **一貫性:** 同じサブエージェントでタスクを繰り返し、一貫した結果を取得

<Info>
  カスタムサブエージェントは、サブエージェントのシステムプロンプト呼び出しポリシーで定義された「いつ使うか」のガイドラインに基づいて自動的に呼び出される場合があります。トリガーパターン設定の詳細は現在開発中です。
</Info>

***

## カスタムサブエージェントの作成 [#カスタムサブエージェントの作成]

カスタムサブエージェントを使うと、プロジェクト固有のニーズ、ドメインの専門知識、チームのワークフローに合わせた特化型エージェントを作成できます。

### 作成方法 [#作成方法]

<Tabs>
  <Tab title="設定メニュー">
    **初心者におすすめ**

    1. **Settings** → **Subagents** を選択
    2. 「Create new subagent」を選択
    3. サブエージェントの名前、説明、システムプロンプトを定義
    4. 呼び出しポリシーと使用ガイドラインを設定
    5. `~/.verdent/subagents/` ディレクトリに保存

    この方法では、検証や役立つプロンプト付きのガイド付きインターフェースでサブエージェントを作成できます。
  </Tab>

  <Tab title="ファイルを直接作成">
    **上級ユーザーにおすすめ**

    1. `~/.verdent/subagents/` に移動
    2. Markdown ファイル（例: `security-reviewer.md`）を作成
    3. `name` と `description` を含む YAML フロントマターを追加
    4. 動作を定義するシステムプロンプトを記述
    5. 呼び出しポリシーと「いつ使うか」のガイドラインを指定

    この方法はより細かい制御が可能で、ファイル構造に慣れているユーザーにとっては高速です。

    <Tip>
      カスタムサブエージェントを \~/.verdent/subagents/ に保存すると、プロジェクト間で共有できます。すべてのワークスペースで利用可能になります。
    </Tip>
  </Tab>
</Tabs>

***

### ファイル構造 [#ファイル構造]

カスタムサブエージェントファイルは、YAML フロントマター付きの Markdown 形式を使用します:

```markdown
---
name: subagent-name
description: Brief description of specialization
---
# System Prompt

[Behavior definition, personality, interpretation style]

Invocation policy (strict): Only run if explicitly requested.

When to use:
- Specific scenario 1
- Specific scenario 2

When NOT to use:
- Avoid scenario 1
- Avoid scenario 2
```

**YAML フロントマター（必須）:**

* `name`: @メンションで使用するサブエージェントの識別子
* `description`: サブエージェントの目的を表す 1 行の説明

**システムプロンプトセクション:**
サブエージェントの動作を定義する Markdown コンテンツ:

* 性格とトーン
* タスクの解釈アプローチ
* 出力形式の好み
* 意思決定の原則

**呼び出しポリシー（必須）:**

```
Invocation policy (strict|flexible): Policy description
```

* **strict:** ユーザーから明示的に要求された場合のみ呼び出し
* **flexible:** タスクパターンに基づく自動呼び出しを許可

**使用ガイドライン:**

```
When to use the [name] agent:
- Bullet list of scenarios for invocation

When NOT to use:
- Bullet list of scenarios to avoid
```

***

### カスタムサブエージェントの例 [#カスタムサブエージェントの例]

<Tabs>
  <Tab title="API ドキュメント">
    ```markdown
    ---
    name: api-documenter
    description: Generates comprehensive API documentation from code
    ---
    # System Prompt

    You are an API documentation specialist.

    Documentation approach:
    - Extract endpoints, parameters, and responses from code
    - Generate OpenAPI/Swagger specifications
    - Include usage examples and error codes
    - Document authentication requirements

    Output format:
    - Markdown tables for endpoints
    - Code examples in multiple languages
    - Authentication flow diagrams

    Invocation policy (strict): Only run when explicitly requested.

    When to use:
    - User requests API documentation generation
    - Need to document REST/GraphQL endpoints
    - Creating developer guides

    When NOT to use:
    - Inline code comments
    - User-facing documentation
    ```

    **ユースケース:** ルートハンドラー、コントローラー、スキーマ定義を分析して、包括的な API ドキュメントを自動生成します。
  </Tab>

  <Tab title="データベースマイグレーション">
    ```markdown
    ---
    name: migration-reviewer
    description: Reviews database migrations for safety and correctness
    ---
    # System Prompt

    You are a database migration safety specialist.

    Review checklist:
    - Check for destructive operations (DROP, DELETE without WHERE)
    - Verify reversible migrations (up/down compatibility)
    - Identify potential data loss scenarios
    - Validate index creation strategies
    - Check for blocking operations on large tables

    Risk assessment:
    - Categorize migrations: low/medium/high risk
    - Recommend staging environment testing for high-risk changes
    - Suggest rollback procedures

    Invocation policy (strict): Only run when explicitly requested.

    When to use:
    - User creates or modifies migration files
    - Pre-deployment migration review
    - Investigating migration failures

    When NOT to use:
    - Schema design from scratch
    - Query optimization
    ```

    **ユースケース:** デプロイ前にリスクのあるデータベース操作を特定し、本番環境のインシデントを防ぎます。
  </Tab>

  <Tab title="アクセシビリティ">
    ```markdown
    ---
    name: a11y-auditor
    description: Audits frontend code for accessibility compliance
    ---
    # System Prompt

    You are an accessibility compliance specialist (WCAG 2.1 Level AA).

    Audit criteria:
    - Semantic HTML structure
    - ARIA labels and roles
    - Keyboard navigation support
    - Color contrast ratios
    - Screen reader compatibility
    - Focus management

    Report format:
    - Issues categorized by severity (critical/major/minor)
    - WCAG guideline references
    - Code examples showing fixes
    - Testing recommendations

    Invocation policy (flexible): May auto-invoke for UI component reviews.

    When to use:
    - User creates/modifies UI components
    - Pre-deployment accessibility checks
    - Compliance audits

    When NOT to use:
    - Backend API code
    - Build configuration files
    ```

    **ユースケース:** デプロイ前に Web アプリケーションがアクセシビリティ基準を満たしていることを確認します。
  </Tab>
</Tabs>

***

### カスタムサブエージェントの一般的なユースケース [#カスタムサブエージェントの一般的なユースケース]

<Tabs>
  <Tab title="ドメインの専門知識">
    **ドメイン固有の専門知識**

    * **金融計算:** 税務コンプライアンスや金融規制に特化したサブエージェント
    * **ヘルスケアの HIPAA コンプライアンス:** 患者データの取り扱い基準に対するコードレビュー
    * **暗号技術:** ベストプラクティスに照らしてセキュリティ実装を分析

    専門知識の要件や規制上の制約がある業界に最適です。
  </Tab>

  <Tab title="チームワークフロー">
    **チーム固有のワークフロー**

    * **コードスタイル徹底:** リンタールールを超えたチーム固有のコーディング標準をチェック
    * **ドキュメントの一貫性:** ドキュメントがチームのテンプレートとトーンに従うことを確保
    * **依存関係監査:** サードパーティパッケージの使用を承認済みリストに照らして監視

    チームの規約を徹底し、共同プロジェクト全体で一貫性を維持します。
  </Tab>

  <Tab title="技術スタック">
    **技術スタックのスペシャリスト**

    * **React パフォーマンス最適化:** 不要な再レンダリングやメモ化の機会を特定
    * **SQL クエリ最適化:** データベースクエリのパフォーマンスを分析・改善
    * **Docker 設定レビュー:** コンテナ化のベストプラクティスを検証

    特定のフレームワーク、言語、インフラ技術における深い専門知識。
  </Tab>

  <Tab title="品質保証">
    **品質保証**

    * **テストカバレッジ分析:** テストされていないコードパスを特定し、テストシナリオを提案
    * **エラーハンドリングレビュー:** 包括的な例外処理を確保
    * **ロギング標準徹底:** デバッグと監視のためのロギング手法を検証

    コードの信頼性と保守性の基準を維持するための自動品質チェック。
  </Tab>

  <Tab title="コンプライアンス">
    **コンプライアンスとセキュリティ**

    * **GDPR コンプライアンスチェック:** プライバシー要件に対するデータ取り扱いをレビュー
    * **セキュリティ脆弱性スキャン:** フレームワーク固有の問題に特化した検出
    * **ライセンスコンプライアンス監査:** 依存関係のライセンス互換性をチェック

    デプロイ前に法的、セキュリティ、ライセンスの要件への準拠を確保します。
  </Tab>

  <Tab title="プロジェクト固有">
    **プロジェクト固有のニーズ**

    * **レガシーコードのモダナイズ:** 古いパターンを特定し、最新の代替案を提案
    * **マイグレーション支援:** フレームワークや言語バージョンのアップグレードを案内
    * **パフォーマンスバジェット徹底:** バンドルサイズやロード時間をしきい値に照らして監視

    独自のプロジェクト課題や技術的負債管理に合わせたカスタムソリューション。
  </Tab>
</Tabs>

***

## サブエージェントの動作設定（AGENTS.md パターン） [#サブエージェントの動作設定agentsmd-パターン]

AGENTS.md は主にプロジェクトルールファイルとして機能しますが（[ルールシステム](/docs/verdent-for-vscode/agents-rules/rule-systems)を参照）、プロジェクト固有のサブエージェントの動作を定義することもできます。

### システムプロンプト設計の原則 [#システムプロンプト設計の原則]

**具体的かつ指示的に:**
一般的なガイダンスではなく、正確な動作の期待値を定義します。

<Tip>
  システムプロンプトは具体的かつ指示的に記述しましょう。「Try to optimize when possible」よりも「Profile before optimizing」のほうが優れています。
</Tip>

**良い例:**

```markdown
Analysis approach:
- Profile before optimizing
- Focus on algorithmic improvements
- Provide before/after benchmarks
```

**避けるべき例:**

```markdown
Try to optimize code when possible
```

**性格とトーンを確立する:**
特定の目的に最適化された明確な「ペルソナ」を作成します:

```markdown
You are a performance optimization specialist.
```

**意思決定の原則を定義する:**
サブエージェントがトレードオフにどう対処すべきかを導きます:

```markdown
When suggesting optimizations:
1. Measure first, optimize second
2. Prioritize readability over micro-optimizations
3. Only suggest changes with >10% performance improvement
```

**出力形式を指定する:**
結果の提示方法を制御します:

```markdown
Output format:
- Markdown tables for endpoints
- Code examples in multiple languages
- Authentication flow diagrams
```

***

### 呼び出しポリシーの設定 [#呼び出しポリシーの設定]

**Strict ポリシー:**

```markdown
Invocation policy (strict): Only run when explicitly requested.
```

次の場合に使用します:

* サブエージェントが機密性の高い操作（セキュリティレビュー、データベースマイグレーション）を扱う
* ユーザーが呼び出すタイミングを意識的に決定すべき
* 自動呼び出しが妨げになりうる

**Flexible ポリシー:**

```markdown
Invocation policy (flexible): May auto-invoke based on task patterns.
```

次の場合に使用します:

* サブエージェントが妨げにならず有用なコンテキストを提供する
* 自動呼び出しがワークフローの効率を高める
* タスクパターンが明確に識別できる

**使用ガイドラインのベストプラクティス:**

**「いつ使うか」セクション:**

* トリガーとなるシナリオを具体的に記述
* サブエージェントを呼び出すべきプロンプトの例を含める
* サブエージェントの専門領域に合致するタスクの特徴を記述

**「いつ使わないか」セクション:**

* 不適切な呼び出しを防ぐために除外条件を明示的にリスト化
* 関連するサブエージェントとの境界を明確化
* スコープの肥大化を防止

***

## タスクルーティングとディスパッチ [#タスクルーティングとディスパッチ]

Verdent のマルチサブエージェントシステムにより、自動ルーティングと特化型エージェント間の連携を通じて、タスクの並列実行が可能になります。

### アーキテクチャの構成要素 [#アーキテクチャの構成要素]

**メインエージェント（オーケストレーター）:**
プライマリエージェントがユーザーのリクエストを分析し、複雑なタスクを分解し、特化した作業を適切なサブエージェントに委任します。会話コンテキストを維持し、サブエージェントの結果を調整します。

**サブエージェントプール:**
自動または手動で呼び出せる、利用可能なサブエージェント（デフォルトとカスタムの両方）の集合です。それぞれが独立したコンテキストで個別に動作します。

**自動タスクルーティング:**
メインエージェントがサブエージェントの専門領域に合致するタスクパターンを検出すると、作業を自動的にディスパッチします:

* コードベース探索の質問 → Explorer サブエージェント
* セキュリティレビューのリクエスト → Code-reviewer サブエージェント
* 検証チェック → Verifier サブエージェント

**並列実行:**
複雑な操作では、複数のサブエージェントを同時に実行できます。例: Explorer サブエージェントがコードベースを検索する一方で、Code-reviewer が同時にセキュリティを分析し、より高速に結果を提供します。

<Note>
  サブエージェントの並列実行は複雑なタスクを高速化します。Explorer が検索する一方で、Code-reviewer が同時に分析できます。
</Note>

**結果の統合:**
サブエージェントの出力はメインエージェントに返され、メインエージェントが結果を統合し、統一されたレスポンスをユーザーに提示します。

<Info>
  サブエージェントの実行スケジューリング、優先度、最大同時実行数、エラーハンドリング、リソース割り当てに関する詳細情報は現在開発中です。具体的なアーキテクチャに関する質問はサポートにお問い合わせください。
</Info>

***

## サブエージェントの監視 [#サブエージェントの監視]

Verdent がサブエージェントの操作と結果を表示する Chat View を通じて、サブエージェントの使用状況とパフォーマンスを追跡できます。

### 監視方法 [#監視方法]

**Chat View のインジケーター:**

* サブエージェントの呼び出しが会話履歴に表示される
* サブエージェントの実行中は進捗インジケーターが表示される
* どのサブエージェントが出力を提供したかが結果に明示される

**サブエージェント出力セクション:**
専用の表示領域:

* サブエージェントのタスク実行結果
* 並列タスクの進捗インジケーター
* タスク完了時の統合サマリー

**レスポンスの帰属:**
Verdent はレスポンス内で発見事項を特定のサブエージェントに帰属させ、どのエージェントがどの分析や検索を実行したかを明確にします。

### 可視性と透明性 [#可視性と透明性]

**操作の透明性:**
Verdent は次を表示します:

* どのサブエージェントが呼び出されたか
* 呼び出しが自動か手動か
* タスク委任の理由
* サブエージェントの実行ステータス

**手動指定の確認:**
@メンションを使用すると、Verdent は指定したサブエージェントがタスクを処理していることを確認し、ルーティングの設定が尊重されることを保証します。

<Info>
  詳細な実行ログ、パフォーマンスメトリクス（実行時間、トークン使用量）、過去の呼び出し履歴の追跡、アクティビティ可視性の設定、使用状況分析ダッシュボードなどの拡張監視機能は現在開発中です。
</Info>

***

## 関連項目 [#関連項目]

<CardGroup cols="2">
  <Card title="ルールシステムと動作ガイダンス" icon="sliders" href="/docs/verdent-for-vscode/agents-rules/rule-systems">
    ユーザールール、プロジェクトルール、プランルールを通じて Verdent の動作を設定
  </Card>

  <Card title="ツールリファレンス" icon="wrench" href="/docs/verdent-for-vscode/advanced-features/tool-reference">
    利用可能なツールと機能の完全なリファレンス
  </Card>
</CardGroup>
