エージェント型開発を探求する -

エージェントファースト開発の紹介

コードの書き方が変わろうとしています。すべての行を自分自身で書くことはもちろん可能であり、特定のユースケースではそれが適切な場合もあります。しかし、業界全体で「エージェントプログラミング」や「エージェントファースト開発」と呼ばれる、プログラミングにエージェントを活用する新たなパターンが台頭しています。

一行ずつ自分で書く代わりに、AIコーディングエージェントにコードベースを読み込ませ、編集させ、コマンドを実行させ、自らミスを修正させながら作業を達成させます。これらのエージェントはループの中で動作します。あなたが指示を出し、エージェントが実行し、あなたが軌道修正する。このサイクルを目標達成まで繰り返します。

本ガイドでは、VS CodeとGitHub Copilotを使用して、最初のエージェントセッションを開始するために必要なすべてを解説します。

始める前に、VS Codeをインストールし、GitHub Copilotをセットアップしてください。

優れたエージェントの成果を生む5つの柱

エージェントは魔法ではありません。優れた成果は、5つの要素が連携することで生まれます。

  1. ハーネス - モデルをツールやワークスペースに接続するためのソフトウェア層。
  2. モデル - 推論を行い、コードを生成するAI。
  3. コンテキスト - エージェントがプロジェクトを理解するために役立つファイル、指示、詳細情報。
  4. ツール - ファイルの読み込み、コマンドの実行、検索など、エージェントが実行できるアクション。
  5. プロンプト - エージェントに与える指示。

これら5つを正しく設定すれば、エージェントはより多くの成果を上げられます。一つでも欠けると、結果の焦点がぼやけてしまいます。

ハーネス(Harness)

VS Codeにおける「GitHub Copilot Chat」パネルがあなたのハーネスです。ハーネスとは、モデルを包み込み、思考以外のすべてを処理するソフトウェア層のことです。

ハーネスは、車のワイヤーハーネスのようなものだと考えてください。エンジンが実際に仕事をするのは変わりませんが、ハーネスがエンジンをダッシュボード、制御装置、センサーに接続することで、動力を利用可能な形に変えてくれます。

ハーネスはエージェントに以下を提供します。

  • ワークスペースを見る「目」:ファイルの内容を読み取り、理解できるようにします。
  • ターミナル:コマンドを実行し、コードを走らせることを可能にします。
  • 編集機能:コードベースに直接変更を適用できるようにします。

エージェントモード

ハーネスは、3つのモードを通じてエージェントの自律性を制御します。

モード の動作
Ask(質問) 対話形式のやり取り。編集やコマンド実行は行いません。
Plan 何をするかの概要を提示しますが、実行前に承認を待ちます。
エージェント 完全な自律性。計画、実行、反復を行い、タスクが完了するまで動作します。

Agent mode picker in VS Code chat showing the Ask, Plan, and Agent options.

使い始めは「Ask」や「Plan」が適しています。実装の準備ができたら「Agent」モードに切り替えましょう。

モデル(Model)

GitHub Copilotでは、モデルピッカーからモデルを選択できます。モデルとは、推論を行いコードを生成するAIそのものです。

「思考の深さ(Thinking effort levels)」を通じて、モデルがどの程度深く考えるかを制御できます。

  • Low(低):推論が少なく、応答が速い。フォーマット設定、定型コード、簡単な修正に最適。
  • Medium(中):推論と速度のバランスが良い。リファクタリング、コードレビュー、標準的な実装に向いている。
  • High(高):最大級の推論の深さ。アーキテクチャの決定、複数ファイルにまたがるリファクタリング、困難なデバッグに最適。

また、Auto(自動)を選択すると、容量とパフォーマンスに基づいて最適なモデルが自動選択され、レート制限、遅延、エラーが軽減されます。

Model picker in VS Code chat showing available AI models and thinking effort options.

タスクに応じて思考レベルを合わせましょう。単純作業なら「Low」、標準的なコーディングなら「Medium」、難しい問題なら「High」です。

