最終更新:2025年11月29日|Context Engineeringの実践、情報の優先順位を反映

概要

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が理解しやすくなります。

✓ 例(構造化)

【技術スタック】 ... 【既存コード】 ... 【依頼内容】 ... 【制約】 ...

コンテキスト提供チェックリスト

参考文献

次へ

効果的なプロンプト設計

段階的依頼技法

プロンプト設計の基礎

← 目次へ戻る