コンテキスト提供技法
概要
AIは「あなたのプロジェクト」を知りません。効果的なAI協調開発には、適切なコンテキスト(背景情報)を提供することが不可欠です。
Context Engineeringとは
"Context Engineering: the delicate art and science of filling the context window with just the right information for the next step"
— Andrej Karpathy, 2025年後半
ポイント:
- 適切な情報:関連性の高い情報を選別
- 適切な量:多すぎず少なすぎず(コンテキストウィンドウの制約)
- 次のステップのため:今の依頼に必要な情報を提供
提供すべきコンテキストの種類
1. 技術スタック 必須
使用している技術とバージョンを明示します。
- プログラミング言語とバージョン
- フレームワーク・ライブラリとバージョン
- データベース・インフラ
- ビルドツール・パッケージマネージャ
✓ 例
【技術スタック】
- Python 3.11
- FastAPI 0.104
- SQLAlchemy 2.0 + PostgreSQL 15
- Pydantic 2.5
- pytest 7.4
2. 関連する既存コード 必須
新しいコードが接続する既存のインターフェース、型定義、クラスを提供します。
- 呼び出し元・呼び出し先のコード
- 型定義・インターフェース
- 親クラス・継承元
- 関連するユーティリティ関数
✓ 例
【既存の型定義】
from pydantic import BaseModel
from datetime import datetime
class UserBase(BaseModel):
email: str
name: str
class UserCreate(UserBase):
password: str
class User(UserBase):
id: int
created_at: datetime
class Config:
from_attributes = True
3. コーディング規約 推奨
プロジェクトのスタイルガイドや命名規則を伝えます。
- 命名規則(変数、関数、クラス)
- コメントスタイル
- ファイル・フォルダ構成
- エラーハンドリングパターン
✓ 例
【規約】
- 関数名: snake_case
- クラス名: PascalCase
- 定数: UPPER_SNAKE_CASE
- プライベートメソッド: _prefix
- docstring: Google style
- エラー: カスタム例外クラスを使用
4. 制約条件 推奨
パフォーマンス、セキュリティ、互換性などの制約を明示します。
- パフォーマンス要件
- セキュリティ要件
- 互換性要件
- 使用禁止のライブラリ・パターン
✓ 例
【制約】
- レスポンス時間: 100ms以内
- 外部APIは使用禁止(社内ポリシー)
- Python 3.9との後方互換性を維持
- any型は使用しない(TypeScript)
5. プロジェクトの背景・目的 任意
なぜこの機能が必要か、全体像を伝えると適切な設計になります。
✓ 例
【背景】
社内向け在庫管理システムを開発中です。
今回は商品マスタのCRUD APIを実装します。
将来的に外部システム連携を予定しているため、
APIはRESTful設計で、バージョニング可能な構造にしたいです。
コンテキスト提供のベストプラクティス
適切な量を意識する
AIのコンテキストウィンドウには制限があります。関連性の高い情報を優先し、不要な情報は省略しましょう。
- 必要な情報のみ:今回の依頼に直接関係する情報
- 最新の情報:古いコードではなく現在のコード
- 具体的な情報:「いつものパターンで」ではなく実際のコード
構造化して提供する
情報をセクション分けして整理すると、AIが理解しやすくなります。
✓ 例(構造化)
【技術スタック】
...
【既存コード】
...
【依頼内容】
...
【制約】
...
コンテキスト提供チェックリスト
- 使用言語・フレームワーク・バージョンを記載したか?
- 関連する既存コード(インターフェース、型)を提供したか?
- コーディング規約・命名規則を伝えたか?
- 制約条件(禁止事項、パフォーマンス要件)を明示したか?
- 不要な情報を削除したか?(コンテキストウィンドウの効率化)
- 情報を構造化して整理したか?
参考文献
- MIT Technology Review "From vibe coding to context engineering" (Nov 2025)
- Thoughtworks Technology Radar Vol.32
- Anthropic Prompt Engineering Guide
次へ
→ 段階的依頼技法