
こんにちは!私の名前はヴオンです。
株式会社メディアフュージョンで、生成AIを活用した開発に携わっているベトナム出身のエンジニアです。
AI Codingや生成AIを活用した開発手法について、実務で得た知見や経験を共有していきたいと考えています。

「AI Coding実践:リスク・システム・成果で整理する導入戦略」シリーズ
Part1:AI Codingのリスクと導入基盤
Part 2: Context Engineeringとコード品質管理
第1回: Context Engineeringとは?AI Codingでコード品質を高める5つのContext(本記事)
はじめに
ChatGPT、Claude、Gemini、GitHub Copilot、Cursorなどの生成AIは、ソフトウェア開発の現場でますます活用されるようになっています。 しかし、AIに「コードを書いてください」と指示するだけでは、プロジェクトに適したコードが生成されるとは限りません。
AIにプロジェクト情報、既存コード、アーキテクチャ、開発ルール、要件 などの情報を提供することで、AIはプロジェクトの背景をより正確に理解し、一貫性のあるコードを生成しやすくなります。 これが、Context Engineeringの重要な役割です。
Part 1では、AI Codingにおけるリスクや、AI Codingを導入する前に準備すべき開発ルール について解説しました。 本記事では、Context Engineeringとは何か、なぜ重要なのか、そしてコード品質にどのような影響を与えるのかについて解説します。
Context Engineeringとは何か?
コンテキストエンジニアリング とは、AIが状況を正しく理解し、適切な回答やコードを生成できるように、必要な情報を整理して提供する考え方です。
例えば、以下のように指示した場合、
「ログインAPIを作ってください。」
AIは、プロジェクトで使用しているフレームワーク、アーキテクチャ、コーディングルール、既存コードなどを把握していません。
一方で、以下のような情報をContextとして提供すると、
- Java 21
- Spring Boot 3.x
- PostgreSQL
- JWT
- Layered Architecture
- Existing UserService.java
- JUnit 5
AIはより多くの情報をもとに、プロジェクトに適したコードを生成できます。
つまり、 AI Codingでは、良いPromptだけではなく、適切なContextを提供することも重要です。
Prompt EngineeringとContext Engineeringの違い
| 項目 | Prompt Engineering | Context Engineering |
| 目的 | AIへの指示を最適化する | AIが必要とする情報を最適化する |
| 重視すること | AIに何をさせるか | AIが何を理解する必要があるか |
| 対象 | 指示・質問・タスク 例: 「ログインAPIを作ってください」 | 技術情報・既存コード・ルール・要件など |
| AI Codingでの役割 | 実行内容を伝える | プロジェクトの前提条件を伝える |
簡単に言えば、 Promptは「AIに何をさせるか」を伝え、Contextは「AIが正しく実行するために何を知る必要があるか」を伝えます。AI Codingでは、この2つを組み合わせて利用することが重要です。
なぜContext Engineeringが重要なのか?
AIは、プロジェクト固有の特徴やルールを自動的にすべて理解しているわけではありません。
Contextが不足すると、以下のような問題が発生する可能性があります。
- 開発ルールに合わないコードが生成される
- 既存コードと異なる設計になる
- 技術やAPIが適切でない場合がある
- 要件を満たさないコードが生成される
- コード修正やコードレビュー の時間が増える
そのため、 AI Codingにおけるコード品質は、AIの性能だけではなく、AIに提供するContextの品質にも左右されます。
AI Codingで重要な5つのContext
| Context | 主な内容 |
| プロジェクトコンテキスト (Project Context) | 技術、フレームワーク、バージョン、アーキテクチャなど、 プロジェクト全体の技術的な前提を示すContextです。 例: Java 21、Spring Boot 3.x、PostgreSQL、Layered Architecture |
| コードコンテキスト (Code Context) | 既存コードや実装パターンを示すContextです。 AIに既存コードを参照させることで、 プロジェクト内の実装方針に合わせたコードを生成しやすくなります。 |
| ルールコンテキスト (Rules Context) | 開発ルール、セキュリティルール、テストルールなど、 AIがコード生成時に守るべきルールを示します。 |
| 要件コンテキスト (Requirement Context) | 機能の目的、条件、制約などを示します。 |
| 参照コンテキスト (Reference Context) | API仕様、README、スキーマ、テストコードなど、 実装時に参照すべき資料を提供します。 |
これらのContextによって、AIは「プロジェクトがどのような環境で、何を実装し、どのような条件に従うべきか」を理解しやすくなります。 重要なのは、プロジェクトのすべての情報を提供することではありません。
現在のTaskに関連するContextを選択することが重要です。
Contextは多ければ良いわけではない
良いContextとは、最も多いContextではなく、タスクに最も関連したContextです。
例えば、LoginService.javaを修正する場合、システム全体のSource Codeを提供する必要はありません。
以下のように、必要な情報だけを選択できます。
- Login Requirement
- LoginService.java
- UserRepository.java
- Security Rule
- Relevant Test
適切なContextを選択することで、AIが本当に必要な情報に集中しやすくなります。
Context EngineeringとCode Quality
Context Engineeringは、AIが生成するコードの品質に直接影響します。
| Contextが不足している場合 | 適切なContextがある場合 |
| Context不足で、AIが一般的な知識を使用する | 適切なContextで、AIがプロジェクトルールを理解する |
| プロジェクトに合わないコードを生成 | プロジェクトに適したコードを生成 |
| 設計のばらつき | 実装の一貫性 |
| 修正・レビューの工数が増加 | 修正・レビューの工数を削減 |
そのため、Context EngineeringはAIの回答品質を向上させるだけでなく、
AI Codingにおけるコード品質を安定させるためにも重要です。
Context Engineering導入チェックリスト
Context Engineeringを導入する前に、以下を確認しましょう。
✓ プロジェクト情報を整理している
✓ 使用する技術とバージョンを定義している
✓ アーキテクチャを定義している
✓ 開発ルール・セキュリティルールを標準化している
✓ 要件を明確にしている
✓ 既存コードを参考資料として利用できる
✓ 重要なドキュメントを整理している
✓ タスクごとに適切なContextを選択できる
✓ AIが生成したコードをレビュー・テストしている
FAQ
Context Engineeringとは何ですか?
Context Engineeringとは、プロジェクト情報、既存コード、開発ルール、要件、ドキュメントなどの情報を整理してAIに提供し、AIが正しく状況を理解して適切なコードを生成できるようにする考え方です。
Context EngineeringとPrompt Engineeringはどう違いますか?
Prompt Engineeringは「AIに何をさせるか」に重点を置きます。
一方、Context Engineeringは「AIが正しく判断するために何を知る必要があるか」を整理します。
Contextを毎回Promptに入力する必要がありますか?
必ずしも必要ではありません。CLAUDE.md、AGENTS.md、Cursor Rules、GitHub Copilot Instructionsなどを活用することで、Project RulesをAIと継続的に共有できます。 ただし、タスク固有のContextについては、必要に応じて提供する必要があります。
Contextをたくさん与えればAIの回答は良くなりますか?
いいえ。 重要なのはContextの量ではなく、タスクに対する関連性と品質です。
Context Engineeringでコードレビューは不要になりますか?
いいえ。 Context EngineeringによってAI生成コードの品質を向上させることはできますが、レビューやテストを不要にするものではありません。
まとめ
AI Codingは、ソフトウェア開発の生産性を向上させる可能性があります。
しかし、性能の高いAIツールを利用するだけでは十分ではありません。
AIがプロジェクトに適したコードを生成するためには、
- Project Context
- Code Context
- Rules Context
- Requirement Context
- Reference Context
などの情報を適切に提供することが重要です。
AI Codingでは、「どのAIを使うか?」だけではなく、
「AIに何を理解させてからコードを書かせるか?」
という視点も重要になります。
これからAI Codingがさらに普及する中で、適切なContextを設計・提供することは、
コードの品質と開発効率を高めるための重要な要素になるでしょう。
参考文献
- GitHub Copilot Documentation
https://docs.github.com/en/copilot
- OpenAI Platform Documentation
- Anthropic Claude Documentation
https://platform.claude.com/docs/en/home
- Google Gemini Documentation
- Cursor Documentation
- Prompt Engineering Guide
