# 高度な機能 (/ja/docs/verdent-for-vscode/advanced-features/overview)

> 複雑な機能とマルチエージェント連携



### このセクションで学べること [#このセクションで学べること]

このセクションでは、サブエージェント管理、ルールシステム、カスタムツール連携、高度な拡張オプションなど、Verdentのパワーユーザー向け機能を解説します。

***

## 複雑な機能の解説 [#複雑な機能の解説]

Verdent for VS Codeは、基本的なコード生成を超えた高度な開発ワークフローを実現する高機能を提供します。

### サブエージェントシステム [#サブエージェントシステム]

**専門特化型 AI エージェント:**
Verdentには、独立したコンテキストウィンドウとカスタムシステムプロンプトで動作する組み込みサブエージェント(`@Verifier`、`@Explorer`、`@Code-reviewer`)が含まれています。各サブエージェントは、コードの探索、検証、品質レビューといった特定のタスクに特化しています。

**自動委任と手動委任:**
メインエージェントはリクエストのパターンに基づいて適切なサブエージェントへタスクを自動的にルーティングします。また、ユーザーが @ メンションを使ってサブエージェントを手動で指定することもできます。この委任により、メインコンテキストを保ったまま専門的な処理を効率よく実行できます。

**カスタムサブエージェント:**
`~/.verdent/subagents/`に YAML フロントマター付きの Markdown ファイルを定義することで、プロジェクト固有のサブエージェントを作成できます。カスタムサブエージェントは、ドメイン専門知識、チームのワークフロー、技術固有の最適化に特化させることができます。

[サブエージェント管理について詳しく見る](/docs/verdent-for-vscode/agents-rules/subagent-management)

### ルールシステム [#ルールシステム]

**振る舞いのカスタマイズ:**
ルールファイルは、プレーンな Markdown ドキュメントを通じてVerdentの振る舞い、出力フォーマット、意思決定を制御します。3 種類のルールがそれぞれ異なる範囲を制御します。

* **VERDENT.md** - すべてのプロジェクトに適用される個人のグローバル設定
* **AGENTS.md** - プロジェクト固有のチーム基準(バージョン管理対象)
* **plan\_rules.md** - Plan Modeの出力フォーマットのカスタマイズ

**ルールの優先順位:**
競合が発生した場合、プロジェクトルール(`AGENTS.md`)がユーザールールより優先され、チームの一貫性を確保しつつ、個人プロジェクトでは個人の設定を保てます。

[ルールシステムについて詳しく見る](/docs/verdent-for-vscode/agents-rules/rule-systems)

### ツールシステムとMCP [#ツールシステムとmcp]

**組み込みツール:**
Verdentは、ファイル操作、検索(`glob`/`grep`)、コマンド実行(`bash`)、ウェブアクセス、エージェント委任のための包括的なツールを提供します。これらのツールにより、すべてのコード操作、ナビゲーション、外部連携が可能になります。

**Model Context Protocol (MCP):**
MCPは、外部ツール、データソース、サービスに接続することでVerdentの機能を拡張します。Settings → MCP Servers からMCPサーバーを設定し、プロジェクト固有のAPIやカスタム機能を連携できます。

[ツールリファレンスを見る](/docs/verdent-for-vscode/advanced-features/tool-reference)
[MCP連携について詳しく見る](/docs/verdent-for-vscode/advanced-features/mcp)

***

## マルチエージェント連携 [#マルチエージェント連携]

Verdentのマルチサブエージェントアーキテクチャは、自動ルーティングと連携によって並列タスク実行を実現します。

**メインエージェント(オーケストレーター):**
主となるエージェントは、リクエストを分析し、複雑なタスクを分解して専門的な作業をサブエージェントへ委任しながら、会話のコンテキストを保ち、結果を統合します。

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

**コンテキストの分離:**
各サブエージェントは独自のコンテキストウィンドウで動作します。最終結果のみがメインエージェントのコンテキストを消費するため、多段階の処理中にコンテキストが枯渇するのを防ぎます。

**タスクのルーティング:**
パターンに基づいてタスクを自動検出してルーティングします。

* コードベースに関する質問 → `@Explorer`サブエージェント
* セキュリティレビュー → `@Code-reviewer`サブエージェント
* 検証チェック → `@Verifier`サブエージェント

***

## カスタムワークフローの作成 [#カスタムワークフローの作成]

上級ユーザーは、チームのプロセスやプロジェクトの要件に合わせてVerdentの振る舞いをカスタマイズできます。

**カスタムサブエージェントのワークフロー:**
ドメイン固有のニーズに合わせた専門サブエージェントを作成できます。

* **APIドキュメント生成** - コードからエンドポイントとパラメータを抽出
* **データベースマイグレーションのレビュー** - スキーマ変更の安全性を検証
* **アクセシビリティ監査** - フロントエンドコードの WCAG 準拠をチェック

**ルールベースのカスタマイズ:**
ルールファイルを通じて、コーディング基準、テスト要件、出力の好みを定義できます。

* チームの規約(インデント、命名、パターン)を強制
* ドキュメントのスタイルやコメントの詳細レベルを指定
* Plan Modeの出力構造と粒度を制御

**MCPによる拡張性:**
外部ツールやサービスを連携できます。

* データベースクエリツール
* クラウドサービスのAPI(AWS、Azure、GCP)
* プロジェクト管理連携(Jira、Linear)
* CI/CD パイプライン接続

[カスタムサブエージェントについて詳しく見る](/docs/verdent-for-vscode/agents-rules/subagent-management)
[拡張オプションを見る](/docs/verdent-for-vscode/advanced-features/extensibility)

***

## 高度なコンテキスト管理テクニック [#高度なコンテキスト管理テクニック]

効率的なコンテキスト管理は、複雑なプロジェクトや長時間のコーディングセッションで極めて重要です。

**戦略的なファイル読み取り:**
大きなファイルでは行範囲を指定して`file_read`を使い、コンテキストの過負荷を防ぎます。ファイル全体ではなく、タスクに必要な部分だけを読み取ります。

**調査のためのサブエージェント委任:**
探索的なタスクを`@Explorer`サブエージェントに委任し、メインの会話コンテキストをクリーンに保ちます。サブエージェントの調査結果はメインコンテキストをほとんど消費しません。

**読み取り前の検索:**
`grep_file`を使って、全文を読み取る前に関連ファイルを特定します。`glob`パターンと`grep_content`を組み合わせて精密に検索し、不要なファイル操作を最小化します。

**コンテキストを考慮したツール選択:**

* **大規模コードベース:** アーキテクチャの理解には`@Explorer`サブエージェント
* **独立した検証:** 簡易チェックには`@Verifier`サブエージェント
* **セキュリティレビュー:** 品質評価には`@Code-reviewer`サブエージェント

**コンテキスト使用状況のモニタリング:**
どのサブエージェントが実行中かを Chat View のインジケーターで追跡します。サブエージェントの操作は、進捗インジケーターと結果の帰属とともに会話履歴に表示されます。

***

## 関連情報 [#関連情報]

<CardGroup cols="2">
  <Card title="ツールリファレンス" icon="wrench" href="/docs/verdent-for-vscode/advanced-features/tool-reference">
    ツール機能の完全ガイド
  </Card>

  <Card title="拡張性" icon="puzzle-piece" href="/docs/verdent-for-vscode/advanced-features/extensibility">
    カスタムサブエージェント、ルール、MCP連携
  </Card>
</CardGroup>