プロンプト(Prompt)

プロンプトとは、あなたがエージェントに送るメッセージであり、指示、目標、要件のことです。これは出力の品質を左右する最大のレバーです。

まずは、基本的なプロンプト例を紹介します。

続ける前にPython 3.13以降uvがインストールされていることを確認してください。エージェントはこれらを使用してプロジェクトのセットアップと実行を行います。

Using Python 3.13 and uv, implement a base62 encoder/decoder.

Prompt example in VS Code chat showing a request to implement a base62 encoder/decoder with Python 3.13 and uv.

これでエージェントは動き出しますが、具体的であればあるほど結果は向上します。既存のファイルを指定し、従うべきパターンを示し、範囲を明確に定義してください。プロンプト戦略の詳細については、後のガイドで解説します。

コンテキスト

コンテキストとは、コードベース、ファイル、会話履歴、指示、検索結果など、エージェントがコードベースを理解するために使用するすべての情報を指します。モデルは一般的な情報でトレーニングされていますが、実用的な作業を行うには、あなたのプロジェクトに関するコンテキストが必要です。

エージェントは、ワークスペースを検索してファイルを読み込むことで自動的にコンテキストを収集できます。もちろん、手動で提供することも可能です。

  • チャット入力欄の+アイコンを選択して、特定のファイルやフォルダを添付します。
  • #と入力して、#codebase#file#fetchなどの特定のコンテキストソースを参照します。

コンテキストはバランスが重要です。情報が多すぎるとエージェントが混乱し、少なすぎると必要な詳細情報が不足します。コンテキスト戦略の詳細については、専用ガイドを参照してください。

ツール

ツールとはエージェントが実行できるアクションのことです。ファイルの読み込み、コードの記述、コマンドの実行など、エージェントが行うすべての動作は「ツール呼び出し」です。チャット入力欄のツールアイコンを選択すると、利用可能な全ツールを確認できます。

Screenshot showing Configure Tools option in the Chat input.

組み込みツールには以下が含まれます。

ツール 機能
read ワークスペース内のファイルを読み込みます。
edit ワークスペース内のファイルを編集します。
execute マシン上でコマンドやコードを実行します。
search ワークスペース全体でファイルやシンボルを検索します。
browser Webページにアクセスして対話します。
web Webから情報やドキュメントを取得します。
agent サブエージェントにタスクを委譲します。
vscode VS Codeの機能やコマンドを使用します。
todo タスク計画のためのTODO項目を管理・追跡します。

Tools picker in VS Code chat showing available agent tools that can be enabled for a session.

各ツールにはチェックボックスがあり、セッションごとに有効・無効を切り替えられます。ツールが多いほど機能は広がりますが、多すぎるとエージェントがどれを使うべきか迷う可能性があります。タスクに応じて選択的にツールを使いましょう。

MCPサーバーやVS Code拡張機能を使ってツールを追加することも可能です。これについては後のガイドで解説します。

承認(Approvals)

エージェントが初めてターミナルコマンドを実行しようとする際、必ず一時停止して許可を求めます。ユーザーの許可なく勝手にマシン上でコマンドを実行することはありません。

Approval prompt in VS Code chat asking permission before running a terminal command.

コマンドを確認し、問題なければAllow(許可)を選択してください。不審な点がある場合はSkip(スキップ)を選択し、指示を修正してください。

次のステップ

これで、優れたエージェントの成果を支える「ハーネス」「モデル」「コンテキスト」「ツール」「プロンプト」というメンタルモデルが整いました。エージェントはすでに現実のものを構築できる能力を持っています。あとは、それをうまく導く方法を学ぶだけです。

次のガイドでは、承認システムについて深く掘り下げ、エージェントの自律性を制御する方法、およびセッション中のコンテキスト予算を監視する方法を解説します。

詳細情報

© . This site is unofficial and not affiliated with Microsoft.