Agent モードによる自律的なタスク実行
学習目標
Agent モードを使って、複雑なタスクを自律的に実行し、問題を反復的に解決する方法を学習します。
前提条件
- VS Code 1.99以降
chat.agent.enabled
設定を有効化
学習内容
1. Agent モードの特徴
Edit モードとの違い
特徴 | Edit モード | Agent モード |
---|---|---|
ファイル選択 | 手動で指定 | 自動で判断 |
実行範囲 | 指定ファイルのみ | 必要に応じて拡張 |
ツール実行 | なし | ターミナル、ビルド、テスト |
エラー対応 | 手動 | 自動的に修正を試行 |
2. Agent モードの開始
演習1: 基本設定と起動
-
設定の確認
-
Agent モードの起動
- Chat view を開く(Ctrl+Alt+I)
- モードドロップダウンから「Agent」を選択
- または直接開く: VS Code Stable
3. シンプルなタスクの実行
演習2: 新しいアプリケーションの作成
-
Webアプリケーションの構築
-
Agent モードの動作を観察
- ファイルの自動作成
- 必要なパッケージのインストール
- ビルドエラーの自動修正
- 基本的なテストの追加
4. ツールの活用
演習3: ツールの選択と実行
- 利用可能なツール
- ファイル操作
- ターミナルコマンド実行
- ビルドとテストの実行
-
問題の検出と修正
-
ツールの制御
-
ツールの承認
- 初回実行時は承認が必要
- "Continue"ボタンのドロップダウンで自動承認を設定可能
5. 複雑なタスクの実行
演習4: マイクロサービスアーキテクチャの構築
-
包括的なシステムの作成
-
Agent モードの反復的な動作
- プロジェクト構造の作成
- 各サービスの実装
- Dockerfileの生成
- docker-compose.ymlの作成
- エラーの検出と修正
6. 既存プロジェクトの改善
演習5: レガシーコードのモダナイゼーション
-
レガシープロジェクトの準備
// LegacyApp/DataAccess.cs public class DataAccess { public DataTable GetUsers() { using (var conn = new SqlConnection("Server=.;Database=MyApp;Trusted_Connection=true;")) { conn.Open(); var cmd = new SqlCommand("SELECT * FROM Users", conn); var adapter = new SqlDataAdapter(cmd); var dt = new DataTable(); adapter.Fill(dt); return dt; } } }
-
モダナイゼーションの実行
7. 問題の自動解決
演習6: エラーの検出と修正
-
意図的なエラーの導入
-
Agent モードによる修正
8. カスタムツールとMCPサーバー
演習7: 外部ツールの統合
-
MCPサーバーの設定
-
データベース連携タスク
実践プロジェクト
シナリオ: フルスタックアプリケーションの構築
Agent モードを使って、完全なアプリケーションを構築します:
-
要件定義
-
実行の観察
- プロジェクト構造の自動生成
- 必要な依存関係のインストール
- データベーススキーマの作成
- APIエンドポイントの実装
- フロントエンドコンポーネントの作成
- ビルドエラーの自動修正
- Dockerfileとdocker-compose.ymlの生成
Agent モードのベストプラクティス
効果的なプロンプト作成
-
高レベルな要件を記述
-
期待する結果を明確に
ツールの管理
- 自動承認の設定
- 信頼できる環境では
chat.tools.autoApprove
を有効化 -
リモート環境での使用を推奨
-
ツールセットの定義
トラブルシューティング
よくある問題
- 無限ループの回避
chat.agent.maxRequests
で上限を設定-
必要に応じて手動で中断
-
パフォーマンスの最適化
- 大規模なタスクは段階的に実行
- 不要なファイルは .gitignore に追加
まとめ
学習した内容: - Agent モードの自律的な動作 - ツールの選択と承認 - 複雑なタスクの実行 - エラーの自動検出と修正 - 外部ツールとの統合
次のステップ
次は「インラインチャット」について学習し、エディタ内で直接AIサポートを受ける方法を習得しましょう。